Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
536to540
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
536to540
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Combobox / Textbox

Combobox / Textbox
26.12.2004 15:23:26
Erich
Hallo Excelprofis,
habe wieder ein Problem, ich habe 90 Comboboxen und 90 Textboxen
in Meiner Userform die textboxen fülle ich mit folgenden Code

Private Sub ComboBox1_Change()
TextBox6.Text = Cells(ComboBox1.ListIndex + 2, 3)
End Sub

jetzt zu meiner Frage:
muß ich nun für alle Textboxen den code schreiben (90 mal) oder giebt es eine möglich keit dies einfacher zu gestalten.
Danke im vorraus für eure bemühungen.
gruß
erich

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox / Textbox
26.12.2004 15:47:15
Josef
Hallo Erich!
Möglichkeiten gäbe es schon, aber dazu müssten ertsmal die Namen der
Comboboxen und der dazugehörenden Textboxen auf eine gewisse Übereinstimmung
gebracht werden! zB.: TextBox1 bezieht sich auf ComboBox1
Danach könnte man das über ein Klassenmodul lösen, was bei "VBA nur mit Rekorder"
aber sicher nicht so einfach ist!
Gruß Sepp
AW: Combobox / Textbox
26.12.2004 15:54:46
Erich
Hallo Sepp,
Danke für deine Antwort, meine comboboxen und textboxen sind so strukturiert
Combobox1 = Textbox6
Combobox2 = Textbox7
das alle hat einen grund weil ich die werte aus den comboboxen und die werte aus den textboxen 1 bis 5 mit nachfolgenden Code in meine Tabelle schreibe

Private Sub CommandButton1_Click()
For i = 1 To 90
If Me.Controls("ComboBox" & i).Value = "" Then
If Me.Controls("ComboBox" & i).Visible = True Then
Me.Controls("ComboBox" & i).SetFocus
MsgBox "Alle Felder Ausfüllen!"
Exit Sub
End If
End If
Next
Dim intIndex As Integer
With Sheets("Typ_1_A")
lz = .Cells(65536, 1).End(xlUp).Row + 1
For intIndex = 1 To 5
.Cells(lz, intIndex) = Controls("TextBox" & CStr(intIndex)).Value
Next intIndex
For intIndex = 1 To 90
.Cells(lz, intIndex + 5) = Controls("ComboBox" & CStr(intIndex)).Value
Next intIndex
End With
End Sub

in eine andere Tabelle möchte ich nur die werte aus den Textboxen schreiben
kanst du mir weiter helfen?
gruß
erich
Anzeige
AW: Combobox / Textbox
26.12.2004 16:08:39
Josef
Hallo Erich!
Also gut, versuchen wir's!
Ich hab hier eine Code von Thomas Risi der sich dafür eignet.
1.) Erstelle ein KlassenModul (VBE &gt Einfügen &gt Klassenmodul) und gib ihm
den Namen "cUFC".
Füge in das Modul dann diesen Code:

Option Explicit
'Idea by Thomas Risi
<a href="'http://rtsoftwaredevelopment.de/">'http://rtsoftwaredevelopment.de/</a>
Private WithEvents cmdBtn As MSForms.CommandButton
Private WithEvents txtBox As MSForms.TextBox
Private WithEvents chkBox As MSForms.CheckBox
Private WithEvents optBtn As MSForms.OptionButton
Private WithEvents lstBox As MSForms.ListBox
Private WithEvents cmbBox As MSForms.ComboBox
Public Function Create(cntrl As MSForms.Control) As Object
Set Create = Nothing
If TypeOf cntrl Is MSForms.CommandButton Then
Set cmdBtn = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.TextBox Then
Set txtBox = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.CheckBox Then
Set chkBox = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.OptionButton Then
Set optBtn = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.ListBox Then
Set lstBox = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.ComboBox Then
Set cmbBox = cntrl
Set Create = Me
End If
End Function
Private Sub cmbBox_Change()
'Name der UF und Tabellenname anpassen
UserForm1.Controls("TextBox" & Mid(cmbBox.Name, 9, 99) + 5) = _
Sheets("TabellenName").Cells(cmbBox.ListIndex + 2, 3)
End Sub

2.) In das Modul der UF kommt dann noch dieser Code:

Option Explicit
Dim UFControls() As cUFC
Private Sub UserForm_Initialize()
Dim item As MSForms.Control
Dim n%: n = -1
For Each item In Me.Controls
n = n + 1
ReDim Preserve UFControls(n)
Set UFControls(n) = New cUFC
UFControls(n).Create item
Next
End Sub

Wenn du im Initializeereignis der UF bereits Code stehen hast, dann
füge die Codezeilen einfach am anfang ein!
Gruß Sepp
Anzeige
Danke
26.12.2004 16:35:14
Erich
Hallo Sepp,
Danke es funktioniert, habs hinbekommen, danke nochmals das du es mit mit mir nicht aufgegeben hast.
gruß
erich

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige