Clever-Excel-Forum

Normale Version: Textboxen mit Auswahl einer Combobox nacheinander füllen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo André,

(29.06.2014, 06:12)schauan schrieb: [ -> ]Besser wäre, die Combobox zurückzusetzen. --> im code die Zeile mit ... Listindex = -1

hier wird aber das Change-Ereignis der ComboBox wieder ausgelöst, was ich mit der Modulvariable vermieden habe.
Hallo Stefan,

ja, dann machen wir das weiter unten oder setzen das True schon vor dem With Me.
Hallo André, hallo Stefan
Das einfügen der Artikel passt super, auch das der nächste in der Kopfzeile gewählt werden kann ist hervoragend.
Nun hät der Artikel gerne noch im Label rechts die Artikel-ID zu stehen.
Code:
.Label5.Caption = Worksheets(1).Cells(ComboBox1.ListIndex + 2, 1)
Das kann so bestimmt nicht funktionieren, weil nur Label 5 angesprochen ist, oder ?!

Hier der komplette aktuelle Code
Code:
Private bolAufruf As Boolean
Private Sub ComboBox1_Change()
    Dim lngCounter As Long, iCNt1 As Integer
    Dim wksEingabe As Worksheet
    Dim intErsteLeereZeile As Long
    If bolAufruf Then Exit Sub
    For lngCounter = 1 To 12
        If Me.Controls("TextBox" & lngCounter) = "" Then Exit For
    Next lngCounter
    With Me
    .Controls("TextBox" & lngCounter) = .ComboBox1
    .Label5.Caption = Worksheets(1).Cells(ComboBox1.ListIndex + 2, 1)
    .ComboBox1.ListIndex = -1
    End With
    bolAufruf = True
    With ThisWorkbook.Worksheets("Tabelle1").Range("AK2:AK13")              ' zu befüllender Tabellenbereich
      Do While .Cells(icnt + 1, 1).Value <> ""
        icnt = icnt + 1
      Loop
      .Cells(icnt + 1, 1).Value = Me.Controls("TextBox" & lngCounter).Value
    End With
    bolAufruf = False
End Sub
Private Sub CmdAbbruch_Click()
Unload Me
End Sub
Private Sub CmdWeiter_Click()
Unload Me
End Sub
Ist das ebenfalls zu bewerkstelligen?

mfg
Hallo Frank,

das funktioniert im Prinzip so wie mit den Textboxen in der Zeile darüber -
.Controls(...).Caption.
Allerdings müsstest Du in Deiner Tabelle noch irgendwo, z.B. in Spalte AI, noch die zum Artikel passende korrekte ID ermitteln. Dann kannst Du mit dieser Spalte arbeiten statt mit Spalte A.
Hallo André
(29.06.2014, 10:40)schauan schrieb: [ -> ]...noch irgendwo, z.B. in Spalte AI, noch die zum Artikel passende korrekte ID ermitteln. Dann kannst Du mit dieser Spalte arbeiten statt mit Spalte A.
Ich schrieb am 27.06.2014 09:15
Zitat:Edit:
Spalte AI von Zeile 2 - 13 muss eine Sverweisformel hinein, sorry. Hier für AI2 und dann runterkopieren
Spalte Aa Ii 2 - 13

Ich hab zwar jetzt die Spalte aber wie die Artikel-ID zuweisen
Code:
....ksheets(1).Cells(ComboBox1.ListIndex + 2, 38)
so wird in Spalte AL die erste Zeile ausgegeben, Labelinhalt [Artikel-ID]

Wie soll das mit
Zitat:.Controls(...).Caption.
aussehen?
mfg

Apropos
Da habe ich eventuell noch einen Schreibfehler gefunden, aber siehe
Code:
Private Sub ComboBox1_Change()
    Dim lngCounter As Long, iCNt As Integer
   'Dim lngCounter As Long, iCNt1 As Integer
    If bolAufruf Then Exit Sub
Hallo Frank,

na, das Ding heißt doch Label. Also Textbox durch Label ersetzen.
Also im Prinzip so:

.Controls("Label" & lngCounter).Caption = ....ksheets(1).Cells(ComboBox1.ListIndex + 2, 38)

Da Deine Label nicht mit dem Index 1 wie die Textboxen anfangen, musst Du zum lngCounter noch was zuzählen Wink

Mit Option Explicit am Anfang des Moduls wäre die 1 bei der Variablendeklaration übrigens spätestens bei der Verwendung der daher undeklarierten Variable iCnt aufgefallen.
Seiten: 1 2