Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Combobox in UF Listindex
#1
Hallo zusammen,

eventuell könnt ihr mir ja helfen.

Ich habe eine Combobox in einer UF. in der Combobox habe ich bestimmte Zeit Intervalle (08:00 bis 09:00 usw.) hinterlegt. Wenn ich das erste Zeit Intervall auswähle und in die TextBox etwas eintrage, wird der Eintrag im Arbeitsblatt Tabelle1 Zeile D66 richtig eingetragen. Wenn ich aber nun das zweite Zeit Intervall auswähle, soll dieses in der Spalte E66 eingetragen werden. das funktioniert bei mir leider nicht.

Hier mein Code:
Code:
Private Sub cboIntervalle_Click()
  
   'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt
   If cboIntervalle.ListIndex <> 0 Then
      TextBox1 = Worksheets("Tabelle1").Cells(cboIntervalle.ListIndex + 66, 4)
   Else
      TextBox1 = ""
   End If
  
   'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt
   If cboIntervalle.ListIndex <> 1 Then
      TextBox1 = Worksheets("Tabelle1").Cells(cboIntervalle.ListIndex + 66, 5)
   Else
      TextBox1 = ""
   End If
End Sub

Private Sub CommandButton2_Click()
  
   'Einträge aus TextBox werden beim Drücken des Button "übernehmen" in die Zellen geschrieben
   Dim xZeile As Long
   If TextBox1 = "" Then Exit Sub
   If cboIntervalle.ListIndex = 1 Then
      xZeile = [D78].End(xlUp).Row + 1
   Else
      xZeile = cboIntervalle.ListIndex + 1
   End If
  
   Cells(xZeile, 4) = TextBox1
   TextBox1 = ""
  
   'Einträge aus TextBox werden beim Drücken des Button "übernehmen" in die Zellen geschrieben
   If TextBox1 = "" Then Exit Sub
   If cboIntervalle.ListIndex = 2 Then
      xZeile = [E78].End(xlUp).Row + 1
   Else
      xZeile = cboIntervalle.ListIndex + 1
   End If
  
   Cells(xZeile, 5) = TextBox1
   TextBox1 = ""
  
End Sub

Vielen Dang und VG Mario
to top
#2
Hi Mario,

bitte benutze zum Darstellen des Codes den dritten Schalter von rechts (#). Er ist dadurch erheblich übersichtlicher.
?mage

Misserfolg ist eine Chance, es beim
nächsten Mal besser zu machen.

(Henry Ford)
http://www.sprueche-zum-nachdenken.eu
to top
#3
Hallo Mario,

so:
Code:
Private Sub cboIntervalle_Click()
   Dim i As Long
  
   'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt
   If cboIntervalle.ListIndex > 0 Then
      TextBox1 = Worksheets("Tabelle1").Cells(66, 3 + cboIntervalle.ListIndex)
   Else
      TextBox1 = ""
   End If

End Sub

Wenn die Textboxen durchgängig nummeriert wären, könnte man sie in einer Schleife füllen, z.B. so:

Code:
Private Sub cboIntervalle_Click()
   Dim i As Long
  
   'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt
   For i = 1 To 10
      If cboIntervalle.ListIndex > 0 Then
         Me.Controls("TextBox" & i) = Worksheets("Tabelle1").Cells(65 + i, 3 + cboIntervalle.ListIndex).Value
      Else
         Me.Controls("TextBox" & i) = ""
      End If
   Next i

End Sub

sonst musst Du jede Box einzeln innerhalb der If Abfrage aufführen:

Code:
Private Sub cboIntervalle_Click()
   Dim i As Long
  
   'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt
      If cboIntervalle.ListIndex > 0 Then
         TextBox1 = Worksheets("Tabelle1").Cells(66, 3 + cboIntervalle.ListIndex).Value
         TextBox2 = Worksheets("Tabelle1").Cells(67, 3 + cboIntervalle.ListIndex).Value
         TextBox3 = Worksheets("Tabelle1").Cells(68, 3 + cboIntervalle.ListIndex).Value
         '....usw
      Else
         TextBox1 = ""
         TextBox2 = ""
         TextBox3 = ""
         '....usw
      End If

End Sub

Und brauchst bei der Combo nur auf Listindex >0 zu prüfen. Ab 1 beginnen bei Dir die Zeiten.
Bei Listindex 0 steht "Intervall".
Dann würde ich beim Laden der Userform bei der Anzeige für die Combo Listindex = 0 voreinstellen, sonst macht der Eintrag ja keinen Sinn und könnte ganz entfallen.
Gruß Atilla

Excel 2007
to top
#4
Hallo Attila,

ich habe die TextBoxen jetzt durchgängig nummeriert und mich für die Schleife entschieden.
Das funktioniert auch bei der Auswahl des ersten Intervalls (08:00 bis 09:00) sehr gut. 78 eingetragen.
Wenn ich jedoch das zweite Intervall (09:00 bis 10:00) in der CBO auswähle sollten die Daten ja in die Spalte E66Big Grin66 eingetragen werden. Das funktioniert leider noch nicht. Hast du eventuell noch einen Tipp für mich?

VG Mario
to top
#5
Hallo Mario,

zeig doch mal den Code, den Du jetzt verwendest.
Gruß Atilla

Excel 2007
to top
#6
Hallo Atilla,

ich verwende jetzt folgenden Code.

Code:
Private Sub UserForm_Initialize()

'Werte in das Formular eintarge. Formular initialisieren

        Dim rngIntervalle As Range

        With Me

        cboIntervalle.List = Range("Intervalle").Value

End With

End Sub


Private Sub cboIntervalle_Click()
    Dim i As Long
    
    'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt
    For i = 1 To 13
       If cboIntervalle.ListIndex > 0 Then
          Me.Controls("TextBox" & i) = Worksheets("Tabelle1").Cells(65 + i, 3 + cboIntervalle.ListIndex).Value
                 Else
          Me.Controls("TextBox" & i) = ""
       End If
    Next i

End Sub


Private Sub CommandButton2_Click()



'Einträge aus TextBox werden beim drüchen des Button "übernehmen" in die Zellen geschrieben

Dim xZeile As Long
If TextBox1 = "" Then Exit Sub
If cboIntervalle.ListIndex = 1 Then
xZeile = [D78].End(xlUp).Row + 1
Else
xZeile = cboIntervalle.ListIndex + 1
End If

Cells(xZeile, 4) = TextBox1
Cells(xZeile, 4) = TextBox2

End Sub

VG Mario
to top
#7
Hallo Mario,

und wie heißen Deine Textboxen?

Die müssen Textbox1, Textbox2, Textbox3 usw heißen.

Wenn sie anders nummeriert sind dann muss das im Code angepasst werden.
Gruß Atilla

Excel 2007
to top
#8
Hallo Attila,

ja sie heißen Textbox1, Textbox2..... bis Textbox13.

Ich glaube, hier muss dies angepasst werden. Hier ist der Bezug ja nur auf D gelegt.

Code:
Private Sub CommandButton2_Click()



'Einträge aus TextBox werden beim drüchen des Button "übernehmen" in die Zellen geschrieben

Dim xZeile As Long
If TextBox1 = "" Then Exit Sub
If cboIntervalle.ListIndex = 1 Then
xZeile = [D78].End(xlUp).Row + 1
Else
xZeile = cboIntervalle.ListIndex + 1
End If

Cells(xZeile, 4) = TextBox1
Cells(xZeile, 4) = TextBox2

End Sub

VG Mario


Code strukturiert dargestellt durch 3. Button von rechts im Beitragsformular: #
 photo Raute_zps3ee56209.jpg

Dabei nicht die TAGs "code" durch den Makro-Code ersetzen!

?mage
to top
#9
Hallo Mario,

ich glaube, wir reden aneinander vorbei.
Ich hatte Dich so verstanden, dass nach Auswahl in der Combo das Einlesen in die Textboxen nicht funktioniert. Dafür habe ich Dir Beispiele gezeigt.

Was funktioniert jetzt und was nicht?
Gruß Atilla

Excel 2007
to top
#10
Hallo Attila,

ich kann ja über die Combo verschiedene Zeitfenster auswählen. Diese stehen auch im Tabellenblatt1 in Spalte D65 bis O65.
Wenn ich jetzt das erste Zeitfenster in der Combo auswähle, sollen die Einträge aus den TextBoxen entsprechend in Zeile D66 bis D78 eingetragen werden.
Das funktioniert auch.
Wenn ich in der Combo das zweite Zeitfenster auswähle, sollen die Einträge aus den TextBoxen entsprechend in Zeile E66 bis E78 eingetragen werden und das funktioniert leider nicht.

VG Mario
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Combobox.listfillrange mit for Knocker 17 399 05.11.2016, 11:25
Letzter Beitrag: schauan
  Tabellenwechsel per Dropdown-ComboBox TimoK 28 800 13.09.2016, 10:14
Letzter Beitrag: TimoK
  ComboBox mit Teil einer Liste füllen Rabe 22 643 05.08.2016, 08:10
Letzter Beitrag: Rabe
  Listindex aus ListBox mit multipleselect Spike87 4 297 05.07.2016, 11:53
Letzter Beitrag: snb
  combobox und textbox will dazu lernen 2 272 01.05.2016, 20:01
Letzter Beitrag: will dazu lernen
  Combobox läßt sich nicht löschen MICA 14 1.014 16.04.2016, 17:54
Letzter Beitrag: MICA
  VBA: Abhängige Combobox Joe 6 1.380 20.10.2015, 13:21
Letzter Beitrag: Joe
  Tabelle Kopieren mit Monatsabfrage Combobox Daniel Albert 15 2.010 06.10.2015, 21:49
Letzter Beitrag: Kuwer
  VBA Dropdown (ComboBox) Joe 11 1.697 04.10.2015, 21:02
Letzter Beitrag: snb
  Problem mit automatischem Ausfüllen einer ComboBox per VBA VBA4Beginner 11 1.411 11.09.2015, 09:19
Letzter Beitrag: RPP63

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste