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

VBA Suchen-Wenn gefunden-Dann

Forumthread: VBA Suchen-Wenn gefunden-Dann

VBA Suchen-Wenn gefunden-Dann
02.11.2018 18:36:03
Michael
Kleine Tüftelei für Könner
Leider habe ich arge Probleme, mit dem erstellen von Wennschleifen in VBA, eine reine Excel Formel würde ich ja noch hinbekommen, aber in VBA scheitere ich.
Nun zu meinem Problem:
Jedesmal wenn in Spalte G das Wort "Seite" gefunden wird soll in dem Feld daneben, in Spalte H, ein fortlauferder Zähler eingefügt werden (einfache Zahl). Beginnend bei 1 und bei jedem weiteren auffinden +1. So das eine fortlaufende Zahlenfolge entsteht. Seite 1,Seite 2,Seite 3,Seite 4,Seite 5,Seite 6,.... Wie oft das Wort "Seite" vorkommt, kann nicht vorhergesagt werden. Ich kann nicht mit Benutzerdefinierter Kopf u/o Fußzeile arbeiten, da die Seitenzahlangabe nicht in der Kopf/Fußzeile steht.
Eine Beispielmappe erspare ich mir. Jeder wird 3-5 mal das Wort "Seite" in eine leere Spalte schreiben können, um einen Code zu testen.
Vielen Dank für eure Hilfe
VG Michael
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Suchen-Wenn gefunden-Dann
02.11.2018 18:42:14
onur

Dim z,i
For z=1 to 1000 'ggf ändern
if cells(z,7)="Seite" then
i=i+1
cells(z,8)=i
end if
next z

AW: VBA Suchen-Wenn gefunden-Dann
02.11.2018 18:49:15
Hajo_Zi
Hallo Michael,
ich hätte es mit Formeln gelöst.

Tabelle1
 GH
1  
2  
3Seite1
4die Seite2
5  
6Seite nach3
7  
8Seite4
9  
10Seite5
11Seite6

verwendete Formeln
Zelle Formel Bereich N/A
H2:H11=WENN(ISTZAHL(SUCHEN("Seite";G2));MAX($H$1:H1)+1;"")  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 25.14 einschl. 64 Bit



Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
Vielen Dank
02.11.2018 19:27:33
Michael
Hallo onur, Hallo Hajo
Vielen Dank für eure schnellen Antworten. Es ist super wie gut einem hier geholfen wird.
Habe mich für den VBA Code entschieden. Die Tabelle, in der der Suchbegriff vorkommt, wird von anderem VBA Code gefüllt, bzw. wieder geleert. Die Formeln würden also entweder überschrieben oder gelöscht werden. Habe die Formel aber in meine Formelsammlung, als Beispiel übernommen.
Vielen Dank euch Beiden
Gruß
Michael
Anzeige
;
Anzeige

Infobox / Tutorial

VBA: Zähler bei "Seite" in Excel erstellen


Schritt-für-Schritt-Anleitung

Um einen Zähler in Excel zu erstellen, der bei jedem Vorkommen des Wortes „Seite“ in Spalte G einen fortlaufenden Wert in Spalte H einfügt, kannst du den folgenden VBA-Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf Einfügen und wähle Modul.

  3. Füge den folgenden Code in das Modul ein:

    Dim z As Long, i As Long
    For z = 1 To 1000 'Wähle den Bereich, den du durchsuchen möchtest
       If Cells(z, 7).Value = "Seite" Then
           i = i + 1
           Cells(z, 8).Value = i
       End If
    Next z
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Um den Code auszuführen, drücke ALT + F8, wähle das Makro aus und klicke auf Ausführen.

Das Skript zählt, wie oft das Wort „Seite“ in Spalte G vorkommt, und fügt die fortlaufenden Zahlen in die benachbarte Spalte H ein.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Anwendung oder Objekt definiert."

    • Lösung: Stelle sicher, dass du den richtigen Bereich in der For-Schleife angibst. Überprüfe, ob die Spalte G tatsächlich Daten enthält.
  • Fehler: "Makro funktioniert nicht."

    • Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu den Excel-Optionen und aktiviere Makros unter den Sicherheitseinstellungen.

Alternative Methoden

Wenn du lieber mit Formeln arbeiten möchtest, kannst du die folgende Formel in Spalte H verwenden:

  1. Klicke auf die Zelle H2 und füge die folgende Formel ein:

    =WENN(ISTZAHL(SUCHEN("Seite";G2));MAX($H$1:H1)+1;"")
  2. Ziehe die Formel nach unten für die restlichen Zellen in Spalte H.

Diese Methode erfordert keine VBA-Programmierung, hat jedoch den Nachteil, dass sie überschrieben wird, wenn die Daten in Spalte G geändert werden.


Praktische Beispiele

Hier ist ein einfaches Beispiel:

G H
Seite 1
die Seite 2
Seite nach 3
Seite 4

In diesem Beispiel wird bei jedem Auftreten des Wortes „Seite“ in Spalte G eine fortlaufende Zahl in Spalte H angezeigt.


Tipps für Profis

  • Überlege, die For-Schleife zu optimieren, indem du die maximale Zeilenanzahl dynamisch anpasst, z. B. durch die Verwendung von Cells(Rows.Count, 7).End(xlUp).Row, um die letzte gefüllte Zeile zu finden.
  • Experimentiere mit anderen Suchbegriffen, um die Flexibilität deines Codes zu erhöhen.

FAQ: Häufige Fragen

1. Kann ich den Code für andere Suchbegriffe verwenden? Ja, du kannst das Wort „Seite“ im Code durch jedes andere Wort ersetzen, das du suchen möchtest.

2. Funktioniert das auch in Excel Online? Nein, VBA-Code funktioniert nur in Desktop-Versionen von Excel. In Excel Online kannst du stattdessen Formeln verwenden.

3. Wie kann ich den Bereich anpassen, den der Code durchsuchen soll? Ändere einfach die Zahlen in For z = 1 To 1000 auf den gewünschten Bereich.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige