Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1824to1828
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

ComboBox Eintrag ändern

ComboBox Eintrag ändern
21.04.2021 14:15:30
Jörn
Hallo
Ich habe ein Problem mit der änderung eines namens inerhalb einer Combo Box Liste.
In meiner Userform habe ich eine ComboBox9 erzeugt und sie via:

Private Sub Userform_Initialize()
ComboBox9RowSource = "=rng_Vorlagen_Wartungen_Liste"
End Sub
mit Daten aus einerm Tabellenblatt namens "Speicher" gefüllt.
Die Einträge liegen dort in Zelle A2 bis A101, die dazugehörigen Textvorlagen in Zelle B2 bis B101.
Das Anzeigen und auswählen klappt wunderbar, man kann zB. eine Text vorlage aus B2 bis B101 bezogen aus der Liste A2 bis A101 auswählen und diese dann auch speichern und sogar ändern.
Als Speicher Button benutze ich einen CommandButton4_Click: Ereignis
Also

Private Sub CommandButton4_Click
End Sub
Innerhalb dieser Routine habe ich mir nun gedacht den aktuellen geänderten Inhalt der ComboBox4 in einer Variable zu speichern. Was auch funktioniert...
Dann wollte ich diesen Wert in das Tabellenblatt "Speicher" Reihe A Speichern, denn aus dieser Reihe holt sich die Combo Box auch ihre werte.
Bsp.
Ich möchte den ComboBox.value Wert für den zweiten Eintrag ändern, so liegt dieser ja bei mir in Reihe A Zeile Nummer 3,
Also Schreibe ich über Worksheets ("Speicher").Range("$A$3").value = ComboBox9.Value den Inhalt der Box in die betreffende Zelle. Das macht er aber nicht!!!!
In alle anderen Zellen die ich deklariere tut er das ohne Probleme?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox Eintrag ändern
21.04.2021 14:58:29
Jörn

Private Sub UserForm_Initialize()
'Combo Boxen Listen Zuweisen'
ComboBox1.RowSource = "=rng_Kunden_Liste"
ComboBox2.RowSource = "=rng_Mitarbeiter_Liste"
ComboBox3.RowSource = "=rng_Mitarbeiter_Liste"
ComboBox4.RowSource = "=rng_Mitarbeiter_Liste"
ComboBox5.RowSource = "='Rohdaten1'!$O$2:$O$3"
ComboBox6.RowSource = "=rng_Einsatzgrund_Liste"
ComboBox7.RowSource = "=rng_Einsatzgrund_Liste"
ComboBox8.RowSource = "=rng_Einsatzgrund_Liste"
ComboBox9.RowSource = "=rng_Vorlagen_Wartungen_Liste"
'ComboBox9.Text = "Vorlagen für Tätigkeiten"'
'vorhandene Daten aus Excel in die Combo und Text Boxen holen'
ComboBox1.Value = Worksheets("Sander EB").Range("$J$9").Value 'holt alle Werte gleichzeitig
ComboBox2.Value = Worksheets("Sander EB").Range("$Z$9").Value
ComboBox3.Value = Worksheets("Sander EB").Range("$Z$10").Value
ComboBox4.Value = Worksheets("Sander EB").Range("$Z$11").Value
ComboBox5.Value = Worksheets("Sander EB").Range("$T$14").Value
ComboBox6.Value = Worksheets("Sander EB").Range("$Z$15").Value
ComboBox7.Value = Worksheets("Sander EB").Range("$Z$16").Value
ComboBox8.Value = Worksheets("Sander EB").Range("$Z$17").Value
ComboBox9.ListIndex = ListenIndexCB9 'setzt die Box Nr 9 auf den Zuletzt gewählten Listen Punkt'
TextBox10.Value = Worksheets("Sander EB").Range("$J$15").Value
TextBox15.Value = Worksheets("Sander EB").Range("$J$16").Value
TextBox16.Value = Worksheets("Sander EB").Range("$J$17").Value
TextBox17.Value = Worksheets("Sander EB").Range("$M$17").Value
TextBox20.Value = Worksheets("Sander EB").Range("$AB$7").Value
TextBox21.Value = Worksheets("Sander EB").Range("$AB$8").Value
TextBox22.Value = Worksheets("Sander EB").Range("$Z$12").Value
TextBox23.Value = Worksheets("Sander EB").Range("$Z$13").Value
TextBox24.Value = Worksheets("Sander EB").Range("$Z$14").Value
TextBox25.Value = Worksheets("Speicher").Range("$B$" & ListenIndexCB9 + 2).Value
End Sub
'ComboBox Auftraggeber'

Private Sub ComboBox1_Change()
Dim Wert As String
'Tabellenblatt Sander EB setzen und Zelle J9 aktivieren'
Sheets("Sander EB").Activate
ActiveSheet.Range("$J$9").Select
'in die aktive Zelle den Wert der ComboBox eintragen, in diesem Fall der Auftraggeber'
ActiveCell.Value = Me.ComboBox1.Value
If ComboBox1 = "" Or ComboBox1 = "Auswählen oder Eintragen" Then
Label1.ForeColor = RGB(255, 0, 0) 'Wenn Leer dann Rot
Else
Label1.ForeColor = RGB(0, 125, 0) 'Wenn voll dann Grün
End If
'Textboxen mit den Werten aus der Exel Tabelle füllen'
Wert = Worksheets("Sander EB").Range("$J$10").Value 'Info1'
TextBox2.Value = Wert
Wert = Worksheets("Sander EB").Range("$J$11").Value 'Info2'
TextBox3.Value = Wert
Wert = Worksheets("Sander EB").Range("$J$12").Value 'Strasse'
TextBox5.Value = Wert
Wert = Worksheets("Sander EB").Range("$J$13").Value 'PLZ'
TextBox6.Value = Wert
Wert = Worksheets("Sander EB").Range("$M$13").Value 'Ort'
TextBox7.Value = Wert
End Sub

Private Sub ComboBox2_Change()
Worksheets("Sander EB").Range("$Z$9").Value = ComboBox2.Value
End Sub

Private Sub ComboBox3_Change()
Worksheets("Sander EB").Range("$Z$10").Value = ComboBox3.Value
End Sub

Private Sub ComboBox4_Change()
Worksheets("Sander EB").Range("$Z$11").Value = ComboBox4.Value
End Sub

Private Sub ComboBox5_Change()
Worksheets("Sander EB").Range("$T$14").Value = ComboBox5.Value
End Sub

Private Sub ComboBox6_Change()
Worksheets("Sander EB").Range("$Z$15").Value = ComboBox6.Value
End Sub

Private Sub ComboBox7_Change()
Worksheets("Sander EB").Range("$Z$16").Value = ComboBox7.Value
End Sub

Private Sub ComboBox8_Change()
Worksheets("Sander EB").Range("$Z$17").Value = ComboBox8.Value
End Sub

Private Sub ComboBox9_Change()
Dim Inhalt As String
Sheets("Speicher").Activate 'Tabellenblatt "Speicher" aktivieren'
ActiveSheet.Range("$A$1").Select 'A1 aktivieren'
ActiveCell.Value = Me.ComboBox9.Value 'ComboBox9 Wert in die aktive Zelle schreiben
If ComboBox9.ListIndex > -1 Then ' -1 bedeutet das an der ComboBox etwas geändert wurde
ListenIndexCB9 = ComboBox9.ListIndex 'Wert des aktuellen Listen Punkts speichern'
Inhalt = Worksheets("Speicher").Range("$B$" & ListenIndexCB9 + 2).Value 'Liest im Tabellenblatt "Speicher" den  _
Inhalt der Zelle B1 aus (Wartungstext)'
TextBox25.Value = Inhalt 'Schreibt den gespeicherten Wert "Inhalt" in meine Text Box
Sheets("Sander EB").Activate 'Aktiviert wieder den Sander EB
End If
End Sub

Private Sub TextBox1_Change() 'Ansprechpartner'
Worksheets("Sander EB").Range("$J$14").Value = TextBox1.Value
If TextBox1 = "" Then
Label2.ForeColor = RGB(255, 0, 0) 'Wenn Leer dann Rot
Else
Label2.ForeColor = RGB(0, 125, 0) 'Wenn voll dann Grün
End If
End Sub

Private Sub TextBox5_Change() 'Straße'
If TextBox5 = "" Then
Label6.ForeColor = RGB(255, 0, 0) 'Wenn Leer dann Rot
Else
Label6.ForeColor = RGB(0, 125, 0) 'Wenn voll dann Grün
End If
End Sub

Private Sub TextBox6_Change() 'PLZ'
If TextBox6 = "" Then
Label7.ForeColor = RGB(255, 0, 0) 'Wenn Leer dann Rot
Else
Label7.ForeColor = RGB(0, 125, 0) 'Wenn voll dann Grün
End If
End Sub
'Begrenzung auf Zahlen Textbox 6 PLZ Auftraggeber'

Private Sub textbox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57, 59
Case Else: KeyAscii = 0
End Select
End Sub

Private Sub TextBox10_Change() 'Kundenname'
Worksheets("Sander EB").Range("$J$15").Value = TextBox10.Value
If TextBox10 = "" Then
Label10.ForeColor = RGB(255, 0, 0) 'Wenn Leer dann Rot
Else
Label10.ForeColor = RGB(0, 125, 0) 'Wenn voll dann Grün
End If
End Sub

Private Sub TextBox15_Change() 'Straße'
Worksheets("Sander EB").Range("$J$16").Value = TextBox15.Value
If TextBox15 = "" Then
Label15.ForeColor = RGB(255, 0, 0) 'Wenn Leer dann Rot
Else
Label15.ForeColor = RGB(0, 125, 0) 'Wenn voll dann Grün
End If
End Sub

Private Sub TextBox16_Change() 'PLZ'
Worksheets("Sander EB").Range("$J$17").Value = TextBox16.Value
If TextBox16 = "" Then
Label16.ForeColor = RGB(255, 0, 0) 'Wenn Leer dann Rot
Else
Label16.ForeColor = RGB(0, 125, 0) 'Wenn voll dann Grün
End If
End Sub
'Begrenzung auf Zahlen Textbox 16 PLZ Kunde'

Private Sub textbox16_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57, 59
Case Else: KeyAscii = 0
End Select
End Sub

Private Sub TextBox17_Change() 'Ort'
Worksheets("Sander EB").Range("$M$17").Value = TextBox17.Value
End Sub

Private Sub TextBox20_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Me.TextBox20
If Not IsDate(.Text) And Not .Text = "" Then
.Text = ""
MsgBox "Bitte ein gültiges Datum eingeben!"
Cancel = True
Else
On Error Resume Next
.Text = CDate(.Text)
End If
Worksheets("Sander EB").Range("$AB$7").Value = TextBox20.Value
End With
End Sub

Private Sub TextBox20_Change() 'Datum von'
If TextBox20 = "" Then
Label19.ForeColor = RGB(255, 0, 0) 'Wenn Leer dann Rot
Else
Label19.ForeColor = RGB(0, 125, 0) 'Wenn voll dann Grün
End If
End Sub

Private Sub TextBox21_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Me.TextBox21
If Not IsDate(.Text) And Not .Text = "" Then
.Text = ""
MsgBox "Bitte ein gültiges Datum eingeben!"
Cancel = True
Else
On Error Resume Next
.Text = CDate(.Text)
End If
Worksheets("Sander EB").Range("$AB$8").Value = TextBox21.Value
End With
End Sub

Private Sub TextBox21_Change() 'Datum von'
If TextBox21 = "" Then
Label20.ForeColor = RGB(255, 0, 0) 'Wenn Leer dann Rot
Else
Label20.ForeColor = RGB(0, 125, 0) 'Wenn voll dann Grün
End If
End Sub

Private Sub TextBox22_Change() 'PO Nummer'
Worksheets("Sander EB").Range("$Z$12").Value = TextBox22.Value
End Sub

Private Sub TextBox23_Change() 'Job,AB,KD'
Worksheets("Sander EB").Range("$Z$13").Value = TextBox23.Value
End Sub

Private Sub TextBox24_Change() 'Case Nummer'
Worksheets("Sander EB").Range("$Z$14").Value = TextBox24.Value
End Sub

Private Sub TextBox25_Change() 'Textfeld Einsatz'
WartungTextvorlage = TextBox25.Value 'Speichern des Inhaltes in einer Variable
End Sub

'Abbruch Button'

Private Sub CommandButton1_Click()
Unload UserForm1
End Sub

'Drucken eines bestimmten Tabellen Blattes'

Private Sub CommandButton2_Click()
Dim pdfName As String
pdfName = Application.GetSaveAsFilename(Environ("USERPROFILE") & "\Desktop\" & "Einsatzbericht" & ".pdf", "PDF- _
Dateien (*.pdf), *.pdf")
Sheets("Sander EB").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub
'Drucken mehrerer Tabellenblätter'

Private Sub CommandButton3_Click()
Dim pdfName As String
pdfName = Application.GetSaveAsFilename(Environ("USERPROFILE") & "\Desktop\" & "Einsatzberichte" & ".pdf", "PDF- _
Dateien (*.pdf), *.pdf")
Sheets(Array("Sander EB", "SEA-WA", "USV1", "Tabelle5", "Tabelle6")).Copy
With ActiveWorkbook
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
.Close savechanges:=False
End With
End Sub
'Speichern der Änderungen im Arbeitsbericht'

Private Sub CommandButton4_Click()
If ComboBox9.Value = "" Then ' Wenn leer dann Fehler Meldung
MsgBox "Unzulässige Eingabe, das Namensfeld darf nicht leer sein.", vbOKOnly, "Achtung"
Else
ListenIndexCB9 = ComboBox9.ListIndex 'Wert des aktuellen Listen Punkts in Variable speichern'
ListenNameCB9 = ComboBox9.Value 'ListenNameCB9 in Variable Speichern
WartungTextvorlage = TextBox25.Value
'Worksheets("Speicher").Range("$A$" & ListenIndexCB9 + 2).Value = ComboBox9.Value ' Den Namen der Vorlage  _
Speichern
Worksheets("Speicher").Range("$B$" & ListenIndexCB9 + 2).Value = WartungTextvorlage 'Die geänderte Wartungsvorlage  _
Speichern
Worksheets("Sander EB").Range("$B$20").Value = WartungTextvorlage 'Die geänderte Textvorlage in den Sander EB  _
schreiben
'TextBox25.Value = WartungTextvorlage 'Speichern des Inhaltes in einer Variable
'MsgBox "Listen Nummer: " & ListenIndexCB9 + 2 & " Listen Name: " & ListenNameCB9, vbOKOnly, "Hinweis aus  _
Speichern"
End If
Sheets("Sander EB").Activate 'Aktiviert wieder den Sander EB
End Sub

Anzeige
AW: ComboBox Eintrag ändern
21.04.2021 16:54:51
Jörn
Ich hab mir mal unabhängig vom oben genannten Problem eine komplett leere Arbeitsmappe erstellt und eine User Form mit Combo Box erstellt. In Keinem Tabellen Blatt steht etwas.
In der UserForm steht folgendes:

Private Sub userform1_initialize()
With ComboBox1
.AddItem "Test 1"
.AddItem "Test 2"
.AddItem "Test 2"
End With
End Sub
Wenn ich die Form starte habe ich keinen Punkt zum auswählen... in einigen erklär Videos zB von Balders Welt fuktioniert das aber.
Was mache ich falsch?
AW: ComboBox Eintrag ändern
21.04.2021 17:09:27
Nepumuk
Hallo Jörn,
du darfst den Namen einer Event-Prozedur niemals ändern. Also:

Private Sub UserForm_Initialize()
Gruß
Nepumuk
Anzeige
AW: ComboBox Eintrag ändern
21.04.2021 19:29:42
Jörn
Jetzt wo ich das bei Dir sehe ;-) mein Fehler
Ich habe jetzt mal ganz 2 Stunden mit dem hier rumgetestet

Private Sub ComboBox1_change()
Dim wert As Integer
wert = ComboBox1.ListIndex + 2
Worksheets("Tabelle1").Range("$A$" & ComboBox1.ListIndex + 2).Value = ComboBox1.Value
TextBox1.Value = "Zeile: " & ComboBox1.ListIndex + 2 & " Wert: " & wert
End Sub

Private Sub CommandButton1_Click()
Dim wert As Integer
wert = ComboBox1.ListIndex + 2
Worksheets("Tabelle1").Range("$A$" & ComboBox1.ListIndex + 2).Value = ComboBox1.Value
TextBox1.Value = "Zeile: " & ComboBox1.ListIndex + 2 & " Wert: " & wert
End Sub

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "A2:A11"
TextBox1.Value = "Zeile: " & ComboBox1.ListIndex + 2
'ComboBox1.AddItem "TESTER"
'ComboBox1.AddItem "Tester 2"
End Sub
Im Tabellenblatt gibt es in Spalte A2 bis A11 meine Einträge für die Kombo Box.
Wenn ich jetzt in die Box clicke und den Text ändere schreibt er mir immer alles in die erste Zelle A1... Warum? Ich möchte das er die ausgewählte Zelle nimmt.
Nach dem Change springt der Index Wert immer wiede auf -1
Ich hoffe ich habe mich verständlich ausgedrückt und vielen lieben Dank
Anzeige
AW: ComboBox Eintrag ändern
21.04.2021 19:48:00
Jörn
Mein Ziel ist es einfach nur den Angewählten Punkt in der KomboBox zu ändern und im Tabellen Blatt zu speichern
;-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige