Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ComboBox1 und 2 - Listeintrag variabel

ComboBox1 und 2 - Listeintrag variabel
13.01.2021 13:41:25
Herbi
Servus,
für eine Lösch-Abfrage benötige ich eure Hilfe.
In der CBox1 werden die Namen gelistet und in der CBox2 die Monate.
Wie kann ich dies per Schleife besser machen?
Danke für die Hilfe!

Private Sub cmd_Delete_Click()
Select Case ComboBox1.Value
Case "Name1"
If Me.ComboBox1.Value = Cells(5, 1) And ComboBox2.Text = "Januar" Then
Range("H5:GG5").Select
Worksheets("1. Halbjahr").Range("H5:GG5").Clear
Sheets("1. Halbjahr").Range("H5").Select
End IF
Case "Name2"
Cells(6, 1).Select
Case "Name3"
Cells(7, 1).Select
Case "Name4"
Cells(8, 1).Select
Case "Name5"
Cells(9, 1).Select
Case "Name6"
Cells(10, 1).Select
End Select
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox1 und 2 - Listeintrag variabel
13.01.2021 13:57:03
ralf_b
dazu wäre ne Beispieldatei sehr hilfreich.
und wozu benötigst du dieses select?
AW: ComboBox1 und 2 - Listeintrag variabel
13.01.2021 14:51:03
Herbi
Hallo ralf_b,
in einem Tabellenblatt, Kalender, stehen in Spalte A5:A35 Namen.
Im Bereich H5:GG5 steht ein Wert für Namen1.
Dieser Wert soll in dem Bereich gelöscht werden, wenn der Name ausgewählt ist und der Monat ausgewählt ist.
Ich wollte mit selected.item den Wert auslesen. Soweit mir bekannt ist, gibt es kein "selected.item" in Excel bei VBA, oder?
Die weiteren Einträge wollte ich genauso aufbauen wie Case Name1, der Aufruf funktioniert ja.
Ich will nur wissen ob es einen besseren Weg gibt und einen kürzeren.
Anzeige
AW: ComboBox1 und 2 - Listeintrag variabel
13.01.2021 16:15:33
ralf_b
wenn du den ausgewählten Listenwert haben möchtest ,dann geht dies mit listbox.list(listbox.listindex).
Je nachdem reicht auch nur Listbox. da Das Objekt den Wert als Standartrückgabewert hat.
wenn du nur den Index des Eintrages haben möchtest, Listbox.listindex
bessere Wege und Kürzere gibt es bestimmt. Aber dazu sollte man schon genau wissen warum, wieso, wozu usw. Manchmal ist der angedachte Workflow, mangels Kenntnissen, nicht optimal.
AW: ComboBox1 und 2 - Listeintrag variabel
13.01.2021 17:47:14
Herbi
Hallo Ralf,
anbei die Datei.
Nochmal folgendes Szenario: Wenn ich auf die Schaltfläche "Löschen" klicke, soll mir der Bereich mit den grün unterlegten Zellen und dem Wert X, gelöscht werden. Dies klappt mit diesem Code für einen Namen:
If Me.ComboBox1.Value = Cells(5, 1) And ComboBox2.Text = "Januar" Then
Range("H5:GG5").Select
Worksheets("1. Halbjahr").Range("H5:GG5").Clear
Sheets("1. Halbjahr").Range("H5").Select
End If
Meine Vorstellung aber ist, dass die Auswahl flexibel ist. Wenn ich also einen anderen Namen auswähle und ein anderes Monat, so sollen die Zellen dieses Bereiches geleert werden.
Auswahl Name1 und Monat Janaur, leere Bereich von bis.
Auswahl Name2 und Monat Mai, leere Bereich von bis.
Ich hoffe du weißt was ich meine. ;-)
anbei die Datei: https://www.herber.de/bbs/user/142983.xlsm
Anzeige
AW: ComboBox1 und 2 - Listeintrag variabel
13.01.2021 20:36:12
ralf_b
der code zum Löschen ist in der userform5.
Ich habe diese mit in den Workflow eingebunden.
Zusätzlich habe ich eine Mitarbeiteliste mit Nachname, Vorname im Blatt Konfig erzeugt, um damit die combobox1 zu füllen. Der Bereich erhielt einen Namen
https://www.herber.de/bbs/user/142989.xlsm
gruß
rb
AW: ComboBox1 und 2 - Listeintrag variabel
13.01.2021 21:44:56
Herbi
Hallo Ralf,
vielen Dank für die Lösung.
Leider funktioniert diese noch nicht richtig.
Beim Ausführen kommt eine Fehler geworfen in der Zeile:

'datum suchen
arrtmp = WorksheetFunction.Transpose(ws.Range("H3:GG3"))
For i = LBound(arrtmp) To UBound(arrtmp)
If CDate(arrtmp(i, 1)) = dat Then
'bereich leeren, offset(,7) = spaltenversatz von A nach H
ws.Cells(rngFundZ.Row, i).Offset(, 7).Resize(, anztage).Clear
Unload Me
End If
Next i

Anzeige
AW: ComboBox1 und 2 - Listeintrag variabel
13.01.2021 22:42:15
ralf_b
leider ist deine Zeile für die Datumswerte mit Zellen unterbrochen, die Leerzeichen enthalten.
ich habe eine Prüfung auf Zahl implementiert. Ich hoffe das dies nun ausreicht.
ersetze die for schleife
 For i = LBound(arrtmp) To UBound(arrtmp)
If IsNumeric(arrtmp(i, 1)) Then
If CDate(arrtmp(i, 1)) = dat Then
'bereich leeren, offset(,7) = spaltenversatz von A nach H
ws.Cells(rngFundZ.Row, i).Offset(, 7).Resize(, anztage).Clear
Unload Me
End If
End If
Next i
gruß
rb
AW: ComboBox1 und 2 - Listeintrag variabel
13.01.2021 23:35:28
Herbi
Hallo rb,
Vielen herzlichen Dank, läuft.
Wieder etwas gelernt.
herbi
Anzeige
gern, danke für die rückmeldung owt
14.01.2021 00:33:07
ralf_b

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige