Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Werte aus VBA in EXCEL-Tabelle eintragen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Werte aus VBA in EXCEL-Tabelle eintragen (1419 mal gelesen)
Günther Frischbier
Mitglied
EDV-Organisator


Sehen Sie sich das Profil von Günther Frischbier an!   Senden Sie eine Private Message an Günther Frischbier  Schreiben Sie einen Gästebucheintrag für Günther Frischbier

Beiträge: 62
Registriert: 11.02.2002

AutoCAD Mechanical 2012 64-Bit
Windows 7 Enterprise
Microsoft Visual Studio 2010 Express / Microsoft .NET Framework Version 4.0.30319 RTMRel

erstellt am: 24. Aug. 2005 09:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Forum,

Ich habe in VBA ein Berechnungsprogramm geschrieben, welches die Ergebnisdaten in AutoCAD-Zeichnungen einträgt. Klappt alles wunderbar. Die Ergebnisdaten sollen aber zusätzlich in eine vorhandene EXCEL-Tabelle eingetragen und später wieder ins VBA-Formular eingelesen werden. Da ich ein Anfänger in VBA bin, fehlt mir an dieser Stelle das Hintergrundwissen. Hier das Problem, welches es gilt zu lösen:

  Dim P, n, M as String
  P = "300"
  n = "4.0"
  M = "328"

Jetzt sollte eine vorhandene EXCEL-Tabelle "Ergebnisse.xls" geöffnet werden und die Ergebnisdaten am Ende angehängt werden. Die Daten für P ("300") sollen nun am Ende der Datei in Spalte B, die für n ("4.0") in Spalte C usw. eingetragen werden. Anschließend ist die EXCEL-Tabelle wieder zu schließen.
Der nächste Schritt wäre das zeilenweise Auslesen der Daten aus der EXCEL-Tabelle und Eintragen in das VBA-Formular, um ggfs. mit teilweise veränderten Eingaben die Berechnung erneut durchführen zu können, ohne jedesmal die kpl. Eingaben (ca. 60) machen zu müssen. Wer kann helfen und mir den Quellcode für mein Problem nennen?


------------------
Gruss

Günther

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 24. Aug. 2005 10:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Günther Frischbier 10 Unities + Antwort hilfreich

Hallo Günther,

aus welcher Anwendung heraus soll das geschehen? Das geht aus deinem Posting nicht hervor.

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Günther Frischbier
Mitglied
EDV-Organisator


Sehen Sie sich das Profil von Günther Frischbier an!   Senden Sie eine Private Message an Günther Frischbier  Schreiben Sie einen Gästebucheintrag für Günther Frischbier

Beiträge: 62
Registriert: 11.02.2002

AutoCAD Mechanical 2012 64-Bit
Windows 7 Enterprise
Microsoft Visual Studio 2010 Express / Microsoft .NET Framework Version 4.0.30319 RTMRel

erstellt am: 24. Aug. 2005 10:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

Aus AutoCAD heraus starte ich VBA (_vbaload, _vbarun) und möchte die genannten Aktionen durchführen. Danach wird das VBA-Programm wieder geschlossen (_vbaunload).

------------------
Gruss

Günther

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 24. Aug. 2005 10:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Günther Frischbier 10 Unities + Antwort hilfreich

Hallo Günther,

AutoCAD - VBA hmm. Da kennt sich startrek besser aus. Aber versuch es mal so, das funktioniert zumindest aus VB heraus:

Private Sub Main()

    Dim P As String, n As String, M As String
    P = "300"
    n = "4.0"
    M = "328"
 
    Dim xlApp As Object
    Dim xlWbk As Object
    Dim xlWks As Object
    Dim lngLastRow As Long
    On Error Resume Next
    Set xlApp = CreateObject(Class:="Excel.Application")
    On Error GoTo Err_exit
    If Err.Number <> 0 Then _
        Err.Raise Number:=vbObjectError + 1, _
        Description:="Excelinstanz kann nicht erstellt werden."
    Set xlWbk = xlApp.Workbooks.Open("C:\Ergebnisse.xls")
    Set xlWks = xlWbk.Worksheets("Tabelle1")
    With xlWks
        lngLastRow = .Cells(.Rows.Count, 2).end(-4162).Row + 1
        .Cells(lngLastRow, 2).Value = P
        .Cells(lngLastRow, 3).Value = n
        .Cells(lngLastRow, 4).Value = M
    End With
    xlWbk.Save
    xlApp.Quit
    Set xlWks = Nothing
    Set xlWbk = Nothing
    Set xlApp = Nothing
    End
Err_exit:
    MsgBox "Fehler " & CStr(Err.nnumber) & vbLf & vbLf & Err.Description
End Sub

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 24. Aug. 2005 10:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Günther Frischbier 10 Unities + Antwort hilfreich

Fehler:

MsgBox "Fehler " & CStr(Err.Number) & vbLf & vbLf & Err.Description

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Günther Frischbier
Mitglied
EDV-Organisator


Sehen Sie sich das Profil von Günther Frischbier an!   Senden Sie eine Private Message an Günther Frischbier  Schreiben Sie einen Gästebucheintrag für Günther Frischbier

Beiträge: 62
Registriert: 11.02.2002

AutoCAD Mechanical 2012 64-Bit
Windows 7 Enterprise
Microsoft Visual Studio 2010 Express / Microsoft .NET Framework Version 4.0.30319 RTMRel

erstellt am: 24. Aug. 2005 13:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Nepumuk,

Danke für die schnelle Antwort. Es funktioniert klasse, ganz so wie ich es mir vorgestellt habe. Unities sind unterwegs!

Könntest Du mir ebnfalls verraten, wie ich die Daten eines ausgewählten Datensatzes der EXCEL-Tabelle in mein VBA-Formular bekomme?

Danke nochmals!

------------------
Gruss

Günther

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 24. Aug. 2005 13:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Günther Frischbier 10 Unities + Antwort hilfreich

Hi Günther,

genauso wie du sie rein bekommst, nur anders herum. Also an Stelle von:

.Cells(lngLastRow, 2).Value = P

einfach

P = .Cells(deineZeile, 2).Value

Ich weiß nur nicht, nach welchem Kriterium der Datensatz ausgewählt werden soll.

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Günther Frischbier
Mitglied
EDV-Organisator


Sehen Sie sich das Profil von Günther Frischbier an!   Senden Sie eine Private Message an Günther Frischbier  Schreiben Sie einen Gästebucheintrag für Günther Frischbier

Beiträge: 62
Registriert: 11.02.2002

AutoCAD Mechanical 2012 64-Bit
Windows 7 Enterprise
Microsoft Visual Studio 2010 Express / Microsoft .NET Framework Version 4.0.30319 RTMRel

erstellt am: 24. Aug. 2005 13:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Nepumuk,

Ich stelle mir vor, das die Zeilennummer des Datensatzes der EXCEL-Tabelle im VBA-Programm eingegeben wird, nach dem Motto "Welche Zeile der EXCEL-Tabelle soll eingelesen werden?".
Der Konstrukteur hat die EXCEL-Tabelle geöffnet, um Daten nach gewünschten Kriterien zu finden. Hat er einen gefunden, der den Kriterien am ehersten entspricht, merkt er sich die Zeilennummer und gibt im VBA-Programm die Zeilennummer ein.

------------------
Gruss

Günther

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 24. Aug. 2005 14:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Günther Frischbier 10 Unities + Antwort hilfreich

Hi Günther,

das meinst du jetzt aber nicht im Ernst? Oder willst du den Fauskeil wieder einführen?

Option Explicit

Private Sub Main()

    Dim P As String, n As String, M As String

    Dim xlApp As Object
    Dim xlWbk As Object
    Dim xlWks As Object
    Dim varRange As Variant
    On Error Resume Next
    Set xlApp = CreateObject(Class:="Excel.Application")
    On Error GoTo Err_exit
    If Err.Number <> 0 Then _
        Err.Raise Number:=vbObjectError + 1, _
        Description:="Excelinstanz kann nicht erstellt werden."
    Set xlWbk = xlApp.Workbooks.Open("C:\Ergebnisse1.xls")
    xlWbk.Worksheets("Tabelle1").Select
    xlApp.Visible = True
    On Error Resume Next
    Do
        varRange = xlApp.InputBox(Prompt:="Bitte wählen sie einen Bereich.", _
            Title:="Auswahl", Type:=8)
        If VarType(varRange) = 8204 Then
            P = CStr(varRange(1, 1))
            n = CStr(varRange(1, 2))
            M = CStr(varRange(1, 3))
        Else
            Exit Do
        End If
        If Err.Number = 0 Then Exit Do
        MsgBox "Wählen sie einen Bereich von" & _
            " Spalte B bis Spalte D in einer Zeile!", 48, "Hinweis"
        Err.Clear
    Loop
Ende:
    xlApp.Quit
    Set xlWks = Nothing
    Set xlWbk = Nothing
    Set xlApp = Nothing
    End
Err_exit:
    MsgBox "Fehler " & CStr(Err.Number) & vbLf & vbLf & Err.Description
    Resume Ende
End Sub

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Günther Frischbier
Mitglied
EDV-Organisator


Sehen Sie sich das Profil von Günther Frischbier an!   Senden Sie eine Private Message an Günther Frischbier  Schreiben Sie einen Gästebucheintrag für Günther Frischbier

Beiträge: 62
Registriert: 11.02.2002

AutoCAD Mechanical 2012 64-Bit
Windows 7 Enterprise
Microsoft Visual Studio 2010 Express / Microsoft .NET Framework Version 4.0.30319 RTMRel

erstellt am: 14. Sep. 2005 08:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Nepumuk,

Vielen Dank für deinen Programmvorschlag. Ist natürlich die bessere Lösung, funktioniert einwandfrei, also packen wir den Faustkeil wieder weg! Untities sind unterwegs!
Doch nun noch eine Frage: Mein VBA-Programm besteht aus mehreren Registern zur Dateneingabe, zur Druckausgabe, zur Ergebnisdarstellung und Dokumentation. Um die ausgewählten Excel-Daten in meinem Formular zu sehen, muß ich vom Register "Berechnungen & Ergebnisse" (dort befindet sich der Schalter zum Übertragen der Excel-Daten) auf das Register "Eingabedaten" schalten. Kannst Du mir dafür die Befehlssequenz nennen?

------------------
Gruss

Günther

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 14. Sep. 2005 10:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Günther Frischbier 10 Unities + Antwort hilfreich

Hi Günther,

die Anweisung ist schon einmal in dem Makro:

xlWbk.Worksheets("Tabelle1").Select

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz