Microsoft Excel

Herbers Excel/VBA-Archiv

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

VBA Copy/Paste über ext. Datei und Auswahlliste

Betrifft: VBA Copy/Paste über ext. Datei und Auswahlliste von: Thomas
Geschrieben am: 29.10.2014 22:55:27

Guten Abend.

Ich bin wieder total gerädert.
Seit Stunden sitzte ich an folgendem Problem:

ich möchte aus einer Listbox (die über einen Button geöffnet wird) auf eine ausgewählte (externe und bereits geöffnete) Datei zugreifen, und dann von der ausgewählten Datei in einem Tabellenblatt Werte kopieren.
Anschließend sollen die kopierten Werte in das aktuelle Tabellenblatt in einem bestimmten Bereich eingefügt werden. Eigentlich doch ganz simpel?!

Leider wird die ausgewählte Datei in der Listbox nicht erkannt und die msgbox gibt die Meldung "Bitte eine Datei auswählen" (wenigstens das funktioniert).

Ich denke an dem Fettgedrucktem Code liegt der Fehler?!? Ich freue mich über jede Hilfe.

Grundlage des VBA-Codes war das Video von Andreas Thehos: "Tabellenblätter einer Arbeitsmappe auflisten und auswerten". Ich brauche allerdings nur bestimmte Bereiche die kopiert und eingefügt werden müssen.

  • Private Sub cmdAbbruch_Click()
        Unload Me
    End Sub

    Private Sub cmdEinlesen_Click()
        'Dim wksaufruf As Worksheets  'Das Arbeitsblatt das ich aufrufe
        Dim wksactive As Worksheet  'Das Blatt wo alles eingetragen wird (Ziel)
        Dim wkbaufruf As Workbook   'Die Datei die ich aufrufe (Quelle)
            
        On Error GoTo ErrorHandler
        
        'Zielblatt = aktive Datei, aktives Blatt:
            Set wksactive = ThisWorkbook.Worksheets("Variantenvergleich") 'Hier eingeben in welchem  _
    Tabellenblatt die Werte eingetragen werden sollen!
        'Quellblatt = Datei, Blatt 1
        Set wkbaufruf = Workbooks(lstdateien.Value).Worksheets("Zusammenfassung")
        
        'Kopieren
        wkbaufruf.Range("g16").Copy
        'Einfügen
        wksactive.Range("B9").PasteSpecial Paste:=xlValues
    
        'Evtl. Quelle schließen mit:
        'wkbaufruf.parent.close
    
        'Set wksaufruf = Nothing
        Set wkbaufruf = Nothing
        Set wksactive = Nothing
        
        Unload Me
        Exit Sub
        
    ErrorHandler:
        MsgBox "Bitte eine Datei auswählen.", vbInformation, "Datei wählen"
        Exit Sub
    End Sub

    Private Sub UserForm_initialize()
    
    Dim wkb As Workbook
    
        For Each wkb In Workbooks
            lstDateinamen.AddItem wkb.Name
        
        Next wkb
    
    Set wkb = Nothing
    
    End Sub


  •   

    Betrifft: AW: VBA Copy/Paste über ext. Datei und Auswahlliste von: Tino
    Geschrieben am: 30.10.2014 04:53:03

    Hallo,
    müsste wkbaufruf nicht als worksheet deklariert sein?!

    Gruß Tino


      

    Betrifft: AW: VBA Copy/Paste über ext. Datei und Auswahlliste von: Thomas
    Geschrieben am: 30.10.2014 08:45:43

    Vielen Dank für die Hilfe.

    Ich glaube ich habe einfach nochmal Schlaf gebraucht.
    Mir ist auch noch aufgefallen das ich "lstdateien" in "lstdateinamen" umändern musste.
    Jetzt klappt alles wie es soll.

    Der Wahnsinn wieviel Zeit durch solche Flüchtigkeitsfehler drauf gehen kann.


      

    Betrifft: verwende Option Explicit von: Tino
    Geschrieben am: 30.10.2014 09:10:32

    Hallo

    http://www.online-excel.de/excel/singsel_vba.php?f=4

    Gruß Tino