Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Listbox Code erweitern Zeile select
#1
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
Grüße Mario  Angel
Antworten Top
#2
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
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Danke. Werd ich Montag testen.
Grüße Mario  Angel
Antworten Top
#4
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.
Grüße Mario  Angel
Antworten Top


Gehe zu:


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