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

Forumthread: 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

Anzeige

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
Anzeige
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....
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige