Microsoft Excel

Herbers Excel/VBA-Archiv

Blatt1-Blatt2-Zeilentransfer_Wort=gleich

Betrifft: Blatt1-Blatt2-Zeilentransfer_Wort=gleich von: Hendrik
Geschrieben am: 28.10.2020 08:46:09


Guten Morgen zusammen!

Vielleicht könnt ihr mir helfen, den Code, den ich gefunden habe (füge ich unten an), um einen Punkt zu ergänzen.
(Vielleicht taugt er aber auch überhaupt nicht?)

Ausgangslage:
Blatt x ist die Zusammenführung von 10 Blättern.
- Blatt 1 liefert für die Gesamtansicht x beispielsweise die ausgewählten Fleischgerichte
- Blatt 2 liefert für die Gesamtansicht x beispielsweise die ausgewählten Fischgerichte
- Blatt 3 liefert für die Gesamtansicht x beispielsweise die ausgewählten Desserts
- usw.
=> Blatt x dient quasi als Menüübersicht, welche Gerichte grade verfügbar sind.

Blatt x ist dabei quasi die Blanko-Zusammenfassung der Blätter 1 - 10, das aber nur die Kategorien (Fleisch, Fisch, Desserts) enthält.
D.h. die Kategorien sind bereits vorgehalten, nur leer.
Die Blätter (1-10, x) sind identisch aufgebaut.

Beispiel:
Es steht z.B. in Spalte C in Blatt x "Fleischgerichte", darunter ist es aber leer.
Dort soll der Zeilentransfer hin.

Ziel:
Ich stelle mir vor, dass Blatt 1 durchsucht wird.
Wenn gewünschtes Suchwort ("Fleischgerichte") in C gefunden, dann, wenn C nicht leer (also ein Fleischgericht steht drin), diese Zeile kopieren und unter das selbe Suchwort ("Fleischgerichte") in Blatt x einfügen.
Wichtig: Da in x bereits alle Kategorien als Blanko vorgehalten sind, ist es wichtig, dass die entsprechende Zeile so eingefügt wird, dass die anderen vorgehaltenen Zeilen nach unten verschoben werden.

Aus meinem Kopf umgangssprachlich formulierter Code:
1) Durchsuche Blatt 1 in Spalte C nach "Fleischgerichte".
2) Kopiere alle Zeilen darunter, die nichtleer sind in C
3) Kopiere Zeilen aus 2) unter das selbe Suchwort ("Fleischgerichte") in Blatt x.
Wie beim Copy-Pasten von ganzen Zeilen sollen die eingefügten Zeilen die vorigen "nach unten schieben".

Vielleicht hilft dieser Code als Start?

Sub BedingteKopieZeilen()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long

With Tabelle1
ZeileMax = .UsedRange.Rows.Count
n = 1

For Zeile = 2 To ZeileMax

If .Cells(Zeile, 3).Value = "Ja" Then

.Rows(Zeile).Copy Destination:=Tabelle2.Rows(n)
n = n + 1

End If
Next Zeile
End With
End Sub

Danke vorab für eure Hilfe!
Herzlichen Gruß, Hendrik

Betrifft: AW: Blatt1-Blatt2-Zeilentransfer_Wort=gleich
von: Hendrik
Geschrieben am: 28.10.2020 08:55:26

Oh, PS:
Ganz vergessen: Mit "Punkt" ergänzen meine ich:
Kann man die Zeile

.Rows(Zeile).Copy Destination:=Tabelle2.Rows(n)

vielleicht einfach so ergänzen, dass die Destination unter einem Suchwort (hier "Fleischgerichte") ist?
(Als Idee, falls der Code für mein Ziel schon taugt. Wollte mich nur mit einbringen :) )

Betrifft: AW: Blatt1-Blatt2-Zeilentransfer_Wort=gleich
von: Werner
Geschrieben am: 28.10.2020 09:04:08

Hallo,

wiso hier in deinem Code
If .Cells(Zeile, 3).Value = "Ja" Then

ein "Ja" ?
Ich dachte du suchst nach Fleischgerichte?

Es wäre besser, wenn du eine Beispilemappe mit 3-4 entsprechenden Blättern hier einstellst, aus der dein "Problem" verständlich wird.

Hört sich für mich nach Autofilter per VBA an.

Gruß Werner

Betrifft: AW: Blatt1-Blatt2-Zeilentransfer_Wort=gleich
von: Hendrik
Geschrieben am: 28.10.2020 09:44:57

Hi Werner!


Das stimmt, ich hätte da noch "Fleischgerichte" eintragen können. Da das Wort variiert (Fleischgerichte, Fischgerichte, yyy), dachte ich, ich lasse das "ja" als Platzhalter drin (ich habe den Code so gefunden).


Ich hatte gerade mal eine Datei gebaut, es lässt sich in den Meta-Daten aber leider nicht der Computername löschen; dieser lässt leider direkt Rückschlüsse auf meinen Arbeitgeber und mich zu.
Ginge es eventuell auch ohne?
Gerne beantworte ich alle Fragen :)
Ich versuche mal, Bilder hochzuladen...






PS:
Es wäre toll, wenn es dafür eine VBA-Lösung gäbe :) Ich wollte gerne etwas ohne den Autofilter ausprobieren.

Betrifft: AW: Blatt1-Blatt2-Zeilentransfer_Wort=gleich
von: Werner
Geschrieben am: 28.10.2020 11:38:54

Hallo,

und du erwartest jetzt, dass ich deine Datei nachbaue, um dir helfen zu können?

Gruß Werner

Betrifft: AW: Blatt1-Blatt2-Zeilentransfer_Wort=gleich
von: Hendrik
Geschrieben am: 28.10.2020 12:34:42

Hallo Werner,

offenbar habe ich etwas falsch gemacht und dir auf den Fuß getreten.

Ich fand, ich war sehr freundlich und dass ich meine Idee sehr detailliert geschildert habe, einen Beispielcode angeführt und, zur Verdeutlichung, Screenshots erstellt statt einer Datei, weil ich den Computernamen nicht löschen kann.

Schade, dass du so negativ auf mich reagierst. Ich hatte freundlich nachgehakt, ob das (Meinen Code anpassen/einen erstellen) so auch ginge. In anderen Threads habe ich das so gesehen.


Keine Ahnung, weshalb du so reagierst. Finde es auf jeden Fall schade.

Danke für deine Antworten hier. Ich werde mich woanders um Hilfe umsehen.
Bisschen betrübt bin ich grad, offengestanden.


Alles Gute dir und Gruß, Hendrik

Betrifft: AW: Blatt1-Blatt2-Zeilentransfer_Wort=gleich
von: Werner
Geschrieben am: 28.10.2020 13:20:21

Hallo,

ich wüsste nicht, was an einer ganz normal gestellten Frage negativ wäre.

Was du falsch gemacht hast? Du hast keine Beispielmappe hochgeladen.

Ich pflege Code, den ich hier poste, vorher auch zu testen. Und das geht mit irgendwelchen Bildern eben nun mal nicht. Also müsste ich die Datei nachbauen. Stellt sich nur die Frage, weshalb ich was nachbauen soll, was jemand anderes schon hat.

Wenn du das als negativ empfindest, dann kann ich daran leider auch nichts ändern.

Gruß Werner

Betrifft: Geht hier von vorne los
von: SF
Geschrieben am: 28.10.2020 16:06:40

https://www.vba-forum.de/View.aspx?ziel=62920-Blatt1-Suchwort-A_Darunter-Zeilen-kopieren_Blatt2-Unter-Suchwort-A-einf%C3%BCgen

Betrifft: AW: Geht hier von vorne los
von: Hendrik
Geschrieben am: 29.10.2020 11:32:23

Das verstehe ich nicht.

Ich empfand Werner als unfreundlich und schnippisch ("Und ich soll dir jetzt die Datei bauen oder was?"), nachdem ich gefragt hatte, ob Screenshots auch okay seien anstatt einer Datei, weil man da meinen Arbeitgeber sehen kann.

Also sagte ich, dass ich woanders nach Hilfe suchen werde. Was ich dann auch gemacht habe.



Ist das nicht okay? Habe ich damit gegen Regeln verstoßen?
Wenn ja: Entschuldigung, ich war mir dessen nicht bewusst.
Über eine Belehrung (oder Link zu den Regeln) würde ich mich freuen!

Betrifft: wenn du hier zitierst...
von: Werner
Geschrieben am: 29.10.2020 11:50:07

Hallo,

...dann bitte richtig.

Meine Frage war:
und du erwartest jetzt, dass ich deine Datei nachbaue, um dir helfen zu können?

Wenn du das als "unfreundlich und schnippisch" empfindest, dann kann ich daran auch nichts ändern.

Den Grund für eine Beispielmappe habe ich dir auch mitgeteilt.

Schon mal auf die Idee gekommen am "heimischen Rechner" die Datei zu erstellen und hier hochzuladen?

Gruß Werner

Betrifft: AW: wenn du hier zitierst...
von: Hendrik
Geschrieben am: 29.10.2020 12:09:06

Ja, das ist das korrekte Zitat, was du eingefügt hast.
Bei mir kam das sehr unfreundlich an, zumal ich begründet habe, wieso ich das grade nicht hinkriege, und gefragt, ob Bilder auch okay seien.


Ich bin seit letzter Woche im HomeOffice und habe keinen anderen Rechner als meinen Arbeitsrechner.
Schon mal auf die Idee gekommen, dass Leute, aus welchen Gründen auch immer, keinen "heimischen Rechner" haben? Um mal bei deiner unfreundlichen Art zu bleiben. (jaja, redest dich jetzt wieder raus, war ja alles gar nicht so gemeint.)

Betrifft: um deine Frage zu beantworten....
von: Werner
Geschrieben am: 31.10.2020 08:01:11

Hallo,

...Nein.

Gruß Werner