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

Combobox
31.10.2008 08:58:49
Peter
Guten Morgen,
mit folgendem Code schreibe ich Daten aus einer Userform in Tabelle1
nun habe ich noch eine Combobox in die Userform gestellt.
Problem:
Wie kann ich die Combox mit den verschiedenen Tabellennamen befüllen
und dann in der ausgesuchten Tabelle den unten genannten Code anwenden.

Private Sub CommandButton1_Click()
If [a65536] = "" Then
Cells([a65536].End(xlUp).Row + 1, 1) = TextBox1
Cells([b65536].End(xlUp).Row + 1, 2) = TextBox2
Cells([c65536].End(xlUp).Row + 1, 3) = TextBox3
Else
MsgBox "Es ist keine Zelle mehr frei"
End If
End Sub


Wäre schön wenn mir jemand weiterhelfen könnte.
Gruss
Peter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox
31.10.2008 09:13:22
Rudi
Hallo,
zum weiteren Ausbau:

Option Explicit
Dim wksDaten As Worksheet
Private Sub ComboBox2_Change()
Set wksDaten = Worksheets(ComboBox2.Text)
End Sub
Private Sub UserForm_Activate()
Dim wks As Worksheet
For Each wks In Worksheets
ComboBox2.AddItem wks.Name
Next
End Sub
Private Sub CommandButton1_Click()
With wksDaten
If .Cells(Rows.Count, 1) = "" Then
With .Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0) = TextBox1
.Offset(1, 1) = TextBox2
.Offset(1, 2) = TextBox3
End With
Else
MsgBox "Es ist keine Zelle mehr frei"
End If
End With
End Sub


Gruß
Rudi

Anzeige
AW: Combobox
31.10.2008 09:25:40
Peter
Guten Morgen Rudi,
Danke für deine Hilfe,
ein Problem gibt es da noch.
Wenn ich vergesse eine Tabelle auszuwählen bekomme ich eine Fehlermeldung
kann dies über einen Hinweis mit einer Msgbox verhindert werden.
Gruss
Peter
AW: Combobox
31.10.2008 09:19:00
Ingo
Hallo Peter;
So wird die ComboBox gefüllt:

Private Sub UserForm_Initialize()
Dim wks As Worksheet
Me.ComboBox1.Clear
For Each wks In ThisWorkbook.Worksheets
Me.ComboBox1.AddItem wks.Name
Next wks
End Sub


Und so gehts weiter


Private Sub CommandButton1_Click()
Dim wks_name as string
wks_name = me.ComboBox1
If [a65536] = "" Then
Sheets(wks_name).Cells([a65536].End(xlUp).Row + 1, 1) = TextBox1
Sheets(wks_name).Cells([b65536].End(xlUp).Row + 1, 2) = TextBox2
Sheets(wks_name).Cells([c65536].End(xlUp).Row + 1, 3) = TextBox3
Else
MsgBox "Es ist keine Zelle mehr frei"
End If
End Sub


mfG
Ingo Christiansen

Anzeige
AW: Combobox
31.10.2008 09:31:05
JogyB
Hallo.

Private Sub UserForm_Initialize()
Dim wsH As Worksheet
For Each wsH In ThisWorkbook.Worksheets
Me.ComboBox1.AddItem wsH.Name
Next
Me.ComboBox1.Style = fmStyleDropDownList
End Sub
Private Sub CommandButton1_Click()
If Me.ComboBox1.ListIndex > -1 Then
With ThisWorkbook.Sheets(Me.ComboBox1.Value)
If IsEmpty(.Cells(Rows.Count, 1)) Then
.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = TextBox1.Value
.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = TextBox2.Value
.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Value = TextBox3.Value
Else
MsgBox "Es ist keine Zelle mehr frei"
End If
End With
Else
MsgBox ("Bitte Tabelle auswählen")
End If
End Sub


Nimm unbedingt das .Value, sonst schreibt es auch bei leerer Textbox etwas in die Zelle und diese wird nicht mehr als leer erkannt.
Gruss, Jogy

Anzeige
AW: Combobox
31.10.2008 09:52:22
Peter
Hallo Jogy und alle anderen die mir freundlicherweise bei meinem Problem helfen,
Ich habe den Code von Jogy genommen mit der MsgBox die Super funktioniert
doch eines ist mir noch nachträglich eingefallen
es kann sein das in der TextBox1 keine Eingabe gemacht wird
bei der nächsten Eingabe wieder alle Boxen mit Inhalt gefüllt werden
da bekomme ich aber dann ein Problem in Spalte A mit der nächst leeren Zelle
Hinweis: Textbox2 und Textbox3 werden immer befüllt
Viele Grüsse
Peter
AW: Combobox
31.10.2008 10:02:00
JogyB
Ich hoffe, ich habe das richtig verstanden: Du willst die Eingaben alle in derselben Zeile haben, richtig?
Dann kannst Du es so machen:

Private Sub CommandButton1_Click()
Dim colMax(1 To 3) As Long
Dim i As Byte
Dim writeLine As Long
If Me.ComboBox1.ListIndex > -1 Then
With ThisWorkbook.Sheets(Me.ComboBox1.Value)
If IsEmpty(.Cells(Rows.Count, 1)) And IsEmpty(.Cells(Rows.Count, 2)) And IsEmpty(. _
Cells(Rows.Count, 3)) Then
For i = 1 To 3
colMax(i) = .Cells(Rows.Count, i).End(xlUp).Row
Next
writeLine = Application.Max(colMax) + 1
For i = 1 To 3
.Cells(writeLine, i).Value = Me.Controls("TextBox" & i).Value
Next
Else
MsgBox "Es ist keine Zelle mehr frei"
End If
End With
Else
MsgBox ("Bitte Tabelle auswählen")
End If
End Sub

Gruss, Jogy

Anzeige
AW: Combobox
31.10.2008 10:10:00
Peter
Hallo Jogy,
"Genial"
recht herzlichen Dank für deine Hilfe und ein schönes Wochenende
wünscht Dir
Peter
Dank auch an die anderen Helfer

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige