Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1272to1276
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten zwischen Files kopieren und abgleichen

Daten zwischen Files kopieren und abgleichen
Thomas
Hallo,
ich möchte von einem Excel-File Daten in ein anderes (Master)File kopieren und zwar per VBA.
Da ich nur rudimentäre VBA-Kenntnisse besitze habe ich mir etwas Code zusammenkopiert.
Es funktioniert, dass die Einträge einer Spalte in die nächste freie Zelle der Zielspalte im Masterfile
kopiert werden.
Es werden allerdings auch die leeren Zellen mitkopiert. Der untere Teil sollte nun eigentlich prüfen, ob der Eintrag schon vorhanden ist und nachfragen: Überschreiben, Überspringen oder Abbrechen?
Das fx nicht.
Wie kann ich definieren, dass nur beschriebene Zellen kopiert und dann mit den Daten im Masterfile abgeglichen werden?
Vielen Dank+Grüße,
Thomas
Option Explicit
Sub Kopieren()
Dim Vergleich
Dim Bereich As Range
Dim Quelle As Workbook
Dim Ziel As Workbook
Dim i As Integer
Set Quelle = ActiveWorkbook
Set Ziel = Workbooks("Verwaltung.xlsm")
Set Bereich = Range(ActiveSheet.UsedRange.Address)
Vergleich = Range("A1")
Ziel.Sheets("Tabelle1").Activate
If Pruefen(Vergleich) Then
Quelle.Sheets("TabelleX").Range("A32:A42").Copy
Ziel.Sheets("Tabelle1").Range("A1").Activate
i = Cells(Rows.Count, 1).End(xlUp).Row
Cells(i + 1, 1).Select
Selection.PasteSpecial xlPasteValues
Quelle.Activate
Application.CutCopyMode = False
End If
Set Quelle = Nothing
Set Ziel = Nothing
Set Bereich = Nothing
End Sub

Function Pruefen(Pruefwert) As Boolean
Dim rngPruef As Range
Dim rngZelle As Range
Set rngPruef = Range("A1:A256")
For Each rngZelle In rngPruef
If Pruefwert = rngZelle Then
If MsgBox(rngZelle & " ist bereits vorhanden. Trotzdem kopieren?", vbYesNo + vbQuestion, _
"Datenkonflikt") = vbYes Then
Pruefen = True
End If
Exit For
End If
Next
Set rngPruef = Nothing
End Function

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten zwischen Files kopieren und abgleichen
16.08.2012 16:30:25
fcs
Hallo Thomas,
ein klein wenig im Nebel hab ich gestochert.
Unklar ist für mich, ob du jeden der in Quelle.Sheets("TabelleX").Range("A32:A42") stehenden Werte (außer Leerzellen) vor dem Kopieren prüfen willst, oder nur den Wert in in Range("a1"). Ich bin mal von jedem Wert ausgegangen.
Gruß
Franz
Option Explicit
Private Ziel As Workbook
Sub Kopieren()
Dim Vergleich
Dim rngZelle As Range
Dim Quelle As Workbook
Dim i As Integer
Set Quelle = ActiveWorkbook
Set Ziel = Workbooks("Verwaltung.xlsm")
With Ziel.Sheets("Tabelle1")
.Activate
i = Cells(.Rows.Count, 1).End(xlUp).Row
End With
For Each rngZelle In Quelle.Sheets("TabelleX").Range("A32:A42").Cells
Vergleich = rngZelle.Value
If Vergleich  "" Then
If Pruefen(Vergleich) = True Then
rngZelle.Copy
i = i + 1
Cells(i, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End If
End If
Next rngZelle
Quelle.Activate
Set Quelle = Nothing
Set Ziel = Nothing
Set rngZelle = Nothing
End Sub
Function Pruefen(Pruefwert) As Boolean
Dim rngPruef As Range
Dim rngZelle As Range
With Ziel.Sheets("Tabelle1")
Set rngPruef = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
Pruefen = True
For Each rngZelle In rngPruef
If Pruefwert = rngZelle Then
If MsgBox(rngZelle & " ist bereits vorhanden. Trotzdem kopieren?", _
vbYesNo + vbQuestion, _
"Datenkonflikt") = vbNo Then
Pruefen = False
End If
Exit For
End If
Next
Set rngPruef = Nothing
End Function

Anzeige
AW: Daten zwischen Files kopieren und abgleichen
16.08.2012 17:45:38
Thomas
Hallo Franz!
vielen Dank, es funktioniert und du lagst richtig, jeder Wert soll verglichen werden!
Beste Grüße,
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige