Hallo,
ich bin neu hier und mein erster Beitrag fangt mit Frage .
Ich bin auch neu bei VBA Excel Programmierung.
Ich muss 2 Excel vergleichen " Zeile : Name: nicht geändert, Neu oder Gelöscht ; Spalte : wenn in der Zeile nicht geändert wurde dann Spalte vergleichen ob was geändert wurde " und Diff speichern und markieren . soweit habe ich kein Problem.
Mein Problem ist
im Excel sind gleiche Name ca 6 vorhanden und manchmal kann vorkommen dass die Name gelöscht ist , oder im Excel 2 neu dazu gekommen
Bp.
Excel 1
Muller 1985 180cm Blond ....... A1
Muller 1600€ 30T unbef ..... A2
Muller ......... A3
Muller ........ A4
Excel 2
Muller 1985 180cm Blond ....... A1
Muller 1800€ 30T unbef ..... A2
Muller ......... A3
Muller ........ A4
Excel 1
Ralf ...........A25-A30
Marc ..........A31-A35
Exce2
Marc .........A25-A30
Soll
Muller A2 im B2 wurde geändert
Ralf ist gelöscht
dann soll Marc "Excel1" A31-35 mit Marc "Excel2" A25-A30 vergleichen
Es geht wenn nur einmal Muller vorhanden ist
Für eure Vorschläge bin ich bedankbar
*Topic verschoben*
ich bin neu hier und mein erster Beitrag fangt mit Frage .
Ich bin auch neu bei VBA Excel Programmierung.
Ich muss 2 Excel vergleichen " Zeile : Name: nicht geändert, Neu oder Gelöscht ; Spalte : wenn in der Zeile nicht geändert wurde dann Spalte vergleichen ob was geändert wurde " und Diff speichern und markieren . soweit habe ich kein Problem.
Mein Problem ist
im Excel sind gleiche Name ca 6 vorhanden und manchmal kann vorkommen dass die Name gelöscht ist , oder im Excel 2 neu dazu gekommen
Bp.
Excel 1
Muller 1985 180cm Blond ....... A1
Muller 1600€ 30T unbef ..... A2
Muller ......... A3
Muller ........ A4
Excel 2
Muller 1985 180cm Blond ....... A1
Muller 1800€ 30T unbef ..... A2
Muller ......... A3
Muller ........ A4
Excel 1
Ralf ...........A25-A30
Marc ..........A31-A35
Exce2
Marc .........A25-A30
Soll
Muller A2 im B2 wurde geändert
Ralf ist gelöscht
dann soll Marc "Excel1" A31-35 mit Marc "Excel2" A25-A30 vergleichen
Es geht wenn nur einmal Muller vorhanden ist
Für eure Vorschläge bin ich bedankbar
Visual Basic-Quellcode
- Sub DiffTM()
- Dim l(200) As Boolean
- Dim idiff As Boolean
- Zeile_Old = Workbooks(sFILETM2).Sheets(1).UsedRange.Rows.Count
- Spalte_Old = Workbooks(sFILETM2).Sheets(1).UsedRange.Columns.Count
- Zeile_New = Workbooks(sFILETM).Sheets(1).UsedRange.Rows.Count
- Spalte_New = Workbooks(sFILETM).Sheets(1).UsedRange.Columns.Count
- Tabell1 = Workbooks(sFILETM2).Sheets(1).Name
- Tabell1 = Workbooks(sFILETM).Sheets(1).Name
- 'Tabell2 = Workbooks(sFILETM2).Sheets(2).Name
- 'Tabell2 = Workbooks(sFILETM).Sheets(2).Name
- If Sheets("CTRL").OptionButtonIN.Value = "Wahr" Then
- sSection = Tabell1
- Sheets("DIFF_1").Activate
- Else
- sSection = Tabell2
- Sheets("DIFF_2").Activate
- End If
- ActiveSheet.Range("A5:O65536").Select
- Selection.Interior.ColorIndex = 0
- Selection = ""
- ActiveSheet.Range("A1:A1").Select
- ZMAX = Workbooks(sFILETM).Sheets(sSection).UsedRange.Rows.Count
- SMAX = Workbooks(sFILETM).Sheets(sSection).UsedRange.Columns.Count
- Z2MAX = Workbooks(sFILETM2).Sheets(sSection).UsedRange.Rows.Count
- Spalte = Workbooks(sFILETM2).Sheets(sSection).UsedRange.Columns.Count
- IMAX = Z2MAX
- JMAX = ZMAX
- PMAX = JMAX * 2
- K = 5
- For I = 2 To IMAX
- For J = 2 To JMAX
- If Workbooks(sFILETM2).Sheets(sSection).Cells(I, 1) = Workbooks(sFILETM).Sheets(sSection).Cells(J, 1) Then
- idiff = False
- For a = 1 To Spalte
- l(a) = (Workbooks(sFILETM).Sheets(sSection).Cells(J, a) <> Workbooks(sFILETM2).Sheets(sSection).Cells(I, a))
- If l(a) Then idiff = True
- Next a
- If idiff = True Then
- For M = 1 To a
- Cells(K, M) = Workbooks(sFILETM2).Sheets(sSection).Cells(I, M)
- If l(M) Then
- Cells(K, M) = Workbooks(sFILETM2).Sheets(sSection).Cells(I, M)
- Call DoBlue(K, M)
- End If
- Next M
- K = K + 1
- End If
- Exit For
- Else
- If J = JMAX Then
- For M = 1 To a
- Cells(K, M) = Workbooks(sFILETM2).Sheets(sSection).Cells(I, M)
- Call DoGreen(K, M)
- Next M
- K = K + 1
- End If
- End If
- Next J
- Next I
- For I = 2 To IMAX
- For J = 2 To JMAX
- If Workbooks(sFILETM2).Sheets(sSection).Cells(J, 1) = Workbooks(sFILETM).Sheets(sSection).Cells(I, 1) Then
- Exit For
- Else
- If J = JMAX Then
- For M = 1 To a
- Cells(K, M) = Workbooks(sFILETM).Sheets(sSection).Cells(I, M)
- Call DoRed(K, M)
- Next M
- K = K + 1
- End If
- End If
- Next J
- Next I
- Workbooks(sFILETM).Close
- Workbooks(sFILETM2).Close
- End Sub
*Topic verschoben*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()