Clever-Excel-Forum

Normale Version: Listbox Code erweitern Zeile select
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich hab da noch mal ein kleines Problem.
Ich hab eine UF um Datensätze einzugeben und zu bearbeiten. Das funktioniert auch alles wunderbar.
Um Korekturen evtl besser durchzuführen, hätte ich jetzt gerne, das wenn ich in der Listbox einen Datensatz auswähle, die entsprechende Zeile im Blatt entweder ausgewählt wird, oder alternativ evtl farblich markiert wird.

Habe selbst schon bissl rumprobiert, aber irgendwie geht das ned.


Hier der Code der Listbox.klick

Code:
Private Sub ListBox1_Click()
  Dim lZeile As Long
  Dim loLetzte As Long
 
  'Wenn der Benutzer einen Namen anklickt, suchen wir
  'diesen in der Tabelle1 heraus und tragen die Daten
  'in die TextBoxen ein.
 
  loLetzte = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row           ' letzte belegte in Spalte A (1)
 
  'Wir löschen standardmäßig alle bisherigen TextBoxen-Inhalte
  TextBox1 = ""
  TextBox2 = ""
'   ComboBox2 = ""
  TextBox4 = ""
  TextBox5 = ""
  TextBox6 = ""
  TextBox7 = ""
'   ComboBox1 = ""
 
  'Nur wenn ein Eintrag selektiert/markiert ist
  If ListBox1.ListIndex >= 0 Then
     
     lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
     'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
     For lZeile = 2 To loLetzte
       
        'Wenn wir den Namen aus der ListBox1 in der Tabelle1 Spalte 1
        'gefunden haben, übertragen wir die anderen Spalteninhalte
        'in die TextBoxen!
        If ListBox1.Text = Tabelle1.Cells(lZeile, 1).Value Then
           
           'TextBoxen füllen
           TextBox1 = Tabelle1.Cells(lZeile, 8).Value
           TextBox2 = Tabelle1.Cells(lZeile, 3).Value
'            ComboBox2 = Tabelle1.Cells(lZeile, 4).Value
           TextBox4 = Tabelle1.Cells(lZeile, 5).Value
           TextBox5 = Tabelle1.Cells(lZeile, 6).Value
           TextBox6 = Tabelle1.Cells(lZeile, 1).Value
           TextBox7 = Tabelle1.Cells(lZeile, 7).Value
'            ComboBox1 = Tabelle1.Cells(lZeile, 3).Value
           IDZeile = lZeile
           
           AktualisiereKunden

           Exit Sub 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
        End If
     Next lZeile
  End If
End Sub
Hallo Mario,

Code:
Private Sub ListBox1_Click()
  Dim lZeile As Long
  Dim loLetzte As Long

  'Wenn der Benutzer einen Namen anklickt, suchen wir
  'diesen in der Tabelle1 heraus und tragen die Daten
  'in die TextBoxen ein.

  loLetzte = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row           ' letzte belegte in Spalte A (1)

  'Wir löschen standardmäßig alle bisherigen TextBoxen-Inhalte
  TextBox1 = ""
  TextBox2 = ""
'   ComboBox2 = ""
  TextBox4 = ""
  TextBox5 = ""
  TextBox6 = ""
  TextBox7 = ""
'   ComboBox1 = ""

  'Nur wenn ein Eintrag selektiert/markiert ist
  If ListBox1.ListIndex >= 0 Then
    
     lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
     'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
     For lZeile = 2 To loLetzte
      
        'Wenn wir den Namen aus der ListBox1 in der Tabelle1 Spalte 1
        'gefunden haben, übertragen wir die anderen Spalteninhalte
        'in die TextBoxen!
        If ListBox1.Text = Tabelle1.Cells(lZeile, 1).Value Then
          
           'TextBoxen füllen
           TextBox1 = Tabelle1.Cells(lZeile, 8).Value
           TextBox2 = Tabelle1.Cells(lZeile, 3).Value
'            ComboBox2 = Tabelle1.Cells(lZeile, 4).Value
           TextBox4 = Tabelle1.Cells(lZeile, 5).Value
           TextBox5 = Tabelle1.Cells(lZeile, 6).Value
           TextBox6 = Tabelle1.Cells(lZeile, 1).Value
           TextBox7 = Tabelle1.Cells(lZeile, 7).Value
'            ComboBox1 = Tabelle1.Cells(lZeile, 3).Value
           IDZeile = lZeile
           Tabelle1.Rows(lZeile).Interior.ColorIndex = 3
           AktualisiereKunden

           Exit Sub 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
        End If
     Next lZeile
  End If
End Sub
Danke. Werd ich Montag testen.
Hallo,

wie gesagt, danke.

Aber habe daraus 

Code:
Tabelle1.Rows(lZeile).select

gemacht. Da die Farbliche Markierung nur durch etwas Aufwand wieder entfernt werden kann.
Select ist das optimaler. Hatte beim Selber versuchen leider das ansprechen der richtigen Zeile nicht hinbekommen.