Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Przejście z danymi z Cada do Excla
anonim




Typ: Nie zarejestrowany
Przejście z danymi z Cada do Excla

Witam wszystkich
Jestem początkującym użytkownikiem VBA ale już praktycznie skończyłem pisać program obliczający kilka danych w autocadzie na podstawie podawanych odległości(z mapy) i innych zmiennych pobieranych od użytkownika, te dane (załóżmy iż są to np zmienne A,B...G,H i jakaś wynikowa WYNIK) trzeba by było jakoś zapisać,a najlepiej do Excla. Procedura obliczeniowa jest długa i na formie umieściłem przycisk "następne" dzięki któremu chciałbym aby te dane były zapisywane do wiersza np: 1 (czyli w komórkach od A1 do I1) w Exlu, następnie zerował te w cadzie i przechodził do obliczeń  od początku, -po kolejnych obliczeniach znowu przycisk "następne" i wsio ląduje w tym samym Exlu ale w wierszu 2 (A2 do I2), a ideałem by było jeszcze jakby był od razu na to podgląd(czyli otwarty ten arkusz). Jeśli miałby ktoś propozycje jak coś takiego rozwiązać to będę wdzięczny za każde informacje. Pozdrawiam

05-01-2005 20:34
  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Z Cada do Excela i innych aplikacji Office jest tak samo jak z każdą inną aplikacją. Oto prosty przykład (tabela w Wordzie do Excela) :

Sub SaveAsExcel()
Dim ExcApp As Excel.Application
Dim ExcWbk As Excel.Workbook
Dim ExcWsh As Excel.Worksheet
Dim ExcRng As Excel.Range
Dim i As Long, j As Long

On Error GoTo Err_SaveAsExcel
Set ExcApp = CreateObject("Excel.Application"
Set ExcWbk = ExcApp.Workbooks.Add
Set ExcWsh = ExcWbk.Worksheets(1)


For i = 1 To ActiveDocument.Tables(1).Columns.Count
    For j = 1 To ActiveDocument.Tables(1).Rows.Count
        ExcWsh.Range(Chr(64 + i) & j) = ActiveDocument.Tables(1).Cell(j, i).Range.Text
    Next j
Next i

ExcApp.Visible = True

Exit_SaveAsExcel:
    On Error Resume Next
    Set ExcRng = Nothing
    Set ExcWsh = Nothing
    Set ExcWbk = Nothing
    Set ExcApp = Nothing
    Exit Sub
Err_SaveAsExcel:
    MsgBox Err.Description, vbExclamation, Err.Number
    Resume Exit_SaveAsExcel:
End Sub


Aby pobrać pierwszy pusty nr wiersza możesz wykorzystać następującą funkcję:

'podaje nr pierwszego pustego wiersza
'we wskazanym arkuszu - szuka po kolumnie A
Function PierwszyPusty(sh As Excel.Worksheet, Optional sKol As String = "A" As Long
Dim i As Long

i = 1

Do While sh.Range(sKol & i) <> ""
    i = i + 1
Loop

PierwszyPusty = i

End Function


Odwołasz się do niej z procedury SaveAsExcel w sposób następujący:
1) jeśli chcesz szukać po kolumnie A
nrwiersza = PierwszyPusty(ExcWsh)
2) jeśli chcesz szukać po innej kolumnie
nrwiersza = PierwszyPusty(ExcWsh, "B"


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

06-01-2005 22:16
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
anonim




Typ: Nie zarejestrowany

Wielkie dzięki za podpowiedź. Jutro potestuje, bo dzisiaj nie mam już siły, jak będe miał jeszcze problem to dam znać.

Pozdrawiam

06-01-2005 23:25
  
anonim




Typ: Nie zarejestrowany

Nie dało mi to spokoju i poprzeklejałem sobie ten przykład do siebie i dostosowałem aby zapisywał dane do excela, wszystko było by ok ale jak zrobić żeby za każdym razem nie był tworzony nowy formularz excelowy, bo chyba ja coś namieszałem (już przestaje myśleć o tej porze).
Jak napisałem dane wprowadzane są po kliknięciu na jakiś przycisk (Następny) a ciągłe odwoływanie się do saveAsExcel otwiera za każdym razem nowy arkusz.
Stąd moja prośba, jakby się dało to prosiłbym o opis łopatologiczny, tzn ja obliczam dane w cadzie z różnych odległości i  danych pobieranych z imputboxa, otrzymując te dane i wynik. Jak już mam wszystko to teraz nie wiem czy mam zapisywać to do jakiejś tablicy(i prowadzić od nowa obliczenia bo taki jest zamiar i dopiero po n pętlach wykonywania obliczeń i uzyskaniu n wyników zapisać do excela) czy można to zrobić tak że prowadze zapis na bieżąco do excela przez kliknięcie na przycisk następny (następna linia danych do tego samego-otwartego już excla).

07-01-2005 00:13
  
Wszystkich odpowiedzi: 3 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1