Anzeige
Archiv - Navigation
1052to1056
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

Code vergleichen und dazugeh. Werte vergleichen

Code vergleichen und dazugeh. Werte vergleichen
23.02.2009 08:40:06
Jessi
Hallo zusammen,
ich habe mal wieder ein Frage und zwar habe ich auf
Sheet 1 in Spalte B versch. Codes stehen, z.B. 03 CC 01 001 779 und in Spalte D, E, F, G wichtige Informationen, die über den Code abgefragt werden können. Auf einem anderen Sheet 2 stehen auch Codes in Spalte B ebenso wichtige Informationen in D, E, F, G.
Sollte der auf Sheet 1 bzw. 2 vorhandene Code übereinstimmen sollen die Spalten des Sheet 1 und Sheet 2 gegenübergestellt werden (Gegenüberstellung der Spalten (D,E,F,G) um zu sehen, ob sich was geändert hat. Die Gegenüberstellung sollte auf einem Sheet 3 geschehen.
Meine Frage:
Gibt es eine VBA-Möglichkeit die Gegenüberstellung anhand des Codes vorzunehmen?
Darüberhinaus wäre es sinnvoll die Werte aus Sheet 1 und Sheet 2 die sich anhand des Codes nicht decken trotzdem auf das neue Sheet mit zu übernehmen. Vielleicht sogar mit Herkunft, Sheet 1, Sheet 2?
Danke vorab für Eure Hilfe
LG
Jessi

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Beispieldatei würde helfen! (owT)
23.02.2009 09:08:41
Renee

UPLOAD mit Erklärung
23.02.2009 11:06:36
Jessi
https://www.herber.de/bbs/user/59684.xls
Anbei, so in etwa sollte das Gegenüberstellungssheet aussehen.
Es geht darum den ursprünglichen Betrag (anhand des Codes) mit der Mengenmehrung gegenüberzustellen und kummuliert darzustellen.
LG
Jessi
AW: UPLOAD mit Erklärung
23.02.2009 13:41:20
fcs
Hallo Jessi,
hier mal eine Prozedur als Grundansatz.
Die Prozedur generiert ein neues Blatt mit den Daten. In der Spalte "Kennz." ist markiert wo die Daten herkommen (T= nur in Tender, P= nur aus VO Proposal, T+P aus beiden Tabellen).
Gruß
Franz

Sub CodeVergleich()
Dim wksT As Worksheet, wksP As Worksheet, wksV As Worksheet
Dim lngZei As Long, lngZei_V As Long
Dim rngZelle2 As Range, arrSpalten, lngSpV As Long
Dim varCode, intI As Integer, bolIdentisch As Boolean
Dim lfdNr As Long
Const lngSpCode& = 2 'Spalte mit den Codes
Const lngTitel& = 9 'Zeile mit Spaltentiteln (0 setzen, wenn keine Spaltentitel)
Const lngAnz& = 8 'Anzahl Datenspalten in Tabellen (A bis H)
arrSpalten = Array(4, 5, 6, 7) 'Nummern der zu Vergleichenden Spalten (D, E, F, G)
Set wksT = Worksheets("Tender Figures")
Set wksP = Worksheets("VO Proposal")
'Neues Blatt für Datenvergleich anlegen
With ActiveWorkbook
.Worksheets.Add after:=.Sheets(.Sheets.Count)
End With
Set wksV = ActiveSheet
wksV.Name = "VO Analysis" & Format(Now, "YYYYMMDD_hhmmss")
'Titelzeilen in Vergleichstabele erzeugen
With wksV
lngZei_V = 0
lngZei_V = lngZei_V + 1
.Cells(lngZei_V, 1) = " Vergleich Codes in Tabellen"
lngZei_V = lngZei_V + 1
If lngTitel > 0 Then
lngSpV = 1
.Cells(lngZei_V, lngSpV) = "lfd. Nr."
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV) = "Sheet"
'Spalten-Titel kopieren
lngSpV = lngSpV + 1
wksT.Range(wksT.Cells(lngTitel, 1), wksT.Cells(lngTitel, lngAnz)).Copy _
Destination:=.Cells(lngZei_V, lngSpV)
End If
lngSpV = lngSpV + lngAnz
.Cells(lngZei_V, lngSpV) = "Kennz."
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV) = "SummeNeu"
End With
'Tabelle unter Titelzeilen fixieren
Cells(lngZei_V + 1, 1).Select
ActiveWindow.FreezePanes = True
'Codes in Tender im Proposal suchen
lfdNr = 0
With wksT
For lngZei = lngTitel + 1 To .Cells(.Rows.Count, lngSpCode).End(xlUp).Row
lfdNr = lfdNr + 1
varCode = .Cells(lngZei, lngSpCode).Value
lngZei_V = lngZei_V + 1
'Laufende Nummer eintragen
lngSpV = 1
wksV.Cells(lngZei_V, lngSpV) = lfdNr
wksV.Cells(lngZei_V + 1, lngSpV) = lfdNr
'Tabellennamen eintragen
lngSpV = lngSpV + 1
wksV.Cells(lngZei_V, lngSpV) = wksT.Name
wksV.Cells(lngZei_V + 1, lngSpV) = wksP.Name
'Code in Proposal suchen
Set rngZelle2 = wksP.Columns(lngSpCode).Find(What:=varCode, LookIn:=xlValues, _
lookat:=xlWhole)
If rngZelle2 Is Nothing Then
'Tender Code fehlt in Proposal
bolIdentisch = False
lngSpV = lngSpV + 1
'Daten kopieren
wksT.Range(wksT.Cells(lngZei, 1), wksT.Cells(lngZei, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V, lngSpV)
wksV.Cells(lngZei_V + 1, 4) = varCode
'Datenzeile kennzeichen
lngSpV = lngSpV + lngAnz
wksV.Cells(lngZei_V, lngSpV).Value = "T"
'Summenformel eintragen
With wksV
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV).Formula = "=R[0]C[-3]"
End With
Else
lngSpV = lngSpV + 1
'Daten kopieren
wksT.Range(wksT.Cells(lngZei, 1), wksT.Cells(lngZei, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V, lngSpV)
wksP.Range(wksP.Cells(rngZelle2.Row, 1), wksP.Cells(rngZelle2.Row, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V + 1, lngSpV)
bolIdentisch = True
'Daten vergleichen
For intI = LBound(arrSpalten) To UBound(arrSpalten)
'Vergleich der Werte zwischen Tabellen
If wksT.Cells(lngZei, arrSpalten(intI)).Value  _
wksP.Cells(rngZelle2.Row, arrSpalten(intI)).Value Then
bolIdentisch = False
wksV.Cells(lngZei_V + 1, lngSpV + arrSpalten(intI) - 1).Interior.ColorIndex = 3
End If
Next
'Datenzeile kennzeichen
lngSpV = lngSpV + lngAnz
If bolIdentisch = True Then
wksV.Cells(lngZei_V, lngSpV).Value = "T+P"
wksV.Cells(lngZei_V + 1, lngSpV).Value = "T+P"
Else
wksV.Cells(lngZei_V, lngSpV).Value = "T+P"
wksV.Cells(lngZei_V + 1, lngSpV).Value = "T+P"
End If
'Summenformel eintragen
With wksV
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV).Formula = "=R[0]C[-3]+R[1]C[-3]"
End With
End If
lngZei_V = lngZei_V + 1
Next
End With
'Gegenprüfung Codes in Proposal im Tender suchen
With wksP
For lngZei = lngTitel + 1 To .Cells(.Rows.Count, lngSpCode).End(xlUp).Row
varCode = .Cells(lngZei, lngSpCode).Value
'Code in Tender suchen
Set rngZelle2 = wksT.Columns(lngSpCode).Find(What:=varCode, LookIn:=xlValues, _
lookat:=xlWhole)
If rngZelle2 Is Nothing Then
'Proposal Code fehlt in Tender-Tabelle
lfdNr = lfdNr + 1
lngZei_V = lngZei_V + 1
lngSpV = 1
wksV.Cells(lngZei_V, lngSpV) = lfdNr
wksV.Cells(lngZei_V + 1, lngSpV) = lfdNr
lngSpV = lngSpV + 1
wksV.Cells(lngZei_V, lngSpV) = wksT.Name
wksV.Cells(lngZei_V + 1, lngSpV) = wksP.Name
bolIdentisch = False
lngSpV = lngSpV + 1
'Daten kopieren
wksP.Range(wksP.Cells(lngZei, 1), wksP.Cells(lngZei, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V + 1, lngSpV)
wksV.Cells(lngZei_V, 4) = varCode
'Datenzeile kennzeichen, ob identisch
lngSpV = lngSpV + lngAnz
wksV.Cells(lngZei_V + 1, lngSpV).Value = "P"
'Summenformel eintragen
With wksV
lngSpV = lngSpV + 1
.Cells(lngZei_V + 1, lngSpV).Formula = "=R[0]C[-3]"
End With
lngZei_V = lngZei_V + 1
End If
Next
End With
'Spalten in Zieltabelle formatieren
With wksV
.Cells.VerticalAlignment = xlVAlignTop
.UsedRange.EntireColumn.AutoFit
.Columns(1).ColumnWidth = 6
.Columns(5).ColumnWidth = 45
.Columns(5).WrapText = True
End With
Set wksT = Nothing:   Set wksP = Nothing: Set wksV = Nothing: Set rngZelle2 = Nothing
End Sub


Anzeige
@ FCS - EINFACH GENIAL!!!
23.02.2009 13:48:51
Jessi
vielen lieben DANK!!!!! Funktioniert einwandfrei!!!!!!
@ FCS - kleine Rückfrage:
23.02.2009 16:31:08
Jessi
Hallo Franz,
habe jetzt alle Stations einkopiert. Gibt es eine Möglichkeit, dass der Code der Logik nach schaut welcher Code doppelt vorhanden ist (macht er jetzt ja schon) und zudem, ob es auch die dazugehörige "Station" ist. Ohne die dazugehörige Station würde er den Code von verschiedenen Stations wild durcheinander schreiben. :-) Ist mir vorher gar nicht bewusst gewesen. Lg.
AW: @ FCS - kleine Rückfrage:
23.02.2009 18:37:14
fcs
Hallo Jessi,
hier eine Anpassung, die den Namen der Station beim Vergleich der Codes mit einbezieht und zum Schluss die Daten nach der Station sortiert.
Gruß
Franz

Sub CodeVergleich_var01()
Dim wksT As Worksheet, wksP As Worksheet, wksV As Worksheet
Dim lngZei As Long, lngZei_V As Long, lngZei_Titel_V As Long
Dim rngZelle2 As Range, arrSpalten, lngSpV As Long
Dim varCode, intI As Integer, bolIdentisch As Boolean, strAdresse1 As String
Dim rngBereich As Range, strStation As String, bolTreffer As Boolean
Dim lfdNr As Long
Const lngSpCode& = 2 'Spalte mit den Codes
Const lngTitel& = 9 'Zeile mit Spaltentiteln
Const lngAnz& = 8 'Anzahl Datenspalten in Tabellen (A bis H)
arrSpalten = Array(4, 5, 6, 7) 'Nummern der zu Vergleichenden Spalten (D, E, F, G)
Set wksT = Worksheets("Tender Figures")
Set wksP = Worksheets("VO Proposal")
'Neues Blatt für Datenvergleich anlegen
With ActiveWorkbook
.Worksheets.Add after:=.Sheets(.Sheets.Count)
End With
Set wksV = ActiveSheet
wksV.Name = "VO Analysis" & Format(Now, "YYYYMMDD_hhmmss")
'Titelzeilen in Vergleichstabele erzeugen
With wksV
lngZei_V = 0
lngZei_V = lngZei_V + 1
.Cells(lngZei_V, 1) = " Vergleich Codes in Tabellen"
lngZei_V = lngZei_V + 1
lngSpV = 1
.Cells(lngZei_V, lngSpV) = "lfd. Nr."
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV) = "Sheet"
'Spalten-Titel kopieren
lngSpV = lngSpV + 1
wksT.Range(wksT.Cells(lngTitel, 1), wksT.Cells(lngTitel, lngAnz)).Copy _
Destination:=.Cells(lngZei_V, lngSpV)
lngSpV = lngSpV + lngAnz
.Cells(lngZei_V, lngSpV) = "Kennz."
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV) = "SummeNeu"
lngZei_Titel_V = lngZei_V
End With
'Tabelle unter Titelzeilen fixieren
Cells(lngZei_V + 1, 1).Select
ActiveWindow.FreezePanes = True
'Codes in Tender im Proposal suchen
lfdNr = -1
'Suchbereich für Codes im Blatt Proposal
With wksP
Set rngBereich = .Range(.Cells(lngTitel + 1, lngSpCode), .Cells(.Rows.Count, lngSpCode).End( _
xlUp))
End With
With wksT
For lngZei = lngTitel + 1 To .Cells(.Rows.Count, lngSpCode).End(xlUp).Row
lfdNr = lfdNr + 2
varCode = .Cells(lngZei, lngSpCode).Value
strStation = .Cells(lngZei, lngSpCode - 1).Value
lngZei_V = lngZei_V + 1
'Laufende Nummer eintragen
lngSpV = 1
wksV.Cells(lngZei_V, lngSpV) = lfdNr
wksV.Cells(lngZei_V + 1, lngSpV) = lfdNr + 1
'Tabellennamen eintragen
lngSpV = lngSpV + 1
wksV.Cells(lngZei_V, lngSpV) = wksT.Name
wksV.Cells(lngZei_V + 1, lngSpV) = wksP.Name
'Code in Proposal suchen
Set rngZelle2 = wksP.Columns(lngSpCode).Find(What:=varCode, LookIn:=xlValues, _
lookat:=xlWhole)
If rngZelle2 Is Nothing Then
'Tender Code fehlt in Proposal
lngSpV = lngSpV + 1
'Daten kopieren
wksT.Range(wksT.Cells(lngZei, 1), wksT.Cells(lngZei, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V, lngSpV)
wksV.Cells(lngZei_V + 1, 4) = varCode
wksV.Cells(lngZei_V + 1, 3) = strStation
'Datenzeile kennzeichen
lngSpV = lngSpV + lngAnz
wksV.Cells(lngZei_V, lngSpV).Value = "T"
'Summenformel eintragen
With wksV
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV).Formula = "=R[0]C[-3]"
End With
Else
strAdresse1 = rngZelle2.Address
bolTreffer = False
Do
If strStation = rngZelle2.Offset(0, -1).Value Then
bolTreffer = True
Exit Do
End If
Set rngZelle2 = rngBereich.FindNext(after:=rngZelle2)
If rngZelle2.Address = strAdresse1 Then Exit Do
Loop
lngSpV = lngSpV + 1
If bolTreffer = True Then
'Daten kopieren
wksT.Range(wksT.Cells(lngZei, 1), wksT.Cells(lngZei, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V, lngSpV)
wksP.Range(wksP.Cells(rngZelle2.Row, 1), wksP.Cells(rngZelle2.Row, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V + 1, lngSpV)
bolIdentisch = True
'Daten vergleichen
For intI = LBound(arrSpalten) To UBound(arrSpalten)
'Vergleich der Werte zwischen Tabellen
If wksT.Cells(lngZei, arrSpalten(intI)).Value  _
wksP.Cells(rngZelle2.Row, arrSpalten(intI)).Value Then
bolIdentisch = False
wksV.Cells(lngZei_V + 1, lngSpV + arrSpalten(intI) - 1).Interior.ColorIndex = 3
End If
Next
'Datenzeile kennzeichen
lngSpV = lngSpV + lngAnz
If bolIdentisch = True Then
wksV.Cells(lngZei_V, lngSpV).Value = "T+P"
wksV.Cells(lngZei_V + 1, lngSpV).Value = "T+P"
Else
wksV.Cells(lngZei_V, lngSpV).Value = "T+P"
wksV.Cells(lngZei_V + 1, lngSpV).Value = "T+P"
End If
'Summenformel eintragen
With wksV
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV).Formula = "=R[0]C[-3]+R[1]C[-3]"
End With
Else
'Tender Code gibt es für die Station im Proposal nicht
lngSpV = lngSpV + 1
'Daten kopieren
wksT.Range(wksT.Cells(lngZei, 1), wksT.Cells(lngZei, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V, lngSpV)
wksV.Cells(lngZei_V + 1, 4) = varCode
wksV.Cells(lngZei_V + 1, 3) = strStation
'Datenzeile kennzeichen
lngSpV = lngSpV + lngAnz
wksV.Cells(lngZei_V, lngSpV).Value = "T"
'Summenformel eintragen
With wksV
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV).Formula = "=R[0]C[-3]"
End With
End If
End If
lngZei_V = lngZei_V + 1
Next
End With
'Gegenprüfung Codes in Proposal im Tender suchen
With wksP
For lngZei = lngTitel + 1 To .Cells(.Rows.Count, lngSpCode).End(xlUp).Row
varCode = .Cells(lngZei, lngSpCode).Value
strStation = .Cells(lngZei, lngSpCode - 1).Value
'Code in Tender suchen
Set rngZelle2 = wksT.Columns(lngSpCode).Find(What:=varCode, LookIn:=xlValues, _
lookat:=xlWhole)
If rngZelle2 Is Nothing Then
'Proposal Code fehlt in Tender-Tabelle
bolTreffer = False
Else
strAdresse1 = rngZelle2.Address
bolTreffer = False
Do
If strStation = rngZelle2.Offset(0, -1).Value Then
bolTreffer = True
Exit Do
End If
Set rngZelle2 = rngBereich.FindNext(after:=rngZelle2)
If rngZelle2.Address = strAdresse1 Then Exit Do
Loop
End If
If bolTreffer = True Then
'Nichts eintragen, Daten sind bereits beim vorherigen Vergleich erfasst.
Else
'Proposal Code gibt es für die Station im Tender nicht
lfdNr = lfdNr + 2
lngZei_V = lngZei_V + 1
lngSpV = 1
wksV.Cells(lngZei_V, lngSpV) = lfdNr
wksV.Cells(lngZei_V + 1, lngSpV) = lfdNr + 1
lngSpV = lngSpV + 1
wksV.Cells(lngZei_V, lngSpV) = wksT.Name
wksV.Cells(lngZei_V + 1, lngSpV) = wksP.Name
lngSpV = lngSpV + 1
'Daten kopieren
wksV.Cells(lngZei_V, 4) = varCode
wksV.Cells(lngZei_V, 3) = strStation
wksP.Range(wksP.Cells(lngZei, 1), wksP.Cells(lngZei, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V + 1, lngSpV)
'Datenzeile kennzeichen
lngSpV = lngSpV + lngAnz
wksV.Cells(lngZei_V + 1, lngSpV).Value = "P"
'Summenformel eintragen
With wksV
lngSpV = lngSpV + 1
.Cells(lngZei_V + 1, lngSpV).Formula = "=R[0]C[-3]"
End With
lngZei_V = lngZei_V + 1
End If
Next
End With
'Spalten in Zieltabelle formatieren
With wksV
.Cells.VerticalAlignment = xlVAlignTop
.UsedRange.EntireColumn.AutoFit
.Columns(1).ColumnWidth = 6
.Columns(5).ColumnWidth = 45
.Columns(5).WrapText = True
'sortieren nach Station und lfd. Nr.
Set rngBereich = .Range(.Rows(lngZei_Titel_V), .Rows(lngZei_V))
With rngBereich
.Sort key1:=.Range("C1"), order1:=xlAscending, _
key2:=.Range("A1"), order2:=xlAscending, header:=xlYes, Orientation:=xlTopToBottom
End With
'Spalte A neu nummerieren
lfdNr = 0
For lngZei = lngZei_Titel_V + 1 To lngZei_V Step 2
lfdNr = lfdNr + 1
.Cells(lngZei, 1).Value = lfdNr
.Cells(lngZei + 1, 1).Value = lfdNr
Next
End With
Set wksT = Nothing:   Set wksP = Nothing: Set wksV = Nothing: Set rngZelle2 = Nothing
End Sub


Anzeige
nochmal Rückfrage:
24.02.2009 09:11:14
Jessi
hallo franz,
habe eine kleine fehlermeldung bei der gegenüberstellung, kann mich nicht erklärung wieso das in die andere zeile da geschrieben wird, weil ich den code nicht so recht verstehe. ist 3 stufen zu schwer für mich.
habe das blau markiert:
https://www.herber.de/bbs/user/59713.xls
lg + danke vorab.
jessi
AW: nochmal Rückfrage:
24.02.2009 10:17:48
fcs
Hallo Jessi,
da war mir ein Spaltenversatz zuviel in den Code geraten.
Korrektur im nachfolgenden Abschnitt der Prozedur.
Gruß
Franz

Else
'Tender Code gibt es für die Station im Proposal nicht
'          lngSpV = lngSpV + 1                                     ##### 2009-02-24 fcs   _
'Daten kopieren
wksT.Range(wksT.Cells(lngZei, 1), wksT.Cells(lngZei, lngAnz)).Copy _
Destination:=wksV.Cells(lngZei_V, lngSpV)
wksV.Cells(lngZei_V + 1, 4) = varCode
wksV.Cells(lngZei_V + 1, 3) = strStation
'Datenzeile kennzeichen
lngSpV = lngSpV + lngAnz
wksV.Cells(lngZei_V, lngSpV).Value = "T"
'Summenformel eintragen
With wksV
lngSpV = lngSpV + 1
.Cells(lngZei_V, lngSpV).Formula = "=R[0]C[-3]"
End With
End If
End If
lngZei_V = lngZei_V + 1
Next
End With
'Gegenprüfung Codes in Proposal im Tender suchen


Anzeige
SUPER DANKE!!!!
24.02.2009 10:51:04
Jessi
liebe grüße
jessi
AW: Gegenüberstellung mit PIVOT
23.02.2009 19:06:53
Daniel
Hi
man kann, wenn die Daten in eine Tabelle zusammenkopiert, solche Gegenüberstellungen auch mit Hilfe der Pivot-Tabelle recht schnell erstellen, das geht auch von Hand recht zügig.
nichtsdestotrotz, hier mal als Makro:

Sub Zusammenfassen()
Dim shZ As Worksheet
'--- Tabellenblatt für Vergleich festlegen und Einfügen
On Error GoTo SheetNeu:
Set shZ = Sheets("Vergleich")
shZ.Cells.Clear
On Error GoTo 0
'--- Daten in einem Blatt zusammenstellen
Sheets("Tender Figures").Cells(9, 1).CurrentRegion.Copy shZ.Cells(1, 1)
With shZ.Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1)
.Value = "Quelle"
Range(.Offset(1, 0), .Offset(0, -1).End(xlDown).Offset(0, 1)).Value = "Tender"
shZ.Cells(1, "G").Value = "Betrag"
End With
Sheets("VO Proposal").Cells(9, 1).CurrentRegion.Offset(1, 0).Copy _
shZ.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
With shZ.Cells(1, Columns.Count).End(xlToLeft).End(xlDown)
Range(.Offset(1, 0), .Offset(0, -1).End(xlDown).Offset(0, 1)).Value = "Proposal"
End With
'--- Vergleich der Datenstände mit PivotTabelle
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
SourceData:="'" & shZ.Name & "'!" & shZ.Cells(1, 1).CurrentRegion.Address(0, 0, 1, 1)) _
.CreatePivotTable TableDestination:="", _
TableName:="PivotTable1", _
DefaultVersion:=xlPivotTableVersion10
With ActiveSheet.PivotTables("PivotTable1")
.ColumnGrand = False
.RowGrand = False
.AddFields RowFields:=Array("Station", "Code", "Working Procedere", "Daten"), _
ColumnFields:="Quelle"
With .PivotFields("Qty")
.Orientation = xlDataField
.Position = 1
.NumberFormat = "0.00"
End With
With .PivotFields("Unit Rate")
.Orientation = xlDataField
.Position = 2
.NumberFormat = "0.00"
End With
With .PivotFields("Betrag")
.Orientation = xlDataField
.NumberFormat = "#,##0.00 €"
End With
.DataPivotField.Orientation = xlColumnField
.DataPivotField.Position = 1
.PivotSelect "Code[All;Total]", xlDataAndLabel, True
Selection.Delete
End With
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("PivotTable").Visible = False
Cells(1, 1).Select
Range("A:C").EntireColumn.AutoFit
End
SheetNeu:
Sheets.Add
ActiveSheet.Name = "Vergleich"
Resume
End Sub


Beispieldatei: (Makro "Vergleich" starten)
https://www.herber.de/bbs/user/59706.xls
Gruß, Daniel

Anzeige
AW: Gegenüberstellung mit PIVOT
24.02.2009 10:53:43
Jessi
hallo daniel, danke auch für deine rückmeldung. mit pivot habe ich noch nicht gearbeitet bis dato. ist allerdings sehr interessant, werde ich mir merken :-) lg jessi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige