vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest środa, 01 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Dostęp z poziomu autocada do Excela


otwartyotwarty rozpoczął: -=rafikos=- postów: 9



napisał: -=rafikos=-
postów: 6


umieszczony:
4 marca 2009
17:23

  
OK poradziłem sobie,a wygląda to tak:

Private Sub CosTam()

'**************************************

Dim Excel As Object
Dim TextLen As Integer
Dim strInputens As String
Set Excel = GetObject(, "Excel.Application")

Dim ExcelSheet As Object
Set ExcelSheet = Excel.ActiveWorkbook.sheets("TEST")

Dim objLayers As AcadLayers 'potrzebne w kolejnej fazie
Dim objLayer As AcadLayer    'potrzebne w kolejnej fazie


CellRow = 10 'okresla zktorego rzedu startuje
'Do Until CellRow = 45 zasieg potrzebny w kolejnej fazie
strInputens = ExcelSheet.cells(1, 1).Value 'sprawdzenie czy mozna cos kombinowac z komorkami o co mi chodzilo
ExcelSheet.cells(2, 2).Value = strInputens

End Sub



był błąd bo nie stworzyłem obiektu excel, ale teraz wszystko działa, jak na razie
pozdrawiam
napisał: admin
postów: 613


umieszczony:
4 marca 2009
16:22

  
Cytat:
...za każdym razem wypisuje mi błąd object required.

Zamiesc moze swpj kod i napisz w ktorym miejscu dostajesz komunikat bledu?
napisał: -=rafikos=-
postów: 6


umieszczony:
3 marca 2009
17:07

  
Witam po przerwie
w Excelu mam komórkię w postaci
("A1") = "123.233,213.321 123.321,123 456.124,789.654 ..." itd. W Cadzie potrzebuje taką komórkę zamienić na string, a z tego narysować polilinię. Ale najpierw potrzebuje uzyskać dostęp do tej excelowskiej komóki z cada, za każdym razem wypisuje mi błąd object required. Proszę o małą pomoc z dostępem a nad resztą popracuję samodzielnie, no postaram się :)
pozdrawaim
napisał: -=rafikos=-
postów: 6


umieszczony:
19 lutego 2009
15:05

  
Wielkie dzięki za pomoc o to mi właśnie chodziło!
Teraz jestem w domu :)
Dzięki raz jeszcze
napisał: Rycho
postów: 291


umieszczony:
17 lutego 2009
00:44

  
Hej,
rozumiem, że nie masz problemu z utworzeniem zmiennej odnoszącej się do potrzebnego zakresu (obiektu Range).

Funkcja pobiera z wskazanego zakresu pary punktów w postaci "2541.124,4587.124" i zwracająca "jednego stringa":
Function PointsToString(rg As Range) As String
  Dim w As String
  Dim kom As Range

  For Each kom In rg
    w = w & CStr(kom.Value) & " "
  Next kom

  PointsToString = Left(w, Len(w) - 1)
End Function



Albo bardziej ogólnie - funkcja pobiera z zakresu (najlepiej dwukolumnowego :) ) liczby (współrzędne) i tworzy z nich "jednego stringa":
Function CellsToString(rg As Range) As String
  'parametry zależne od wersji językowej
  Dim SepD As String    'separator części ułamkowj liczby
  Dim SepL As String    'separator elementów listy
  Dim SepS As String    'separator pary pynktów = spacja ???
  
  Dim w As String
  Dim kom As Range
  Dim f As Boolean      'flaga parzyste/nieparzyste

  SepD = Application.DecimalSeparator
  SepL = Application.International(xlListSeparator)
  SepS = " "

  For Each kom In rg
    w = w & CStr(kom.Value)
    f = Not f
    If f Then w = w & SepL Else w = w & SepS
  Next kom

  CellsToString = Replace(w, SepD, ".")
End Function

napisał: -=rafikos=-
postów: 6


umieszczony:
16 lutego 2009
16:26

  
Dzięki za pomoc,
ale nie do końca mi o to chodziło. Ponieważ w komórkach excela mam punkty w postaci: "2541.124,4587.124" chciałbym tak zrobić aby każdą taką komórkę z kolumny dało się zapisać do jednego stringa np.: "2541.124,4587.124 2365.145,457857.132 4567.256,7846.156 1478.357,7894.147" coś takiego a z takiego stringa narysować polilinię (bez wysokości). Uściślając chodzi mi jak z komórek w kolumnie zrobić stringa?
Twoja metoda jest dobra i wszystko jest perfect ale jestem ciekaw czy da się na mój sposób.
pozdrawiam
napisał: Harry
postów: 42


umieszczony:
16 lutego 2009
12:46

  
nazwa pliku rozmiar
frmRysowaniePOLILINI.zip 1.87 kB

Tak z grubsza napisane ale działa tylko jakieś kulfony z tych punktów powstają.
Musisz sobie zaimportować tego "frm" do projektu w Autocad i uruchomić.
W pliku z punktami musi być jeszcze określone współrzędna "Z" w kolumnie D (np 0 dla każdego punktu)

powinno działać
napisał: -=rafikos=-
postów: 6


umieszczony:
13 lutego 2009
18:12

  
Witam ponownie
dotarłem do etapu jak ze stringa wyglądającego tak" 12454.21,54554,12 4578.48,5487.45 8781.32,454.12 itd" narysować polilinię w cadzie, a teraz mam taki problem jak wyeksportować zawartość komórek w zakresie do stringa pewno to jest banalne ale komórki nie składają się z jednej wartości tylko z dwóch oddzielonych przecinkiem (po concatenate z "," ). Może ktoś pomóc?
pozdro
napisał: -=rafikos=-
postów: 6


umieszczony:
12 lutego 2009
17:01

edytowany:
12 lutego 2009
17:51

  
nazwa pliku rozmiar
POINTS(VBA function).xls 89.00 kB

Witam, w robocie mnie męczą żeby napisać skrypt w vba odczytujący wartości komórek i rysujący polilinie. Nigdy nie bawiłem się w takie rzeczy w cadzie ,a oni nie rozumieją że pisanie skryptów w bash-u to nie to samo, dlatego mam takie pytanie:
jak uzyskać dostęp do wybranego Arkusza z Autocada i odczytać wartości komórek.
W Excelu przygotowałem sobie już templata nawet trochę kodu vba jest wklejonego w forum :). Proszę o wyrozumiałość bo zajmuje się tym od około tygodnia w przerwach pomiędzy pracą i to nie dla własnej przyjemności chcę to odwalić jak najszybciej i mieć spokój, nie zależy mi na przejżystości kodu ani na szybkości tylko na tym aby działało :)
Ponadto nie mam żadnych materiałów tylko to co w necie przeczytam.
Chodzi mi o coś takiego odczytać wartości komórek z kolumny concatenate i narysować z nich polilinie w cadzie.
Pozdrawiam.


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z