AW: Daten aus anderer Excel-Datei kopieren + Abgleich
20.10.2015 13:24:29
Sebastian
Bitte, ich benötige nur eine Schleife im Code, die prüft (anhand Spalte 1), ob Zeilen, die aus der Quelldatei rüberkopiert werden sollen, bereits in der Zieltabelle ("Tabelle 1") vorhanden ist und diese dann NICHT mitkopiert. Ihr würdet mir wahnsinnig helfen!
Sub DateiNeuauswählen()
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte Datei mit den neuen Daten auswählen"
.FilterIndex = 1
If .Show = -1 Then
wksSteuerung.Range("A5") = .SelectedItems(1)
End If
End With
End Sub
Sub Daten_aktualisieren()
Dim strPfadDatei As String, strDatei As String
Dim wksZiel As Worksheet
Dim wkbNeu As Workbook, wksNeu As Worksheet, bolOpen As Boolean
Dim lngZeileNeu As Long, lngZeileTitelNeu As Long, strTitelNeu As String
Dim lngZeileZiel As Long, lngZeileTitelZiel As Long, strTitelZiel As String
Dim lngSpalteZiel As Long, rngZelle As Range
Dim lngSpalteNeu As Long, lngSpalte As Long
Set wksZiel = ActiveWorkbook.Worksheets("Tabelle1")
With wksSteuerung
With .Range("A5")
If .Value = "" Then
MsgBox "Bitte die Datei mit den neuen Daten auswählen"
ElseIf Dir(.Text) = "" Then
MsgBox "Die Datei """ & .Text & """ existiert nicht!" & vbLf _
& "Bitte andere Datei mit neuen Daten auswählen!"
Else
strPfadDatei = .Text
strDatei = Mid(strPfadDatei, InStrRev(strPfadDatei, Application.PathSeparator) + 1)
End If
End With
lngZeileTitelNeu = .Range("E5")
lngZeileTitelZiel = .Range("E6")
End With
Application.ScreenUpdating = False
'Prüfen, ob Datei mit neuen Daten schon geöffnet
For Each wkbNeu In Application.Workbooks
If LCase(wkbNeu.Name) = LCase(strDatei) Then
bolOpen = True
Exit For
End If
Next
If wkbNeu Is Nothing Then
'Datei mit neuen Daten schreibgeschützt öffnen
Set wkbNeu = Application.Workbooks.Open(Filename:=strPfadDatei, ReadOnly:=True)
bolOpen = False
End If
Set wksNeu = wkbNeu.Worksheets(1)
'Nächste freie Zeile in aktuellen Daten
lngZeileZiel = fncLetzteZeilemitDaten(wks:=wksZiel) + 1
'letzte Zeile mit Daten im Blatt mit neuen Daten
lngZeileNeu = fncLetzteZeilemitDaten(wks:=wksNeu)
If lngZeileNeu