Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA - Eintrag aus Combobox entfernen





Frage

Hallo @all, um unsere IP-Adressen zu verwalten, habe ich je ein Tabellenblatt "Freie IP" und "vergeben"angelegt. Per Userform und einer Combobox werden die freien IP´s angezeigt . Nach Klick in der Combobox wird die selectierte IP in das Tabellenblatt "Vergeben" kopiert und die vergebene IP aus dem Tabellenblatt "Freie IP" gelöscht. Die vergebene IP wird aber noch in der Combobox angezeigt. Es sei denn, ich schließe die Userform und öffne sie nach jedem Eintrag erneut. Wie kann ich es machen, dass die vergebene IP nicht mehr in der Combobox angezeigt wird (ohne die Userform zu schließen und anschließend wieder zu öffnen) ? Die freien IP´s werden aber nicht in Reihenfolge vergeben. Hoffentlich habe ich mich einigermaßen verständlich ausgedrückt..... MfG brumm

Antwort 1 von JoeKe

Hi brumm,

nach der Durchführung deiner Aktionen setzt der Befehl:
ComboBox1="" deine ComcoBox zurück.
ComboBox1 mus durch den Namen deiner Box ersetzt werden.

MfG

JöKe

Antwort 2 von brumm

Hallo Jöke,

vielen Dank für Deine schnelle Antwort.

Das sichtbare "Fenster" in der Combobox wird zwar geleert, doch der gelöschte Wert bleibt trotzdem in der Combobox erhalten.

Das Tabellenblatt "vergeben" muss wahrscheinlich neu eingelesen werden, damit es nicht mehr in der Combobox erscheint....aber wie?

MfG
brumm

Antwort 3 von JoeKe

Hi brumm,

kanst du eventuell den Code den du zum kopieren und löschen verwendest hier mal posten? Damit läst sich sicherlich leichter entscheiden, wie dir zu helfen ist.


MfG

JöKe

Antwort 4 von brumm

Hi Jöke,

folgender Code:

Private Sub CommandButton1_Click()
´Daten aus Userform in Tabellenblatt "Lager PC" schreiben

Set frm = UserForm1
Sheets("Lager PC").Activate
Range("A65536").End(xlUp).Offset(0, 0).Select ´0,0 = Zeile 2, Spalte1
With frm
ActiveCell.Offset(1, 0).Value = ComboBox1.Value
End With

´Vergebene IP in Spalte "vergeben" schreiben
Sheets("Freie IP").Activate
Range("K65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Offset(0, 0).Value = ComboBox1.Value ´IP

´Vergebene IP in Spalte "Frei" löschen
´Löschen von doppelten IP in 2 verschiedenen Spalten
Dim frei As Range, vergeben As Range
For Each vergeben In [k2:k100]
For Each frei In [e2:e100]
If InStr(1, frei, vergeben) > 0 And vergeben <> "" Then frei.ClearContents
Next frei
Next vergeben

End Sub

Für die Aktivierung der Combobox wird folgender Code benutzt:

Private Sub UserForm_Initialize()
´Daten aus Tabellenblatt "Freie IP" in Combobox einlesen
Dim c As Range

For Each c In Sheets("Freie IP").Range("E3:E100")
ComboBox1.AddItem c

Next c
End Sub

MfG
Hans

Antwort 5 von brumm

Hi @ll,

vielleicht habe ich mich unverständlich ausgedrückt.
Wenn der Wert aus der Tabelle "freie IP" gelöscht ist, wird der Wert noch in der Combobox angezeigt.
Der Code "Combobox1 = "" " entfernt den Wert nur aus dem Anzeigefeld, nicht aber aus der heruntergeklappten Liste in der Combobox.
Meines Erachtens müssen die Werte aus der Tabelle "Freie IP" neu eingelesen werden, um die noch vorhandenen freien IP´s anzuzeigen.

Vielleicht kann mir ja doch jemand helfen....


Mfg
Hans

Antwort 6 von Event

Hallo

Combobox1.clear
UserForm_Initialize()

Gruß

Antwort 7 von Event

Private Sub CommandButton1_Click()
´Daten aus Userform in Tabellenblatt "Lager PC" schreiben

Set frm = UserForm1
Sheets("Lager PC").Activate
Range("A65536").End(xlUp).Offset(0, 0).Select ´0,0 = Zeile 2, Spalte1
With frm
ActiveCell.Offset(1, 0).Value = ComboBox1.Value
End With

´Vergebene IP in Spalte "vergeben" schreiben
Sheets("Freie IP").Activate
Range("K65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Offset(0, 0).Value = ComboBox1.Value ´IP

´Vergebene IP in Spalte "Frei" löschen
´Löschen von doppelten IP in 2 verschiedenen Spalten
Dim frei As Range, vergeben As Range
For Each vergeben In [k2:k100]
For Each frei In [e2:e100]
If InStr(1, frei, vergeben) > 0 And vergeben <> "" Then frei.ClearContents
Next frei
Next vergeben
Combobox1.clear
UserForm_Initialize()
End Sub

Für die Aktivierung der Combobox wird folgender Code benutzt:

Private Sub UserForm_Initialize()
´Daten aus Tabellenblatt "Freie IP" in Combobox einlesen
Dim c As Range

For Each c In Sheets("Freie IP").Range("E3:E100")
ComboBox1.AddItem c

Next c
End Sub

Antwort 8 von Event

einen hab ich noch:

Option Explicit

 Private Sub CommandButton1_Click()
´Daten aus Userform in Tabellenblatt "Lager PC" schreiben
Dim frm
Set frm = UserForm1
Sheets("Lager PC").Activate
Range("A65536").End(xlUp).Offset(0, 0).Select
´0,0 = Zeile 2, Spalte1
With frm
ActiveCell.Offset(1, 0).Value = ComboBox1.Value
End With

´Vergebene IP in Spalte "vergeben" schreiben
Sheets("Freie IP").Activate
Range("K65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Offset(0, 0).Value = ComboBox1.Value ´IP
 ´Vergebene IP in Spalte "Frei" löschen
´Löschen von doppelten IP in 2 verschiedenen Spalten
Dim frei As Range, vergeben As Range
For Each vergeben In [k2:k100]
For Each frei In [e2:e100]
If InStr(1, frei, vergeben) > 0 And vergeben <> "" Then frei.ClearContents
Next frei
Next vergeben
Application.ScreenUpdating = False
ComboBox1.Clear
Call UserForm_Initialize
Application.ScreenUpdating = True
End Sub
´Für die Aktivierung der Combobox wird folgender Code benutzt:
Private Sub UserForm_Initialize()
´Daten aus Tabellenblatt "Freie IP" in Combobox einlesen
Dim c&
For c = 3 To Sheets("Freie IP").Range("E65535").End(xlUp).Row
If Cells(c, 5).Value > "" Then ComboBox1.AddItem Cells(c, 5).Value
Next c
End Sub


Antwort 9 von brumm

Hallo Event,

vielen Dank für Deine Mühe. Du hast mir sehr geholfen.

Spitze, der letzte Code(8) klappt wunderbar.

@Jöke:
Auch Dir nochmal vielen Dank

MfG
Hans

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: