Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.06.2025 22:11:12
24.06.2025 21:29:43
24.06.2025 19:48:50
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Userform Inhalte löschen

Userform Inhalte löschen
Jeron
Hallo zusammen,
ich habe mit eurer Hilfe schon ein stattliches Userform erstellen können.
Jetzt sitze ich noch vor einem kleinem Problem.
Ich wähle über eine Combobox Werte aus Spalte A aus, und möchte in Abhängigkeit von der Auswahl
die Eingaben in Spalte B und C gleiche Zeile löschen.
Ich habe folgenden Code:

Option Explicit
Private Sub UserForm_Activate()
Dim LoI As Long
With Worksheets("Promotionbelegung")
For LoI = 8 To 56
If .Cells(LoI, 3)  "" Then ComboBox1.AddItem .Cells(LoI, 1)
Next LoI
End With
' Dieser Code spielt mir nur Werte in meine Combobox, wenn in Spalte C ein Inhalt zu finden ist. _
End Sub

Private Sub CommandButton1_Click()
Call UserForm_Activate
'hiermit sollen die Inhalte in Spalte 2 und 3 in der Zeile, die mit der Combobox1
'ausgesucht wurde gelöscht werden
Sheets("Promotionbelegung").Cells(ComboBox1.ListIndex + 8, 2).ClearContents
Sheets("Promotionbelegung").Cells(ComboBox1.ListIndex + 8, 3).ClearContents
End
End Sub

Es löscht nur leider nicht die Werte.
Für einen kleinen Tip wäre ich euch sehr dankbar..
Viele Grüße,
Jeron
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Userform Inhalte löschen
04.09.2009 01:17:50
Peter
Hallo Jeron,
1. Im Klassenmodul des Tabellenblatts
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
2. Im Klassenmodul der Userform1
Private Sub UserForm_Activate()
Dim LoI As Long
With Worksheets("Promotionbelegung")
For LoI = 8 To 56
If .Cells(LoI, 3)  "" Then ComboBox1.AddItem .Cells(LoI, 1)
Next LoI
End With
' Dieser Code spielt mir nur Werte in meine Combobox, wenn in Spalte C ein Inhalt zu finden ist. _
_
End Sub

Private Sub CommandButton1_Click()
'hiermit sollen die Inhalte in Spalte 2 und 3 in der Zeile, die mit der Combobox1
'ausgesucht wurde gelöscht werden
Sheets("Promotionbelegung").Cells(ComboBox1.ListIndex + 8, 2).ClearContents
Sheets("Promotionbelegung").Cells(ComboBox1.ListIndex + 8, 3).ClearContents
End Sub
Ist in der Beispieldatei getestet..
https://www.herber.de/bbs/user/64203.xls
Gruß
Peter
Anzeige
AW: Userform Inhalte löschen
04.09.2009 04:34:59
fcs
Hallo Jeron und Peter,
durch das überspringen von Leerzeilen in Spalte C beim einlesen haben der ListIndex der Elemente in der Combobox und die Zeilennummern in der Tabelle nicht mehr den konstanten Abstand von 8.
Damit es funktioniert, muss du beim Generieren der Comboboxdaten neben dem Text aus der Spalte 1A (1) auch die zugehörige Zeilennummer der in der Tabelle einlesen. Dazu muss du die Cobobox 2-spaltig machen. In die 1. Spalte wird der Wert aus Spalte A eingelesen und in die 2. die Zeilen.
In der Löschprozedur kannst du dann über den ListIndex des Ausgewählten elements auf die Zeilennummer zugreifen.
Gruß
Franz
Private Sub UserForm_Activate()
Dim LoI As Long
With Me.ComboBox1
.ColumnCount = 2
.ColumnWidths = "40pt;0Pt" 'dadurch werden die eingelesenen Zeilennummern nicht _
angezeigt
End With
With Worksheets("Promotionbelegung")
For LoI = 8 To 56
If .Cells(LoI, 3)  "" Then
Me.ComboBox1.AddItem .Cells(LoI, 1)
Me.ComboBox1.List(Me.ComboBox1.ListCount - 1, 1) = LoI
End If
Next LoI
End With
' Dieser Code spielt mir nur Werte in meine Combobox, wenn in Spalte C ein Inhalt zu finden ist. _
_
End Sub
Private Sub CommandButton1_Click()
Call UserForm_Activate
'hiermit sollen die Inhalte in Spalte 2 und 3 in der Zeile, die mit der Combobox1
'ausgesucht wurde gelöscht werden
With ComboBox1
Sheets("Promotionbelegung").Cells(.List(.ListIndex, 1), 2).ClearContents
Sheets("Promotionbelegung").Cells(.List(.ListIndex, 1), 3).ClearContents
End With
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Userform Inhalte in Excel löschen


Schritt-für-Schritt-Anleitung

Um die Inhalte in Spalte B und C einer Excel-Userform zu löschen, folge diesen Schritten:

  1. Öffne das Visual Basic for Applications (VBA) Fenster:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Kopiere den folgenden Code in das Klassenmodul Deiner Userform:

    Option Explicit
    
    Private Sub UserForm_Activate()
       Dim LoI As Long
       With Worksheets("Promotionbelegung")
           For LoI = 8 To 56
               If .Cells(LoI, 3) <> "" Then ComboBox1.AddItem .Cells(LoI, 1)
           Next LoI
       End With
    End Sub
    
    Private Sub CommandButton1_Click()
       With ComboBox1
           Sheets("Promotionbelegung").Cells(.List(.ListIndex, 1), 2).ClearContents
           Sheets("Promotionbelegung").Cells(.List(.ListIndex, 1), 3).ClearContents
       End With
    End Sub
  3. Füge die Zeilennummern in die Combobox ein:

    • Stelle sicher, dass die Combobox so konfiguriert ist, dass sie die Zeilennummern aus Spalte A und C korrekt anzeigt.
  4. Schließe das VBA-Fenster und teste Deine Userform.


Häufige Fehler und Lösungen

  • Problem: Es werden keine Werte gelöscht.

    • Lösung: Überprüfe, ob die Indizes in der Combobox korrekt sind. Der ListIndex der Combobox muss mit der Zeilennummer in der Tabelle übereinstimmen.
  • Problem: Die Combobox zeigt keine Werte an.

    • Lösung: Stelle sicher, dass in Spalte C keine Leerzeilen sind, da diese das Einlesen der Werte beeinflussen können.

Alternative Methoden

Eine alternative Methode zur Löschung von Inhalten besteht darin, die Zeilennummer direkt zu verwenden, anstatt den ListIndex der Combobox. Hier ist ein Beispiel:

Private Sub CommandButton1_Click()
    Dim Zeilennummer As Long
    Zeilennummer = InputBox("Bitte Zeilennummer eingeben:")
    Sheets("Promotionbelegung").Cells(Zeilennummer, 2).ClearContents
    Sheets("Promotionbelegung").Cells(Zeilennummer, 3).ClearContents
End Sub

Praktische Beispiele

Angenommen, Du hast eine Combobox, die folgende Werte anzeigt:

  • Wert1
  • Wert2
  • Wert3

Wenn Du "Wert2" auswählst und auf den Button klickst, wird der Inhalt in Spalte B und C der entsprechenden Zeile gelöscht.


Tipps für Profis

  • Zwei-Spalten-Combobox: Um sicherzustellen, dass Du auf die richtige Zeilennummer zugreifen kannst, setze die Combobox auf zwei Spalten. Dies ermöglicht es, die Werte und die Zeilennummern gleichzeitig zu speichern, ohne dass diese anzeigt werden.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass der Benutzer eine gültige Auswahl trifft, bevor die Löschoperation ausgeführt wird.

    If ComboBox1.ListIndex = -1 Then
      MsgBox "Bitte wähle einen Wert aus der Liste."
      Exit Sub
    End If

FAQ: Häufige Fragen

1. Wie kann ich die Userform ohne Makros öffnen? Du kannst die Userform über ein Button im Arbeitsblatt öffnen, indem Du den entsprechenden Code im Klassenmodul des Arbeitsblattes platzierst.

2. Funktioniert das auch in Excel Online? Leider unterstützen Excel Online keine Userforms und VBA. Diese Funktionen sind nur in der Desktop-Version von Excel 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