Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1076to1080
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

Vergleich Arbeitsmappe

Vergleich Arbeitsmappe
04.06.2009 20:11:47
chris
Hallo !
Ich habe diesen Code von Hajo hier gefunden und er funktioniert wie immer sehr gut. Nur ich komme, auch nach langem probieren nicht dahinter, wie dieser Code nicht nur die Spalte A sondern von Spalte A - Spalte H alles in die Mappe3 überträgt. Kann mir da bitte den Hinweis geben, wo ich den Code ändern muß ?
Danke im voraus
chris58

Sub Vergleichen()
Dim wkb As Workbook
Dim wksA As Worksheet, wksB As Worksheet, wksC As Worksheet
Dim iWks As Integer, iRow As Integer, iRowT As Integer
On Error Resume Next
For iWks = 1 To 3
Set wkb = Workbooks("Mappe" & iWks)
Next iWks
If Err > 0 Or wkb Is Nothing Then
Beep
Err.Clear
MsgBox prompt:="Die 3 Arbeitsmappen sind nicht vorhanden!"
Exit Sub
End If
On Error GoTo 0
Set wksA = Workbooks("Mappe1").Worksheets(1)
Set wksB = Workbooks("Mappe2").Worksheets(1)
Set wksC = Workbooks("Mappe3").Worksheets(1)
iRow = 1
Do Until IsEmpty(wksA.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksB.Columns(1), _
wksA.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksC.Cells(iRowT, 1).Value = wksA.Cells(iRow, 1).Value
wksC.Cells(iRowT, 2).Value = wksA.Parent.Name
End If
iRow = iRow + 1
Loop
iRow = 1
Do Until IsEmpty(wksB.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksA.Columns(1), _
wksB.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksC.Cells(iRowT, 1).Value = wksB.Cells(iRow, 1).Value
wksC.Cells(iRowT, 2).Value = wksB.Parent.Name
End If
iRow = iRow + 1
Loop
End Sub


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich Arbeitsmappe
04.06.2009 20:29:04
ms22
Hallo Chris,
probier mal ob du das so funktioniert:

Sub Vergleichen()
Dim wkb As Workbook
Dim wksA As Worksheet, wksB As Worksheet, wksC As Worksheet
Dim iWks As Integer, iRow As Integer, iRowT As Integer
On Error Resume Next
For iWks = 1 To 3
Set wkb = Workbooks("Mappe" & iWks)
Next iWks
If Err > 0 Or wkb Is Nothing Then
Beep
Err.Clear
MsgBox prompt:="Die 3 Arbeitsmappen sind nicht vorhanden!"
Exit Sub
End If
On Error GoTo 0
Set wksA = Workbooks("Mappe1").Worksheets(1)
Set wksB = Workbooks("Mappe2").Worksheets(1)
Set wksC = Workbooks("Mappe3").Worksheets(1)
iRow = 1
Do Until IsEmpty(wksA.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksB.Columns(1), _
wksA.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksC.Cells(iRowT, 1).Value = wksA.Cells(iRow, 1).Value           'a
wksC.Cells(iRowT, 2).Value = wksA.Parent.Name
wksC.Cells(iRowT, 3).Value = wksA.Cells(iRow, 2).Value       'b
wksC.Cells(iRowT, 4).Value = wksA.Parent.Name
wksC.Cells(iRowT, 5).Value = wksA.Cells(iRow, 3).Value   'c
wksC.Cells(iRowT, 6).Value = wksA.Parent.Name
wksC.Cells(iRowT, 7).Value = wksA.Cells(iRow, 4).Value   'd
wksC.Cells(iRowT, 8).Value = wksA.Parent.Name
wksC.Cells(iRowT, 9).Value = wksA.Cells(iRow, 5).Value   'e
wksC.Cells(iRowT, 10).Value = wksA.Parent.Name
wksC.Cells(iRowT, 11).Value = wksA.Cells(iRow, 6).Value   'f
wksC.Cells(iRowT, 12).Value = wksA.Parent.Name
wksC.Cells(iRowT, 13).Value = wksA.Cells(iRow, 7).Value    'g
wksC.Cells(iRowT, 14).Value = wksA.Parent.Name
wksC.Cells(iRowT, 15).Value = wksA.Cells(iRow, 8).Value   'h
wksC.Cells(iRowT, 16).Value = wksA.Parent.Name
End If
iRow = iRow + 1
Loop
iRow = 1
Do Until IsEmpty(wksB.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksA.Columns(1), _
wksB.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksC.Cells(iRowT, 1).Value = wksB.Cells(iRow, 1).Value     'a
wksC.Cells(iRowT, 2).Value = wksB.Parent.Name
wksC.Cells(iRowT, 3).Value = wksA.Cells(iRow, 2).Value       'b
wksC.Cells(iRowT, 4).Value = wksB.Parent.Name
wksC.Cells(iRowT, 5).Value = wksB.Cells(iRow, 3).Value   'c
wksC.Cells(iRowT, 6).Value = wksB.Parent.Name
wksC.Cells(iRowT, 7).Value = wksB.Cells(iRow, 4).Value   'd
wksC.Cells(iRowT, 8).Value = wksB.Parent.Name
wksC.Cells(iRowT, 9).Value = wksB.Cells(iRow, 5).Value   'e
wksC.Cells(iRowT, 10).Value = wksB.Parent.Name
wksC.Cells(iRowT, 11).Value = wksB.Cells(iRow, 6).Value   'f
wksC.Cells(iRowT, 12).Value = wksB.Parent.Name
wksC.Cells(iRowT, 13).Value = wksB.Cells(iRow, 7).Value    'g
wksC.Cells(iRowT, 14).Value = wksB.Parent.Name
wksC.Cells(iRowT, 15).Value = wksB.Cells(iRow, 8).Value   'h
wksC.Cells(iRowT, 16).Value = wksB.Parent.Name
End If
iRow = iRow + 1
Loop
End Sub


Anzeige
AW: Vergleich Arbeitsmappe
04.06.2009 20:29:20
Hajo_Zi
Halo Chris,
ich hoffe mal ich habe es korekt verstanden

Option Explicit
Sub Vergleichen()
Dim wkb As Workbook
Dim wksA As Worksheet, wksB As Worksheet, wksC As Worksheet
Dim iWks As Integer, iRow As Integer, iRowT As Integer
On Error Resume Next
For iWks = 1 To 3
Set wkb = Workbooks("Mappe" & iWks)
Next iWks
If Err > 0 Or wkb Is Nothing Then
Beep
Err.Clear
MsgBox prompt:="Die 3 Arbeitsmappen sind nicht vorhanden!"
Exit Sub
End If
On Error GoTo 0
Set wksA = Workbooks("Mappe1").Worksheets(1)
Set wksB = Workbooks("Mappe2").Worksheets(1)
Set wksC = Workbooks("Mappe3").Worksheets(1)
iRow = 1
Do Until IsEmpty(wksA.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksB.Columns(1), _
wksA.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksA.Range(Cells(iRow, 1), Cells(iRow, 8)).Copy
wksC.Cells(iRowT, 1).PasteSpecial Paste:=xlValues
wksC.Cells(iRowT, 2).Value = wksA.Parent.Name
End If
iRow = iRow + 1
Loop
iRow = 1
Do Until IsEmpty(wksB.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksA.Columns(1), _
wksB.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksA.Range(Cells(iRow, 1), Cells(iRow, 8)).Copy
wksC.Cells(iRowT, 1).PasteSpecial Paste:=xlValues
wksC.Cells(iRowT, 2).Value = wksB.Parent.Name
End If
iRow = iRow + 1
Loop
Application.CutCopyMode = False
End Sub



Anzeige
AW: Vergleich Arbeitsmappe
04.06.2009 21:13:08
chris
Danke Hajo, jedoch fehlt mir nun die Spalte B, da steht, "Mappe1.xls".
Geht es, das auch die Spalte B in der Mappe3 drinnen ist und eventuell, "Mappe1.xls" in der Spalte, wenn dies überhaupt notwendig ist, "I" steht ?
Danke für die rasche Hilfe
chris58
AW: Vergleich Arbeitsmappe
04.06.2009 21:26:12
Hajo_Zi
Hallo Chris,
Du wolltest den Bereich A:H kopieren da ist die Spalte drin.
Die Zeile wksC.Cells(iRowT, 2).Value = wksB.Parent.Name muss raus.
Wo Du diese Information hin haben willst hast Du nicht geschrieben. Vielleich
wksC.Cells(iRowT, 9).Value = wksB.Parent.Name
Gruß Hajo
Anzeige
AW: Vergleich Arbeitsmappe
04.06.2009 21:30:43
chris
Danke, ich habs
es geht nun so, wie ich mir das vorstelle
danke
chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige