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.

Userform Suche mit 2 Kriterien
#1
Hallo liebes Forum,

ich habe eine (hoffentlich) vorerst letzte Frage an euch.

Ich eine Userform die nach einer Rechnungsnummer sucht und mir anschließend verschiedene Textboxen befüllt.

PHP-Code:
Dim rZelle As Range
Dim sSuchbegriff 
As String
Dim strErsteAdr 
As String

sSuchbegriff 
Rechnung.TextBox3

With ListBox1
   
.ColumnCount 4
   
.Clear
End With

With ThisWorkbook
.Worksheets("Umsatzliste")
 
  Set rZelle = .Columns(5).Find(What:=sSuchbegriffLookat:=xlWholeLookIn:=xlValues)
 
   
   
If Not rZelle Is Nothing Then
      
'erste Fundstelle merken (verhindert Endlosschleife)
      strErsteAdr = rZelle.Address
      
      Do '
Schleife über alle Fundstellen
    
      
'In Listbox eintragen
         ListBox1.AddItem " "
         
         ListBox1.ColumnWidths = "200 Pt;100 Pt;100 Pt;100 Pt"
                           
         ListBox1.List(ListBox1.ListCount - 1, 0) = .Range("F" & rZelle.Row).Value '
Material
         ListBox1
.List(ListBox1.ListCount 11) = .Range("G" rZelle.Row).Value 'Menge
         ListBox1.List(ListBox1.ListCount - 1, 2) = .Range("H" & rZelle.Row).Value '
Einheit
         ListBox1
.List(ListBox1.ListCount 13) = .Range("I" rZelle.Row).Value 'Preis / Einheit
         ListBox1.List(ListBox1.ListCount - 1, 3) = Format(ListBox1.List(ListBox1.ListCount - 1, 3), "#,##0.00 €")
                          
      '
nächste Fundstelle aufsuchen
         Set rZelle 
= .Columns(5).FindNext(rZelle)
 
         
      Loop 
While rZelle.Address <> strErsteAdr
      
   End 
If
 
   
End With

Set rZelle 
Nothing

End Sub 
Nun kann es aber sein dass eine Rechnungsnummer von 2 verschiedenen Lieferanten benutzt wird und somit die eingetragenen Werte zusammengefügt in der Userform erscheinen.

Wie müsste ich den Code abändern, das er mir zusätzlich das Rechnungsdatum aus Textbox 4 in Spalte B vergleicht und nur bei Übereinstimmung beider Kriterien die Userform entsprechend ausfüllt?

Vielen Dank nochmals

Thomas
Antworten Top
#2
Hallo Thomas,

bei Suchen, die mehrere Treffer liefern können, schreibe ich die Ergebnisse in eine Listbox, wo ich dann die Feinauswahl treffen kann.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Thomas78
Antworten Top
#3
Hi Thomas
 
Zitat:Nun kann es aber sein dass eine Rechnungsnummer von 2 verschiedenen Lieferanten benutzt wird.
zusätzlich das Rechnungsdatum aus Textbox 4 in Spalte B vergleicht.

Ist den dann 100% ausgeschlossen das Rechnungsdatum nicht auch vom selben Tag sein kann?
Wenn ja dann evtl. so etwas vor dem Ausfüllen.

Code:
If .Range("B" & rZelle.Row).Value = Textbox Then

Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Thomas78
Antworten Top
#4
@ Klaus-Dieter

Das ist eine schöne Möglichkeit die ich in einer anderen Userform nutze. Leider nützt es mir hier nichts, da ich mit einem Doppelklick auf eine Rechnung deren Daten sehen will.
Trotzdem vielen Dank !

@ Elex

Das ist genau das was ich gestern selbst noch ausprobiert hatte, leider habe ich den Code wohl immer an der falschen Stelle eingefügt (war aber auch schon spät, ich probiers heute nochmal).

Auch dir vielen Dank !

Schöne Grüße

Thomas
Antworten Top
#5
So ich habs jetzt geändert, so dass der Kundenname verglichen wird. damit dürften Doppelanzeigen ausgeschlossen sein.

Hier noch der Code falls es wen interessiert:

PHP-Code:
With ThisWorkbook.Worksheets("Umsatzliste")
 
  Set rZelle = .Columns(5).Find(What:=sSuchbegriffLookat:=xlWholeLookIn:=xlValues)
 
   
   
If Not rZelle Is Nothing Then
      
'erste Fundstelle merken (verhindert Endlosschleife)
      strErsteAdr = rZelle.Address
     
      Do '
Schleife über alle Fundstellen
         
If .Range("D" rZelle.Row).Value <> TextBox1.Value Then                      'Wenn Kunde / Lieferant nicht gleich dann
         GoTo LastLine
         Else
         '
In Listbox eintragen
                
         ListBox1
.ColumnWidths "200 Pt;100 Pt;100 Pt;100 Pt"
 
        
         ListBox1
.AddItem " "
 
                          
            ListBox1
.List(ListBox1.ListCount 10) = .Range("F" rZelle.Row).Value 'Material
            ListBox1.List(ListBox1.ListCount - 1, 1) = .Range("G" & rZelle.Row).Value '
Menge
            ListBox1
.List(ListBox1.ListCount 12) = .Range("H" rZelle.Row).Value 'Einheit
            ListBox1.List(ListBox1.ListCount - 1, 3) = .Range("I" & rZelle.Row).Value '
Preis Einheit
            ListBox1
.List(ListBox1.ListCount 13) = Format(ListBox1.List(ListBox1.ListCount 13), "#,##0.00 €")
 
       
         
'nächste Fundstelle aufsuchen
LastLine:
         Set rZelle = .Columns(5).FindNext(rZelle)
         End If
     
      Loop While rZelle.Address <> strErsteAdr

   End If
    
End With 


Danke an alle !

Thomas
Antworten Top


Gehe zu:


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