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

Zeilen zusammenfassen wenn ein Wert übereinstimmt

Zeilen zusammenfassen wenn ein Wert übereinstimmt
Chris
Hallo zusammen,
ich habe ein Problem mit der Programmierung eines Makros...
Hier meine Anfangstabelle:
Mont AVO WKZ
1 1 A
1 2 B
1 3 C
1 4 A
2 5
2 6 B
2 7 B
2 8 C
2 9 A
2 10 A
Nun soll die Zahl bei Mont in eine neue DATEI eingetragen werden und die zugehörigen AVOs und WKZ übernommen werden.
Mont
1(wird eingegeben)
AVO WKZ
1, 4 A
2 B
3 C
Wird dementsprchend das bei Mont 2 eingegeben soll die Matrix folgendermaßen aussehen:
Mont
2(wird eingegeben)
AVO WKZ
6, 7 B
8 C
9, 10 A
Wenn also das WKZ B bei einem AVO mehrmals vorkommt sollen diese in einer Zelle erscheinen und durch Komma getrennt werden. Ist bei einem AVO kein WKZ (5) eingetragen soll dieser auch nicht erscheinen.
Ich wäre über euere Hilfe sehr dankbar!

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilen zusammenfassen wenn ein Wert übereinstimmt
17.09.2009 18:00:41
fcs
Hallo Chris,
hier eine Lösung.
Gruß
Franz

Sub Mon_nach_Datei_variante()
Dim wksQuelle As Worksheet
Dim wbZiel As Workbook, wksZiel As Worksheet, rngWKZ As Range
Dim varMon, varAVO, varWKZ, bolErste As Boolean
Dim ZeileQ As Long
varMon = Application.InputBox(Prompt:="Bitte Mon-Nummer eingeben", Type:=1)
If varMon = False Then Exit Sub
'Daten-Quelle setzen
Set wksQuelle = ActiveSheet
'Neue Datei anlegen
Application.Workbooks.Add Template:=xlWBATWorksheet
Set wbZiel = ActiveWorkbook
Set wksZiel = wbZiel.Worksheets(1)
With wksZiel
'Tabellenblatt benamen
.Name = "Mon_" & varMon
'Titelzeilen eintragen
.Cells(1, 1) = "Mon"
.Cells(1, 2) = varMon
.Cells(2, 1) = "AVO"
.Cells(2, 2) = "WKZ"
'Titelzeilen fixieren
Range("A3").Select
ActiveWindow.FreezePanes = True
'Tabelenblatt benamen
.Name = "Mon_" & varMon
End With
With wksQuelle
'Zeilen in Liste abarbeiten
For ZeileQ = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Zeilen ohne Eintrag in WKZ überspringen
If Not IsEmpty(.Cells(ZeileQ, 3)) Then
'Mon-Nummer vergleichen
If .Cells(ZeileQ, 1) = varMon Then
varAVO = .Cells(ZeileQ, 2)
varWKZ = .Cells(ZeileQ, 3)
With wksZiel
If bolErste = False Then
.Cells(3, 1) = varAVO
.Cells(3, 2) = varWKZ
bolErste = True
Else
'WKZ in Spalte B suchen
With .Range(.Cells(2, 2), .Cells(2, 2).End(xlDown))
Set rngWKZ = .Find(what:=varWKZ, LookIn:=xlValues, lookat:=xlWhole, _
MatchCase:=True)
If rngWKZ Is Nothing Then
'WKZ in nächste freie Zelle eintragen
With .Range("A1").End(xlDown).Offset(1, 0)
.Value = varWKZ
.Offset(0, -1).Value = varAVO
End With
Else
'AVO in Zeile ergänzen
rngWKZ.Offset(0, -1).Value = rngWKZ.Offset(0, -1).Value & ", " & varAVO
End If
End With
End If
End With
End If
End If
Next
End With
wksZiel.Columns(1).AutoFit
wbZiel.Activate
Application.Dialogs(xlDialogSaveAs).Show Arg1:="Mon_" & varMon
End Sub

Anzeige
AW: Zeilen zusammenfassen wenn ein Wert übereinstimmt
18.09.2009 11:38:41
Chris
Super lösung!!! Echt richtig gut!
Hab dennoch eine Frage...
bzw. hab mich zuvor nicht genau ausgedrückt.
Es wird eine Datei geöffnet bei der die Mont eingegeben wird. Dananch soll dann aus einer anderen Datei, in der die Datenliste enthalten ist, die AVOs und WKZs bzgl. der Mont-Nr. in die zuerst geöffnete Datei eintragen werden
.
Ich hoffe Ihr könnt mir auch bei diesem Problem helfen.
Gruß Chris
AW: Zeilen zusammenfassen wenn ein Wert übereinstimmt
18.09.2009 14:08:38
fcs
Hallo Chris,
helfen kann man schon, aber die Vorgaben sind immer noch zu vage.
überleg dir noch mal den genauen Ablauf der Dateneingabe.
Sinnvoll ist:
1. Din Mon-Nr. wird in eine bestimmte Zelle auf dem Zielblatt eingegeben.
2. Das Makro gestartet.
Das aktive Blatt wird als Zielblatt definiert und die Mon-Nr vom Makro eingelesen.
Das Makro zeigt einen Auswahldialog zum Öffnen der Datenquelle an.
Die Datenquelle wird geöffnet.
Aus welchem Tabellenblatt der Quelle sollen dann die Daten eingelesen werden? Nr. oder Name.
Danach werden dann die gefundenen Daten ins Zielblatt eingetragen. Festlegen ab welcher Zeile,Zelle die Daten eingetragen werden sollen.
Sollen vorhandene Daten gelöscht werden? Von wo bis wo? Gibt es noch andere Daten auf dem Blatt?
Gruß
Franz
Anzeige

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige