Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

externe Exceltabelle in Datensheet einlesen

Betrifft: externe Exceltabelle in Datensheet einlesen von: Larissa
Geschrieben am: 23.10.2014 13:01:41

Hallo Zusammen,
ich bin leider noch nicht so fit in VBA.
Vllt kann mir jmd weiterhelfen. Hier ist mein Problem bzw. meine "Aufgabe".

Mit dem "CommandButton7_Click()" soll eine externe Exceltabelle in das Sheet "Daten" eingelesen werden. Hört sich einfach an, bei mir ist leider der Wurm drin... =(

Danke schon mal für die Hilfe =)

Private Sub CommandButton7_Click() 'Messauftrag WTC übernehmen

Dim strDatei, wks As Worksheet
Dim erste_freie_zeile As Integer


strDatei = Application.GetOpenFilename

If strDatei <> False Then
    Set wks = Workbooks.Open(strDatei).Sheets(1)
Else
    Exit Sub
End If


erste_freie_zeile = Sheets("Daten").Range("B65536").End(xlUp).Offset(1, 0).Row
Sheets("Daten").Cells(erste_freie_zeile, 2) = wks.Range("B3")
Sheets("Daten").Cells(erste_freie_zeile, 3) = wks.Range("B4")
Sheets("Daten").Cells(erste_freie_zeile, 5) = wks.Range("B5")
Sheets("Daten").Cells(erste_freie_zeile, 86) = wks.Range("B6")
Sheets("Daten").Cells(erste_freie_zeile, 15) = wks.Range("B7")
Sheets("Daten").Cells(erste_freie_zeile, 16) = wks.Range("B8")
Sheets("Daten").Cells(erste_freie_zeile, 17) = wks.Range("B9")
Sheets("Daten").Cells(erste_freie_zeile, 6) = wks.Range("B10")
Sheets("Daten").Cells(erste_freie_zeile, 7) = wks.Range("B11")
Sheets("Daten").Cells(erste_freie_zeile, 8) = wks.Range("B12")
Sheets("Daten").Cells(erste_freie_zeile, 82) = wks.Range("B13")
Sheets("Daten").Cells(erste_freie_zeile, 83) = wks.Range("B14")
Sheets("Daten").Cells(erste_freie_zeile, 4) = wks.Range("B15")
Sheets("Daten").Cells(erste_freie_zeile, 85) = wks.Range("B16")
Sheets("Daten").Cells(erste_freie_zeile, 81) = wks.Range("A19")
Sheets("Daten").Cells(erste_freie_zeile, 18) = wks.Range("E3")
Sheets("Daten").Cells(erste_freie_zeile, 22) = wks.Range("E4")
Sheets("Daten").Cells(erste_freie_zeile, 20) = wks.Range("E5")
Sheets("Daten").Cells(erste_freie_zeile, 21) = wks.Range("E6")
Sheets("Daten").Cells(erste_freie_zeile, 23) = wks.Range("E7")
Sheets("Daten").Cells(erste_freie_zeile, 24) = wks.Range("E8")
Sheets("Daten").Cells(erste_freie_zeile, 30) = wks.Range("E9")
Sheets("Daten").Cells(erste_freie_zeile, 34) = wks.Range("E10")
Sheets("Daten").Cells(erste_freie_zeile, 25) = wks.Range("E11")
Sheets("Daten").Cells(erste_freie_zeile, 31) = wks.Range("E12")
Sheets("Daten").Cells(erste_freie_zeile, 26) = wks.Range("E13")
Sheets("Daten").Cells(erste_freie_zeile, 27) = wks.Range("E14")
Sheets("Daten").Cells(erste_freie_zeile, 28) = wks.Range("E15")
Sheets("Daten").Cells(erste_freie_zeile, 29) = wks.Range("E16")
Sheets("Daten").Cells(erste_freie_zeile, 36) = wks.Range("E17")
Sheets("Daten").Cells(erste_freie_zeile, 32) = wks.Range("E18")
Sheets("Daten").Cells(erste_freie_zeile, 33) = wks.Range("E19")
Sheets("Daten").Cells(erste_freie_zeile, 39) = wks.Range("E20")
Sheets("Daten").Cells(erste_freie_zeile, 91) = wks.Range("E22")
Sheets("Daten").Cells(erste_freie_zeile, 92) = wks.Range("E23")
Sheets("Daten").Cells(erste_freie_zeile, 94) = wks.Range("E24")
Sheets("Daten").Cells(erste_freie_zeile, 97) = wks.Range("E25")
Sheets("Daten").Cells(erste_freie_zeile, 96) = wks.Range("E26")
Sheets("Daten").Cells(erste_freie_zeile, 95) = wks.Range("E27")
Sheets("Daten").Cells(erste_freie_zeile, 93) = wks.Range("E28")
Sheets("Daten").Cells(erste_freie_zeile, 98) = wks.Range("E29")
Sheets("Daten").Cells(erste_freie_zeile, 41) = wks.Range("H3")
Sheets("Daten").Cells(erste_freie_zeile, 44) = wks.Range("H4")
Sheets("Daten").Cells(erste_freie_zeile, 47) = wks.Range("H5")
Sheets("Daten").Cells(erste_freie_zeile, 50) = wks.Range("H6")
Sheets("Daten").Cells(erste_freie_zeile, 53) = wks.Range("H7")
Sheets("Daten").Cells(erste_freie_zeile, 56) = wks.Range("H8")
Sheets("Daten").Cells(erste_freie_zeile, 59) = wks.Range("H9")
Sheets("Daten").Cells(erste_freie_zeile, 62) = wks.Range("H10")
Sheets("Daten").Cells(erste_freie_zeile, 65) = wks.Range("H11")
Sheets("Daten").Cells(erste_freie_zeile, 68) = wks.Range("H12")
Sheets("Daten").Cells(erste_freie_zeile, 71) = wks.Range("H15")
Sheets("Daten").Cells(erste_freie_zeile, 72) = wks.Range("H16")
Sheets("Daten").Cells(erste_freie_zeile, 73) = wks.Range("H17")
Sheets("Daten").Cells(erste_freie_zeile, 74) = wks.Range("H18")
Sheets("Daten").Cells(erste_freie_zeile, 75) = wks.Range("H19")
Sheets("Daten").Cells(erste_freie_zeile, 76) = wks.Range("H20")
Sheets("Daten").Cells(erste_freie_zeile, 77) = wks.Range("H21")
Sheets("Daten").Cells(erste_freie_zeile, 78) = wks.Range("H22")
Sheets("Daten").Cells(erste_freie_zeile, 79) = wks.Range("H23")
Sheets("Daten").Cells(erste_freie_zeile, 80) = wks.Range("H24")

Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I3")
Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I4")
Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I5")
Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I6")
Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I7")
Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I8")
Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I9")
Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I10")
Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I11")
Sheets("Daten").Cells(erste_freie_zeile, 69) = wks.Range("I12")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J3")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J4")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J5")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J6")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J7")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J8")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J9")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J10")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J11")
Sheets("Daten").Cells(erste_freie_zeile, 70) = wks.Range("J12")

Sheets("Daten").Cells(erste_freie_zeile, 78) = wks.Range("G27")
Sheets("Daten").Cells(erste_freie_zeile, 81) = wks.Range("G28")
Sheets("Daten").Cells(erste_freie_zeile, 78) = wks.Range("G29")
Sheets("Daten").Cells(erste_freie_zeile, 81) = wks.Range("I27")
Sheets("Daten").Cells(erste_freie_zeile, 81) = wks.Range("I28")
Sheets("Daten").Cells(erste_freie_zeile, 81) = wks.Range("I29")
wks.Parent.Close False
Set wks = Nothing
End Sub

  

Betrifft: AW: externe Exceltabelle in Datensheet einlesen von: Christian
Geschrieben am: 23.10.2014 18:53:39

Hallo Larissa,
wenn du eine Datei öffnest, ist dies die aktive Datei.
Sheets("Daten") ist aber in der Datei, in der das Marko laufen soll.
Ohne Angabe des Workbooks wird Sheets("Daten") in der neu geöffneten Datei gesucht und falls dort vorhanden auch genommen. Dann würdest du dort die Daten überrschreiben, anstatt die Daten bei dir einzutragen.
Wenn es Sheets("Daten") in der neu geöffneten Datei nicht gibt, dann bricht das Makro mit Fehler ab.

Deshalb immmer vollständig referenzieren.

Bsp:

...
    With ThisWorkbook.Sheets("Daten")
        erste_freie_zeile = .Range("B65536").End(xlUp).Offset(1, 0).Row
        .Cells(erste_freie_zeile, 2) = wks.Range("B3")
        .Cells(erste_freie_zeile, 3) = wks.Range("B4")
        .Cells(erste_freie_zeile, 5) = wks.Range("B5")
        .Cells(erste_freie_zeile, 86) = wks.Range("B6")

         ' usw ...

        .Cells(erste_freie_zeile, 81) = wks.Range("I28")
        .Cells(erste_freie_zeile, 81) = wks.Range("I29")
    End With

    wks.Parent.Close False
    Set wks = Nothing
End Sub
Gruß
Christian


 

Beiträge aus den Excel-Beispielen zum Thema "externe Exceltabelle in Datensheet einlesen"