Microsoft Excel

Herbers Excel/VBA-Archiv

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

Datenimport von geschlossene Datei in ActiveSheet

Betrifft: Datenimport von geschlossene Datei in ActiveSheet von: Knoof
Geschrieben am: 08.08.2014 12:42:29

Hallo,

Ich möchte durch einen Button einen Import einer Tabelle durchführen.

Die Tabelle besteht aus den Spalten: ID , Name, Vorname etc.
Nun soll durch den Button Datenimport diese Tabelle aus einer geschlossenen Quelldatei in das geöffnete Sheet kopiert werden.
Allerdings soll ebenfalls drauf geachtet werden welche Datensätze schonvorhanden sind, diese sollen nicht mitkopiert werden. Alle die noch nicht vorhanden sind sollen einfach unten an die Tabelle in der Zieldatei angefügt werden.
Ich habe dazu auch schon einen Code, welchen ich ebenfalls hier aus dem Forum habe, doch funktionieren tut er noch nicht ganz.

Private Sub cmdimport_Click()

Dim Zelle As Range
Dim quRows As Long
Dim zuRows As Long
Dim suche As Range

Dim QWB As Workbook, ZWB As Workbook
Dim qsh As Worksheet, zsh As Worksheet
Dim ordner As Variant
'Wenn die Datei erst geöffnet werden muss
On Error GoTo Fehler
Set ZWB = ThisWorkbook                  ' Ziel, Workbook mit diesem Makro
Set zsh = ZWB.Sheets("Sheet 1")    ' Ziel
ordner = Application.GetOpenFilename("Manche Dateien (*.txt),*.txt,Alle Dateien,*.*")
Set QWB = Workbooks.Open(ordner)          ' Quelle, aus der die Tabelle41 kopiert werden soll
Exit Sub
Set qsh = QWB.Worksheets("Sheet 1")   ' Quelle

If MsgBox("Wollen Sie die Daten aktualisieren?", vbYesNo) = vbNo Then
    qsh.Cells.Copy zsh.Cells(1, 1)                ' oder before
Else
    'code für update
    quRows = qsh.UsedRange.Rows.Count
    For Each Zelle In qsh.Range(qsh.Cells(1, 1), qsh.Cells(quRows, 1))
        Set suche = zsh.Columns(1).Find(Zelle, , xlValues, xlWhole)
        If suche Is Nothing Then
            'zeile wird ins zielsheet unten angefügt
            Zelle.EntireRow.Copy zsh.Cells(zsh.UsedRange.Rows.Count + 1, 1)
        End If
    Next
End If
QWB.Close          ' Wenn die Datei wieder geschlossen werden soll

Fehler: MsgBox ("Der Datenimport wurde abgebrochen!")

End Sub

  

Betrifft: AW: Datenimport von geschlossene Datei in ActiveSheet von: Daniel
Geschrieben am: 08.08.2014 12:53:13

"funktioniert noch nicht ganz" ist leider noch zu nichtssagend, um daraus fertige Lösungen abzuleiten.
Wenn du zum Arzt gehst, dann sagst du ja auch nicht nur "mir tut was weh", sondern du beschhreibst dann schon genauer, in welchem Körperteil der Schmerz auftritt, vielleicht bei welchen Bewegungen und wie sich der Schmerz anfühlt.

deiner Beschreibung nach würde ich so vorgehen:
1. die Quelldatei öffnen
2. alle Zeilen aus der Quelldatei kopieren und in die Zieldatei einfügen
3. mit Hilfe der Funktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN alle doppelten Datensätze löschen.
da diese Funktion bei doppelten Einträgen immer den ersten stehen lässt, werden so die Doppelten aus den neu hinzugefügten Datensätzen entfernt.

das geht am schnellsten und ist auch am einfachsten zu programmieren, weil die Hauptarbeit das Duplikate-Entfernen erledigt.

Gruß Daniel


  

Betrifft: AW: Datenimport von geschlossene Datei in ActiveSheet von: Knoof
Geschrieben am: 08.08.2014 12:54:45

Okay nächste mal wirds besser gemacht ;D

Läuft wieder, danke !


 

Beiträge aus den Excel-Beispielen zum Thema "Datenimport von geschlossene Datei in ActiveSheet"