Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen mit gleichem Inhalt in Spalte A makieren

Zeilen mit gleichem Inhalt in Spalte A makieren
05.05.2024 18:16:04
wennerfaellt
Hallo ich habe hier einen Code geschrieben, der funktioniert, aber es geht vielleicht noch einfacher?
https://www.herber.de/bbs/user/169265.xlsm

Sub Test()
Dim Auswahl As Range
Dim Verkäufer As Range
Dim Anfang As Long
Dim Ende As Long
Set Verkäufer = Sheets("Mitarbeiter").Range("A3")
Set Auswahl = Sheets("MA").Range("A1")

Do Until Auswahl = Verkäufer
Set Auswahl = Auswahl.Offset(1, 0)

Loop

Anfang = Auswahl.Row

Do While Auswahl = Verkäufer
Set Auswahl = Auswahl.Offset(1, 0).Range("A1")

Loop

Ende = Auswahl.Offset(-1, 0).Row

Rows(Anfang & ":" & Ende).Copy Sheets("Mitarbeiter").Range("A40")


End Sub


Ich habe hier in einer Beispieldatei eine fiktive Umsatzliste. Diese ist vorher sortiert nach Verkäufer, dann nach Datum.
Jetzt sucht mein Code die Zeilen des Verkäufers Schulze um diese ins andere Tabellenblatt zu kopieren. Dazu bekommt der Verkäufer im Tabellenblatt "MA" eine Variable zugewiesen.
Diese wird verglichen mit den Namen im Tabellenblatt Mitarbeiter, wo ich mit einem Loop die erste Zeile des Verkäufers suche, dann mit einem 2. Loop die letzte Zeile, diese kopiere und einfüge.
Das funktioniert. Ich habe auch alle Selects herausgearbeitet.

Aber:
in der Originaldatei habe ich Tausende Zeilen. Da ist meine Frage, gibt es hier einen in der Ausführung des Makros schnelleren Weg?

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen mit gleichem Inhalt in Spalte A makieren
05.05.2024 18:30:51
Onur
und was hat das, was du schreibst, mit dem Betreff: "Zeilen mit gleichem Inhalt in Spalte A makieren" zu tun ?
AW: Zeilen mit gleichem Inhalt in Spalte A makieren
05.05.2024 20:37:10
Piet
Hallo

ich würde den 1. Suchlauf mit der Find Methode durchführen, statt jede Zeile abzufragen.
Wenn die Sortierung exakt stimmt könnte man das Zeilenende über den 2. Mitarbeiter Namen finden.
Bei diesem Makro wird aber nur der 1. Mitarbeiter in die "MA" Tabelle kopiert. Was ist mit den anderen??

Sollen alle Mitarbeiter von A1 bis A4 aufgelistet werden?? - Meyer, Müller, Schulze, Schmidt
Wenn je, sollen Leerzeilen zwischen de Mitarbeitern sein??

mfg Piet
Anzeige
AW: Zeilen mit gleichem Inhalt in Spalte A makieren
06.05.2024 11:36:35
daniel
Hi
wenn die Liste sortiert ist, dann verwende .Find um den ersten und letzten Eintrag eines Mitarbeiters zu finden:

Sub VerkäuferKopieren()

Dim verkäufer As String
Dim rngStart As Range
Dim rngEnde As Range

verkäufer = Sheets("Mitarbeiter").Range("A3")

With Sheets("MA").Range("A:A")
Set rngStart = .Find(what:=verkäufer, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext)
Set rngEnde = .Find(what:=verkäufer, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious)
End With

If rngStart Is Nothing Then
MsgBox "Verkäufer nicht vorhanden"
Else
Range(rngStart, rngEnde).EntireRow.Copy Sheets("Mitarbeiter").Range("A40")
End If
End Sub


dann gäbe es noch die unkonventionelle Methode, den Verkäufernamen durch ein WAHR zu ersetzen.
dieses WAHR kannst du dann nämlich einfach über die Excelfunktionen selektieren:
Sub VerkäuferKopieren_2()

Dim verkäufer As String
verkäufer = Sheets("Mitarbeiter").Range("A3")

With Sheets("MA").Range("A:A")
.Replace verkäufer, True, xlWhole
With .SpecialCells(xlCellTypeConstants, 4)
.Value = verkäufer
.EntireRow.Copy Sheets("Mitarbeiter").Range("A40")
End With
End With

End Sub

die zweite Methode funktioniert nicht, wenn die Ausgangsliste aus Formeln besteht.

Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige