AW: Pürfen ob eine Zahl in Spalte C in zwei Dateien fehlt
31.01.2024 13:06:08
Piet
Hallo
ich habe auf die schnelle einen Code von mir umgeschrieben. Er ist aber ungetestet!
Das Makro setzt voraus, das die Anzahl der Zeilen in Datei 1+2 völlig identisch sind. Sonst klappt es nicht!
Die 1. For Next Schleife zählt nur wieviele leere Zellen es in Datei2 gibt, die 2. For Next Schleife füllt die Zellen aus.
Weil ich nicht weis ob das alles korrekt läuft bitte das Makro zuerst in einer Copy Datei testen!!
mfg Piet
Option Explicit
Dim AC As Range, lz1 As Long
'externe Mappen vergleichen
Sub Mappen_extern_vergleichen()
Dim WB1 As Workbook, WB2 As Workbook, n, m, ok
Dim WS1 As Worksheet, WS2 As Worksheet, Txt
If Workbooks(1).Name = ThisWorkbook.Name Then
Set WB1 = Workbooks(1)
Set WB2 = Workbooks(2)
Else
Set WB1 = Workbooks(2)
Set WB2 = Workbooks(1)
End If
Set WS1 = WB1.Worksheets("Datenblatt 01")
Set WS2 = WB2.Worksheets("Datenblatt 01")
ThisWorkbook.Activate
lz1 = WS1.Cells(Rows.Count, 3).End(xlUp).Row
Application.ScreenUpdating = False
'Zählen wieviele ungleiche Zellen es gibt
For Each AC In WS1.Range("C2:C" & lz1)
If WS2.Cells(AC.Row, 3) = Empty Then n = n + 1 Else _
If WS2.Cells(AC.Row, 3) > AC.Value Then m = m + 1
Next AC
If m > 0 Then MsgBox m & " Zellen in Workbook1"
ok = MsgBox(n & " leere Zellen in Workbook1 - Beenden ??", vbYesNo)
If ok = vbYes Then Exit Sub
'zweite Schleife zum ausfüllen
For Each AC In WS1.Range("C2:C" & lz1)
If WS2.Cells(AC.Row, 3) = Empty Then
WS2.Cells(AC.Row, 3) = AC.Value
End If
Next AC
End Sub
'oder statt Empy diesen Befehl verwenden
'If WS2.Cells(AC.Row, 3) > AC.Value Then n = n + 1