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

VBA - Ergebnisse untereinander ausgeben

VBA - Ergebnisse untereinander ausgeben
03.03.2020 09:06:14
Metz
Moin Leute,
ich habe ein Bestandsplan für unsere Geräte erstellt, welche leider länger geworden ist. Aus diesem Grund würde ich gern per Suchbegriff-Eingabe den Besitzer der jeweiligen Geräte raussuchen und dann diesen auf einem anderen Worksheet ausgeben. Klappen tut das Finden und Kopieren der Daten, allerdings würde ich gern diese untereinander haben. Momentan werden die Ursprungszeilennummer als Positionsnummer (im anderen Worksheet) übernommen. Den Suchen und Kopieren Code konnte ich mir freundlicherweise per google "erhaschen" :D (http://www.office-loesung.de/ftopic421442_0_0_asc.php)
Konnte eine Beispieldatei leider nicht hochladen bzw. die Datei wurde nicht gefunden
Aus diesem Grund eine kurze Wiedergabe der Beispieldatei (hab hier mit Autos als Beispiel gearbeitet)
Im Worksheet "Autos" ist eine Tabelle mit 3 Spalten vorhanden (Modell | Marke | Besitzer)
Darunter 6 Zeilen mit Informationen wie: Zeile 3: A-Klasse | Mercedes | Ralph
Zeile 7: Corsa | Opel | Ralph
Zeile 6: A8 | Audi | Mayer
Durch den folgenden Code werden mir die Infos welche zum Suchbegriff gehören (z.B. Ralph) alle Zeilen kopiert und in das neue Worksheet "Suche" eingefügt. Allerdings sind dann die Ergebnisse nicht wie gewünscht untereinander sondern mit Abständen "untereinander". Ich hoffe, ich konnte hier meine Bitte präzise genug darstellen :D
Sub Suche_Und_Kopiere()
Dim rngC As Range
Dim strAdresse As String
With Worksheets("Autos").Columns("D")
Set rngC = .Find("Ralph")
If Not rngC Is Nothing Then
strAdresse = rngC.Address
Do
rngC.EntireRow.Copy Destination:=Worksheets("Suche").Range("A" & rngC.Row)
Set rngC = .FindNext(rngC)
Loop While Not rngC.Address = strAdresse
End If
End With
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Ergebnisse untereinander ausgeben
03.03.2020 12:50:11
Rudi
Hallo,
rngC.EntireRow.Copy Destination:=Worksheets("Suche").cells(rows.count,1).end(xlup).offset(1)
Gruß
Rudi
AW: VBA - Ergebnisse untereinander ausgeben
03.03.2020 13:06:05
Metz
Tach Rudi,
vielen Dank für deine Rückmeldung. Leider wird dann nur noch die Zeile mit Corsa | Opel | Ralph ausgegeben, das andere Auto von "Ralph" wird nicht mitkopiert.
Leider kann ich die Datei, die ich erstellt habe nicht gefunden werden beim Hochladen. Würde eventuell mehr helfen.
bei mir klappt das.
03.03.2020 13:20:15
Rudi
schieb die Datei mal nach c:\ und versuchs dann noch mal mit dem Hochladen.
AW: bei mir klappt das.
03.03.2020 13:42:43
Metz
Habs mit einem anderem Browser getestet und voila es klappt
https://www.herber.de/bbs/user/135588.xlsm
Anzeige
AW: bei mir klappt das.
03.03.2020 14:04:27
Werner
Hallo,
Code von Rudi angepasst:
Sub Suche_Und_Kopiere2()
Dim rngC As Range, strAdresse As String
With Worksheets("Autos").Columns("D")
Set rngC = .Find("Ralph")
If Not rngC Is Nothing Then
strAdresse = rngC.Address
Do
rngC.Offset(, -2).Resize(, 3).Copy _
Destination:=Worksheets("Suche").Cells(Rows.Count, 2).End(xlUp).Offset(1)
Set rngC = .FindNext(rngC)
Loop While Not rngC.Address = strAdresse
End If
End With
End Sub
Gruß Werner
AW: bei mir klappt das.
04.03.2020 08:39:21
Metz
Hallo Werner,
vielen Dank für deine Rückmeldung.
Es hat geklappt allerdings hätte ich noch zwei Fragen. (Beispieldatei dazu hochgeladen)
1) Wie kopiere ich eine neue Spalte mit, die vor der Spalte "Modell" steht? (Im Beispiel Spalte "Stadt")
Spalten die nach "Besitzer" stehen kann ich durch die Veränderung der Zahl bei Resize(, 3) bewirken.
2) Gerne würde ich die Ausgabe in eine schöne Tabelle hineinkopieren, wie kann ich hier den Zellbereich bestimmen wo die Daten hineinkopiert werden? (Am Besten ohne die Formatierung der Tabelle zu ändern)
Ich bedanke mich im Voraus
Anbei die Beispieldatei:
https://www.herber.de/bbs/user/135596.xlsm
Grüße
Metz
Anzeige
AW: bei mir klappt das.
05.03.2020 07:29:16
Werner
Hallo,
so:
Sub Suche_Und_Kopiere2()
Dim rngC As Range, strAdresse As String
Application.ScreenUpdating = False
With Worksheets("Autos").Columns("D")
Set rngC = .Find("Ralph")
If Not rngC Is Nothing Then
strAdresse = rngC.Address
Do
rngC.Offset(, -3).Resize(, 4).Copy
With Worksheets("Suche")
.Cells(.Rows.Count, 2).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
End With
Set rngC = .FindNext(rngC)
Loop While Not rngC.Address = strAdresse
End If
End With
Application.CutCopyMode = False
End Sub/pre>
Gruß Werner

AW: bei mir klappt das.
05.03.2020 12:17:57
Metz
Hallo Werner,
vielen Dank für deine Rückmeldung. Hat alles geklappt :)
Danke euch beiden.
Metz
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
05.03.2020 13:21:28
Werner

294 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige