Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makros zusammenfassen

Forumthread: Makros zusammenfassen

Makros zusammenfassen
14.12.2016 11:42:16
Marv
Hallo Zusammen,
mein Makro löscht Zellen mit bestimmten Inhalt:
Sub Zellen_loeschen()
LoescheZellen Range("D:D"), "ID"
End Sub

Private Sub LoescheZellen(ByVal rngSource As Range, ByVal strText As String)
Dim rngCell As Range
For Each rngCell In rngSource
If InStr(1, rngCell.Value, strText, vbTextCompare) = 1 Then
If InStr(1, rngCell.Value, "nicht gefunden", vbTextCompare) = 0 Then
rngCell.ClearContents
End If
End If
Next
End Sub

Jetzt sollen aber mehrere Inhalte geprüft werden z.B. "Jobnummer""nicht gefunden". So wie es jetzt geschrieben ist, müsste ich für jeden Inhalt ein eigenes Makro starten.
Wie kann ich den Code umschreiben, sodass ich mehrere Inhaltsprüfungen in einem Makro habe?
Danke euch
Grüße
Marvin
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros zusammenfassen
14.12.2016 11:55:19
Daniel
Hi
beispielsweise so:
Private Sub LoescheZellen(ByVal rngSource As Range, ParamArray arrTexte())
Dim rngCell As Range
Dim txt
For Each rngCell In rngSource
For Each txt In arrTexte
If InStr(1, rngCell.Value, txt, vbTextCompare) = 1 Then
If InStr(1, rngCell.Value, "nicht gefunden", vbTextCompare) = 0 Then
rngCell.ClearContents
End If
End If
Next
Next
End Sub
das ParamArray als Parameter ist ein eindimensionales Array, welches alle Eingegebenen Parameter enthält.
Dh du kannst beim Funktionsaufruf eine beliebige Anzahl von Werten eingeben, diese werden dann alle in diesem Array zusammengefasst und du kannst sie in einer Schleife abarbeiten.
der Aufruf erfolgt dann so:
LoescheZellen Range("D:D"), "ID", "ABD, "DEF", "GHI"
Gruß Daniel
Anzeige
AW: Makros zusammenfassen
14.12.2016 12:43:03
Marv
HI Daniel,
wie müsste ich denn den Code weiterhin anpassen, wenn ich auch in der Zeile
If InStr(1, rngCell.Value, "nicht gefunden", vbTextCompare) = 0 Then
statt "nicht gefunden" auch andere Inhalte prüfen will wie "nicht erfasst".
Diese müssten dann aber auch so prüfen, dass die Inhalte
LoescheZellen Range("D:D"), "ID", "ABD, "DEF", "GHI"
in Kombination erfasst werden. Heißt, wenn er nach ID guckt, soll er auch nur prüfen ob auch "nicht geprüft" drin steht. Bei "ABD" soll er dann beispielsweise nur auf "nicht erfasst" prüfen.
Danke dir!!!
Grüße
Marv
Anzeige
AW: Makros zusammenfassen
14.12.2016 13:24:32
Daniel
Hi
gib die Parameteter immer paarweise an:
LoescheZellen Range("D:D"), "ID",  "nicht geprüft", "ABC", "nicht erfasst"
Im Makro dann läufst du mit einer Index-Schleife über das ParamArray und verwendest den Step 2
For i = LBound(arrTexte) To UBbound(arrTexte) Step 2
den ersten Begriff ("ID", "ABC") sprichst du dann mit arrTexte(i) an
den zweiten Begriff("nicht vorhanden", "nicht erfasst") mit arrTexte(i + 1)
Gruß Daniel
Anzeige
AW: Makros zusammenfassen
14.12.2016 14:04:04
Marv
Hi Daniel,
super vielen Dank für die schnelle Rückmeldung.
Irgendwie klappt das aber bei mir noch nicht mit der Schleife. Die erste Kombi wird noch gelöscht und dann bleibt er aber hängen.
Sub Zellen_loeschen()
LoescheZellen Range("D:D"), "ID", "nicht geprüft", "Job", "nicht erfasst"
End Sub
Private Sub LoescheZellen(ByVal rngSource As Range, ParamArray arrTexte())
Dim rngCell As Range
Dim txt
For Each rngCell In rngSource
For Each txt In arrTexte
For i = LBound(arrTexte) To UBound(arrTexte) Step 2
If InStr(1, rngCell.Value, txt, vbTextCompare) = 1 Then
If InStr(1, rngCell.Value, arrTexte(i), vbTextCompare) = 0 Then
rngCell.ClearContents
End If
End If
Next
Next
Next
End Sub

Anzeige
AW: Makros zusammenfassen
14.12.2016 14:11:40
Daniel
Hi
die Schleife For Each txt in arrTexte entfällt.
sie wird durch das For i = LBound(arrTexte) to Ubound(arrTexte) Step 2 ersetzt.
Die Variiable txt entfällt ebenfalls, stattdessen musst du arrTexte(i) bzw arrTexte(i + 1) verwenden, je nach dem ob du den ersten oder zweiten Text haben willst
Gruß Daniel
Anzeige
AW: Makros zusammenfassen
14.12.2016 14:34:47
Marv
Alles klar soweit.
Aber dann müsste ich ja trotzdem nach jedem Durchlauf nochmal in den VBA Code und diesen anpassen ("i" oder "i+1)... Dann habe ich ja gar keinen Vorteil gegenüber der Anlage von zwei Makros...
Kann ich das irgendwie einbauen, dass er automatisch die verschieden Kombis durchgeht? Da sicherlich noch weitere hinzukommen werden.
Super vielen Dank nochmal.
Grüße
Marv
Anzeige
AW: Makros zusammenfassen
14.12.2016 14:39:46
Daniel
HI
naja, es wird sich sicherlich eine Lösung finden lassen.
dazu müsstest du aber mal konkret und vollständig beschreiben, was du haben willst.
wenn du nur Stückweise die Informationen darüber preis gibst, was du eigentlich haben willst, dann wird es schwierig, für dich eine passende Lösung zu erstellen.
Ich bin jedenfalls erstmal aus dem Thema raus.
Gruß Daniel
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