Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA wenn Bedingung erfüllt 2 Zeilen und Text einfügen

VBA wenn Bedingung erfüllt 2 Zeilen und Text einfügen
02.08.2023 10:15:44
mb12
Hallo VBA'ler,

ich erstelle wöchentlich aus einer .pdf-Speisekarte eine Bestellliste für externe Kollegen.

Ich bekomme es nur hin, EINE Zeile ab der übernächsten Zeile einzufügen, es müssten aber 2 sein (1. Gericht, 2. Preis):

.
.
Range("A1:A100").Replace "Pizza", "Pizza Schinken"
.
.
For k = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(k, 1) = "Pizza Schinken" Then Cells(k + 2, 1).EntireRow.Insert
Next k
.

Noch komfortabler wäre, wenn außerdem in den beiden neuen Zeilen Spalte A "Pizza Salami" und darunter der gleiche Preis wie oben stehen würde.

Kleines Beispiel in der beigefügten Datei.

https://www.herber.de/bbs/user/162137.xlsx

Vielen Dank im Voraus,

Margarete

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA wenn Bedingung erfüllt 2 Zeilen und Text einfügen
02.08.2023 10:27:01
onur
For k = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1

If Cells(k, 1) = "Pizza Schinken" Then Cells(k + 2, 1).EntireRow.Insert : Cells(k + 2, 1).EntireRow.Insert
Next k
VBA wenn Bedingung erfüllt 2 Zeilen und Text einfügen
02.08.2023 10:33:28
mb12
wieder was dazugelernt - hab vielen Dank

LG, Margarete
Gerne !
02.08.2023 10:34:16
onur
Gerne !
02.08.2023 12:03:31
mb12
Jetzt habe ich den Rest selbst hinbekommen, aber vermutlich mit k2 UND k3 etwas umständlich:

For k = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(k, 1) Like "Pizza Schinken" Then Cells(k + 2, 1).EntireRow.Insert: Cells(k + 2, 1).EntireRow.Insert
Next k

For k2 = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(k2, 1) = "Pizza Schinken" Then Cells(k2 + 2, 1) = "Pizza Salami"
Next k2

For k3 = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(k3, 1) = "Pizza Schinken" Then Cells(k3 + 3, 1) = "3,35 €"
Next k3

Frage für die Zukunft: Geht sowas auch kürzer?

Gruß, Margarete
Anzeige
AW: Gerne !
02.08.2023 12:09:04
onur
For k = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1

If Cells(k, 1) = "Pizza Schinken" Then Cells(k + 2, 1) = "Pizza Salami": Cells(k + 3, 1) = "3,35 €"
Next k


Das sind keine Einwegvariablen - du kannst sie doch immer wieder verwenden....
Danke sehr!
03.08.2023 15:19:40
mb12
Hi Onur, ich hatte es zwar vermutet, war mir aber nicht sicher. Mein VBA ist reines "learning by doing"...

LG; Margarete

433 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige