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

Forumthread: For Schleife Spalte auf bestimmten Inhalt prüfen

For Schleife Spalte auf bestimmten Inhalt prüfen
Jeron
Hallo zusammen,
ich habe ein scheinbar sehr einfaches Problem:
Ich suche über ein Userform in Combobox1 einen Wert aus.
Dann möchte ich über einen Commandbutton, dass der Wert im Tabellenblatt "Couponbelegung" Spalte a
gesucht wird und wenn er gefunden wird, soll in der gleichen Zeile die Werte aus Spalte B und C löschen.
Ich habe folgenden Code:
Private Sub CommandButton1_Click()
Dim LoZeile As Long
With Worksheets("Couponbelegung")
For LoZeile = 8 To 52
If LoZeile = ComboBox1.Value Then
Cells(LoZeile, 2).ClearContents
Cells(LoZeile, 3).ClearContents
End If
Next LoZeile
End With
End
End Sub

Nur leider funktioniert der Code nicht.
Weiß jemand von euch warum?
Über eine Antwort würde ich mch sehr freuen.
Viele Grüße,
Jeron
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: For Schleife Spalte auf bestimmten Inhalt prüfen
17.09.2009 18:10:07
Hajo_Zi
Hallo Jeron,
was mir sofort auffällt vor Cells fehlt .
If Lozeile ist keine Zelle, wolltest Du nicht den Inhalt der Combobox mit einer Zelle vergleichen?

AW: For Schleife Spalte auf bestimmten Inhalt prüfen
17.09.2009 18:20:29
Jeron
Hallo Hajo,
vielen Dank für deine schnelle Antwort und dein wachsames Auge.
Ich habe jetzt Punkte vor Cells gesetzt.
Ja ich möchte den Inhalt der Zellen von Zeile 8 bis 52 mit dem Inhalt in ComboBox1 vergleichen.
Wenn eine Übereinstimmung vorhanden ist, dann sollen die Inhalte aus Spalte 2 und 3 gelöscht werden.
Wie kann ich mich denn dann auf die Zellen beziehen? Mit den hinzugefügten Punkten funktioniert es noch nicht.
Beste Grüße,
Jeron
Anzeige
AW: For Schleife Spalte auf bestimmten Inhalt prüfen
17.09.2009 18:24:33
Hajo_Zi
Hallo Jeron,
Du hast nicht geschrieben welche Spalte
If .cells(LoZeile, ?)
Gruß Hajo
AW: For Schleife Spalte auf bestimmten Inhalt prüfen
17.09.2009 18:33:45
Jeron
Hallo Hajo,
du bist der Beste!! Jetzt funktioniert es einwandfrei.
Danke, dass du dich immer wieder meinen banalen Fragen widmest.
Beste Grüße,
Jeron
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

For Schleife zur Überprüfung von Werten in Excel VBA


Schritt-für-Schritt-Anleitung

In diesem Abschnitt zeigen wir dir, wie du eine For Schleife in Excel VBA verwendest, um einen bestimmten Wert in einer Spalte zu überprüfen und gegebenenfalls Inhalte in anderen Spalten zu löschen.

  1. Öffne dein Excel-Dokument und erstelle ein Userform mit einer ComboBox (ComboBox1) und einem CommandButton.

  2. Füge den folgenden VBA-Code in das Codefenster des Userforms ein:

    Private Sub CommandButton1_Click()
       Dim LoZeile As Long
       With Worksheets("Couponbelegung")
           For LoZeile = 8 To 52
               If .Cells(LoZeile, 1).Value = ComboBox1.Value Then
                   .Cells(LoZeile, 2).ClearContents
                   .Cells(LoZeile, 3).ClearContents
               End If
           Next LoZeile
       End With
    End Sub
  3. Ersetze 1 in .Cells(LoZeile, 1) durch die Spalte, in der du den Wert suchen möchtest (Spalte A in diesem Beispiel).

  4. Führe das Userform aus und teste die Funktionalität.


Häufige Fehler und Lösungen

  • Fehler: "Der Code funktioniert nicht."
    Lösung: Stelle sicher, dass du die Punkte vor Cells gesetzt hast: If .Cells(LoZeile, 1).Value = ComboBox1.Value Then.

  • Fehler: "Kein Wert gefunden."
    Lösung: Überprüfe, ob die Werte in der ComboBox und in der Spalte A übereinstimmen. Achte auf Groß- und Kleinschreibung.

  • Fehler: "Das Userform öffnet sich nicht."
    Lösung: Stelle sicher, dass du das Userform korrekt aufrufst, z.B. durch ein Makro oder über das Menü.


Alternative Methoden

Falls du eine andere Methode zur Überprüfung von Werten in Excel VBA bevorzugst, kannst du die Find-Methode verwenden:

Dim rng As Range
Set rng = Worksheets("Couponbelegung").Columns(1).Find(ComboBox1.Value)

If Not rng Is Nothing Then
    rng.Offset(0, 1).ClearContents ' Löscht Spalte B
    rng.Offset(0, 2).ClearContents ' Löscht Spalte C
End If

Diese Methode kann effizienter sein, besonders bei großen Datensätzen.


Praktische Beispiele

Hier sind einige Beispiele, wie du die For Schleife oder die Find-Methode nutzen kannst:

  1. Füllmenge überwachen:
    Verwende diese Schleife, um die Füllmenge in einer Spalte zu überprüfen und bei Überschreitung einen bestimmten Wert zu löschen.

    If .Cells(LoZeile, 1).Value > 100 Then
       .Cells(LoZeile, 2).ClearContents
    End If
  2. Mehrere Werte gleichzeitig prüfen:
    Du kannst auch mehrere Werte in der ComboBox speichern und eine Schleife verwenden, um alle zu überprüfen.


Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang deines Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert werden.

  • Fehlerbehandlung: Implementiere eine einfache Fehlerbehandlung mit On Error Resume Next, um unerwartete Fehler zu vermeiden.

  • Verwende Debug.Print: Nutze Debug.Print, um Variablenwerte während der Ausführung zu überwachen. Das hilft dir, Probleme schneller zu identifizieren.


FAQ: Häufige Fragen

1. Warum funktioniert die Schleife nicht wie erwartet?
Überprüfe, ob die Werte in der ComboBox und in der Zielspalte tatsächlich übereinstimmen. Achte auf die korrekte Verwendung von .Cells.

2. Kann ich die Schleife anpassen, um mehr als zwei Spalten zu löschen?
Ja, du kannst einfach weitere .ClearContents-Befehle hinzufügen, um weitere Spalten nach Bedarf zu leeren.

3. Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten modernen Excel-Versionen, wie Excel 2010, 2013, 2016, 2019 und Microsoft 365, verfügbar.

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