Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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-Daten verändert in Zelle zurückschreiben

ComboBox-Daten verändert in Zelle zurückschreiben
27.02.2016 13:21:46
Michael
Hallo alle zusammen,
ich hoffe mein Problem vernünftig rüberbringen zu können.
Ich öffne per Klick auf einen im Tabellenblatt erstellten Button eine ComboBox, in welcher automatisch die Daten der Zellen A1:A20 zur Auswahl stehen.
Ich möchte jetzt den in der ComboBox selektierten Wert (z.B. der aus Zelle A1) überschreiben. Am liebsten würde ich in einem Textfeld direkt daneben den neuen Text eingeben und anschließend nur noch "OK" drücken müssen und der Zellinhalt ist geändert.
Wenn also vorher in A1 ein Wert 45 stand, ich in der ComboBox 45 ausgewählt habe und in dem Texteingabefeld daneben 77 eingegeben habe, soll nun auch 77 in A1 stehen.
Bei mir scheitert es an dem Texteingabefeld neben der ComboBox und dem überschreiben der Daten der entsprechenden Zelle.
Hat da jemand eine Idee wie das zu lösen ist?
Danke schon mal im voraus.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox-Daten verändert in Zelle zurückschreiben
27.02.2016 15:40:15
Beverly
Hi Michael,
ich nehme an, du meinst eine Combo- und TextBox im Tabellenblatt?
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
If ComboBox1.ListIndex  -1 Then _
Range(ComboBox1.ListFillRange).Cells(ComboBox1.ListIndex + 1) = CLng(TextBox1)
End If
End Sub
Falls Test und keine Zahlen dann Clng( ) weglassen.
Falls UserForm, dann ListFillRange durch RowSource ersetzen.


AW: ComboBox-Daten verändert in Zelle zurückschreiben
28.02.2016 13:53:06
Michael
Danke für die schnelle Antwort.
Ich nehme an, das der oben beschriebene Code funktioniert, allerdings bekomme ich den bei mir nicht ans laufen....wird aber wohl an meinen mangelnden Kenntnissen in VBA liegen...
Derzeit sieht der Code zu meiner User Form wie folgt aus:
Private Sub ComboBox1_Change()
Worksheets("Tabelle1").Range("A1:A4").Value = Me.ComboBox1.Value
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "A1:A4"
End Sub
Somit bekomme ich zumindest schon mal die Zellwerte der Zellen A1:A4 zur Auswahl und kann diese selektieren. Wenn ich aber eine selektiere, ändern sich alle Zellen auf eben diesen Wert.
Wo genau muss ich denn jetzt den beschriebenen Code einbauen?
Sorry, VBA ist wirklich nicht meine Stärke :-)

Anzeige
AW: ComboBox-Daten verändert in Zelle zurückschreiben
28.02.2016 14:15:10
Beverly
Naja, den Code musst du natürlich auch ins UserForm kopieren...
Lösche außerdem das Change-Ereignis, denn mit diesem trägst du den ausgewählten Inhalt in alle Zellen ein.
Falls trotzdem du nicht klar kommst - lade deine Mappe hoch, damit man deine konkreten Bedingungen sehen kann.


AW: ComboBox-Daten verändert in Zelle zurückschreiben
28.02.2016 14:58:55
Michael
Ich bekomme da leider nur Fehler zurück, wenn ich den Code einfüge, egal was ich mache.
Hier der Link zur Mappe:
https://www.herber.de/bbs/user/103946.xlsm
Es sollen die Zellen A1:A4 und A6:A9 in der ComboBox zur Auswahl stehen, A5 bewusst nicht.
Vielleicht kann mir auch noch jemand ein gutes VBA-Excel Buch empfehlen?

Anzeige
AW: ComboBox-Daten verändert in Zelle zurückschreiben
28.02.2016 17:19:10
Beverly
Ich habe mal deinen Code etwas bereinigt und bei mir funktioniert er so wie gewünscht: sobald in die TextBox ein Zahlenwert eingetragen und Enter gedrückt wird, wird dieser in den Bereich A1:A4 in die entsprechende Zelle geschrieben und in der ComboBox angezeigt.
https://www.herber.de/bbs/user/103952.xlsm


AW: ComboBox-Daten verändert in Zelle zurückschreiben
28.02.2016 17:33:37
Michael
Super, vielen Dank schon mal dafür :-)
Wie bekomme ich jetzt noch den Inhalt der Zellen A6:A9 mit in die Combobox?
Ich hätte mir das jetzt ungefähr so vorgestellt oder aber mit ; getrennt. Klappt aber beides nicht....
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "A1:A4" & "A6:A9"
End Sub

Anzeige
AW: ComboBox-Daten verändert in Zelle zurückschreiben
28.02.2016 18:16:57
Beverly
Das geht so nicht - dazu musst du die ComboBox direkt füllen und den ListIndex kann man dann auch nicht mehr so ohne weiteres verwenden. Folgender Code im UserForm:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub TextBox1_AfterUpdate()
Dim lngIndex As Long
lngIndex = ComboBox1.ListIndex
ComboBox1.Clear
UFFuellen
ComboBox1.ListIndex = lngIndex
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
If ComboBox1.ListIndex  -1 Then
Cells(ComboBox1.List(ComboBox1.ListIndex, 1), 1) = CLng(TextBox1)
End If
End If
End Sub
Private Sub UserForm_Initialize()
UFFuellen
End Sub
Private Sub UFFuellen()
Dim lngZeile As Long
For lngZeile = 1 To 9
If lngZeile = 5 Then lngZeile = 6
Me.ComboBox1.AddItem Cells(lngZeile, 1)
Me.ComboBox1.List(ComboBox1.ListCount - 1, 1) = lngZeile
Next lngZeile
End Sub
Mit der Prozedur UFFuellen werden der ComboBox die Zellinhalte und die Zeile zugewiesen. Die Zeile wird nicht angezeigt, da die ComboBox nur eine Spalte hat - sie wird aber benötigt, um den textBox-Inhalt in die richtige Zeile zu schreiben. Die Prozedur wird sowohl beim Starten des UserForms aufgerufen und nachdem in die TextBox ein Wert eingtragen wurden, damit der neue Wert in der ComboBox auch angezeigt wird.


Anzeige
AW: ComboBox-Daten verändert in Zelle zurückschreiben
28.02.2016 20:56:14
Michael
Dann noch eine letzte Frage...hoffe ich...
Wenn der Bereich der Daten für die ComboBox jetzt auf Tabelle 2 liegt muss ich dem ja irgendwie sagen das er nicht auf Tabelle 1 sondern Tabelle 2 suchen soll.
Das ist ja in dem bisherigen Code nicht drin, sucht der per Standard auf Tabelle 1? Wenn ja, wie kann ich ihm sagen, dass die Daten jetzt auf dem anderen Tabellenblatt liegen?
Die Schaltfläche zum starten des Makros soll dabei auf Tabelle 1 liegen bleiben.

AW: ComboBox-Daten verändert in Zelle zurückschreiben
29.02.2016 08:27:10
Beverly
Dann musst du an beiden Stellen vor Cells(...) noch den Bezug zum anderen Tabellenblatt setzen: Worksheets("Tabelle2").Cells(...)


Anzeige
AW: ComboBox-Daten verändert in Zelle zurückschreiben
29.02.2016 09:15:55
Michael
Super, Danke. Habe es mit Workshops Change und Workshops Activate probiert. Hatte beides nicht geklappt...
Habe wieder einiges gelernt :)

AW: ComboBox-Daten verändert in Zelle zurückschreiben
29.02.2016 10:20:41
Beverly
Du meinst sicher Worksheet_Change und Worksheet_Activate (Worksheet = Arbeitsblatt) - beides sind Ereignisprozeduren des Arbeitsblattes (= Tabelle/Tabellenblatt)


AW: ComboBox-Daten verändert in Zelle zurückschreiben
29.02.2016 21:06:46
Michael
Stimmt, ich meinte Worksheets...Autokorrektur vom Handy.
Ich habe das mit dem einfügen von Worksheets("Tabelle2") vor dem Cells-Eintrag in meinem Code probiert. Der sieht ohne den Eintrag wie folgt aus:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
If ComboBox1.ListIndex  -1 Then _
Range(ComboBox1.RowSource).Cells(ComboBox1.ListIndex + 1) = CLng(TextBox1)
End If
End Sub
Private Sub Spielernamen_aendern_Initialize()
Me.ComboBox1.RowSource = "M2:M41"
End Sub
Private Sub UserForm_Click()
End Sub

Ich hatte eigentlich gehofft durch die doch sehr genauen Tipps, das ganze an meine richtige Mappe anpassen zu können und dabei noch was lernen :-)
Daher hatte ich nur ein Beispiel genannt. Bekomme es aber leider nicht hin.
Die Daten stehen auf dem Tabellenblatt "Berechnung3" in den Zellen M2:M41.
Wenn ich jetzt den Workshetts-Eintrag vor den einen Cells-Eintrag schreibe, habe ich überhaupt keine Änderung. Mein Dropdown ist und bleibt einfach leer...
Wo ist hier mein Denkfehler?

Anzeige
AW: ComboBox-Daten verändert in Zelle zurückschreiben
01.03.2016 10:30:54
Beverly
Dein Denkfehler liegt bei dir selbst - du benutzt nicht den von mir geposteten Code.


333 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige