Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
664to668
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA-Suche

VBA-Suche
09.09.2005 21:36:18
EFrank
Einen schönen guten Abend allerseits,
leider habe ich noch ein Problem mit meinem File
es wäre schön wenn mir jemand behilflich sein könnte.

Die Datei https://www.herber.de/bbs/user/26439.xls wurde aus Datenschutzgründen gelöscht

Wenn ich alle Comboboxen mit Werten ausfüllen kann bekomme ich auch eine Auswahl
über die Übereinstimmungen da aber nicht allen Zellen mit Werten ausgefüllt sind suche ich nach einer Lösung das ich trotzdem eine Auswahl erhalte.
Gruss
Frank

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Suche
10.09.2005 00:15:08
Herbert
hallo Frank,
da mußt du halt statt "and" "or" schreiben...
If .Cells(lngCnt, 1).Text = ComboBox1 Or _
gruß Herbert
AW: VBA-Suche
10.09.2005 09:25:35
EFrank
Guten Morgen Herbert,
vielen dank das du mir behilflich bist,
mit "or" habe ich es schon versucht aber ich glaube ich bin auf dem falschen Weg
nun werden aus allen Zeilen die Werte gesucht es sollten aber nur die in der Auswahl angezeigt werden die in einer Zeile zusammengehören.
Gruss
Frank
AW: VBA-Suche
10.09.2005 11:03:42
Herbert
hallo Frank,
deine Beschreibungen werden immer dürftiger...
was ist an diesem Ergebnis falsch ?
Userbild
gruß Herbert
Anzeige
AW: VBA-Suche
10.09.2005 14:01:56
EFrank
Hallo Herbert,
schön das Du noch da bist
in der Ausgabe erhalte ich AS3 und AS7
AS3 wäre OK aber AS7 wäre doch falsch.

Private Sub CommandButton1_Click()
ComboBox5.Clear
TextBox1 = ""
Dim lngCnt&
ComboBox4.Clear
With Sheets("Tabelle1")
For lngCnt = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(lngCnt, 1).Text = ComboBox1 Or _
.Cells(lngCnt, 2).Text = ComboBox2 Or _
.Cells(lngCnt, 3).Text = ComboBox3 Or _
.Cells(lngCnt, 4).Text = ComboBox4 Then
ComboBox5.AddItem .Cells(lngCnt, 5).Text
End If
Next
End With
End Sub

Gruss
Frank
Anzeige
AW: VBA-Suche
10.09.2005 16:06:23
Herbert
hallo Frank,
das hast du etwas falsch verstanden...
dieses von mir dargestellte Ergebnis erhälts du logischerweise so:
If .Cells(lngCnt, 1).Text = ComboBox1 And _
.Cells(lngCnt, 2).Text = ComboBox2 And _
.Cells(lngCnt, 3).Text = ComboBox3 And _
ich frage mich,wo dann dein Problem liegt,
wenn AS3 OK ist ?!
gruß Herbert
AW: VBA-Suche
10.09.2005 16:23:55
EFrank
Hallo Herbert,
Sorry jeder Anfang ist schwer
wenn ich z.B. als Vorgabe 1xBuchse 4xBohrungen 3xAusschnitt = AS6 wäre OK
wenn ich nun als Vorgabe nur 3xAuschnitt habe dann bekomme ich keine Auswahl
im Moment dient dieses File nur zum durchsuchen der Tabelle und wenn eine Übereinstimmung
in einer Zeile gefunden wird sollte mir dies in der Auswahl angezeigt werden.
Vielen Dank
Frank
Anzeige
AW: VBA-Suche
10.09.2005 18:53:36
EFrank
Hi Herbert,
ich möchte Dir mal genauer mitteilen für was ich dieses File benötige.
Wir haben in unserem Sortiment viele Frontplatten ohne Artikel-Nummer
aber mit teilweise gleicher Bearbeitung nun kann es nach einer gewissen Zeit
sein das eine neue Platte gefertigt werden muss die ähnlich ist wie eine die schon
in unserem Sortiment vorhanden ist da keine Nummern vergeben sind möchte ich nun
mithilfe der Anzahl der Bearbeitungen (Buchsen, Bohrungen 3,0, Ausschnitten) herausfinden
welche schon einmal gefertigte Platte hier am ähnlichsten ist.
z.B.: Platte die gefertigt werden sollte hat 3 Buchsen 5 Bohrungen und 3 Auschnitte
dies möchte ich nun in die Comboboxen eintragen und dann sollten mir nur die Zeilen ausgegeben werden die diese Werte im Gesamten beinhalten es sollte aber auch möglich sein
nur nach einem Namen (Artikelbezeichung den ich zufällig noch von einer alten Platte im Kopf habe) oder nach nur Buchsen usw. zu suchen. Mehr oder weniger also mit einer oder
mehreren Comboboxen suchen.
Entschuldige bitte diesen Roman es ist schwierig etwas zu erklären an dem man fast
verzweifelt das ganze wäre auch geeignet für Access aber später möchte ich hier
noch Berechnungen mit einfügen.
In hoffnungsvoller Erwartung
Ein endloser Grübler
Anzeige
AW: VBA-Suche
10.09.2005 20:20:05
Herbert
nochmals konkret nachgefragt...
d.h.es sollen jene Bezeichnungen aus Spalte "E" ausgegeben werden,
wo alle 3 Spalten übereinstimmen, wo zwei Spalten übereinstimmen
und wo eine der drei Spalten übereinstimmt ?
ist das so korrekt ?
gruß Herbert
AW: VBA-Suche
10.09.2005 21:15:52
Herbert
ich habe jetzt einen Ansatz der dieses Ergebnis bringt...
Userbild
in der combo "Name" stehen die Namen aus Spalte "A"..
ist das korrekt ?
gruß Herbert
AW: VBA-Suche
11.09.2005 10:20:44
EFrank
Guten Morgen Herbert,
ja genau so allerdings sollte auch Spalte A als vierte mit einbezogen sein.
Da Spalte E mit Hyperlink's versehen sind, möchte ich in der Ausgabe ein
Ergebniss auswählen um ein bmp-File (Zeichnung) anzusehen.
Dann wäre dieses File perfekt und ich hätte Dank dir und dem Forum viel dazugelernt
Schön das es noch Menschen gibt die anderen weiterhelfen.
PS: "Und wenn man meint es geht nicht mehr kommt von irgendwo ein Lichtlein her."
Viele Grüsse
Frank
Anzeige
AW: VBA-Suche
11.09.2005 15:28:59
Herbert
dann probier einmal:


Private Sub CommandButton3_Click()
Dim i&, z%, r%
ComboBox5.Clear
ComboBox1.Clear
 
With Sheets("Tabelle1")
      For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
          If .Cells(i, 2).Text <> "" Then
            If .Cells(i, 2).Text = ComboBox2 Then
               ComboBox1.AddItem .Cells(i, 1).Text
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
      
         If .Cells(i, 3).Text <> "" Then
            If .Cells(i, 3).Text = ComboBox3 Then
                If .Cells(i, 2).Text <> ComboBox2 Or _
                .Cells(i, 2).Text = "" Then
               ComboBox1.AddItem .Cells(i, 1).Text
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
      End If
      
         If .Cells(i, 4).Text <> "" Then
            If .Cells(i, 4).Text = ComboBox4 Then
               If .Cells(i, 2).Text <> ComboBox2 Or _
               .Cells(i, 2).Text = "" And _
               .Cells(i, 3).Text <> ComboBox3 Or _
               .Cells(i, 3).Text = "" Then
               ComboBox1.AddItem .Cells(i, 1).Text
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
        End If
    Next
End With
End Sub

     gruß Herbert
Anzeige
AW: VBA-Suche
11.09.2005 18:53:22
EFrank
Hallo Herbert,
Super, ich habe jetzt noch versucht die Combobox1 in deinen Code einzubauen
leider erfolglos!!!!!
Wenn ich nur in der Combobox1 einen Buchstaben eingebe bekomme ich kein Ergebnis.
An was liegt es eigentlich das mein Cursor beim öffnen der Userform immer in der Combobox2 steht statt in der 1?
Geht das eigentlich mit den Hyperlink's?
Fragen über Fragen es wird Zeit das im Ende September mein VBA-Kurs beginnt
dann kann ich dem Forum sicherlich auch behilflich sein.
Gruss
Frank
AW: VBA-Suche
11.09.2005 19:23:28
Herbert
hallo Frank,
als Suchkriterium ist combo1 in dem Code nicht vorgesehen,
ich dachte,du willst nur nach Spalte B,C,und D suchen
und A und E ausgeben...
gruß Herbert
Anzeige
AW: VBA-Suche
11.09.2005 19:30:35
Herbert
teste es einmal:


Private Sub CommandButton3_Click()
Dim i&, z%, r%
ComboBox5.Clear
ComboBox1.Clear
 
With Sheets("Tabelle1")
      For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
          
          If .Cells(i, 1).Text <> "" Then
            If .Cells(i, 1).Text = ComboBox1 Then
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
         
          If .Cells(i, 2).Text <> "" Then
            If .Cells(i, 2).Text = ComboBox2 Then
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
      
         If .Cells(i, 3).Text <> "" Then
            If .Cells(i, 3).Text = ComboBox3 Then
                If .Cells(i, 2).Text <> ComboBox2 Or _
                .Cells(i, 2).Text = "" Then
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
      End If
      
         If .Cells(i, 4).Text <> "" Then
            If .Cells(i, 4).Text = ComboBox4 Then
               If .Cells(i, 2).Text <> ComboBox2 Or _
               .Cells(i, 2).Text = "" And _
               .Cells(i, 3).Text <> ComboBox3 Or _
               .Cells(i, 3).Text = "" Then
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
        End If
    Next
End With
End Sub

     gruß Herbert
Anzeige
AW: VBA-Suche
11.09.2005 20:21:10
EFrank
Hallo Herbert,
passt soweit,
wenn ich aber z.B. in Buchsen einen Wert 5 eingebe und suchen lasse erhalte ich
in der Ausgabe AS1 und AS4 ist auch korrekt wenn ich nun zusätzlick in Bohrung einen Wert 3 eingebe erhalte ich die gleichen Werte was wiederum korrekt ist nur halt doppelt
um dies zu verhindern wollte ich einen Button "Löschen" der mir vor einer neuen Suche
alle Comboboxen löscht aber es wird nach meiner Änderung nur die Combobox 5 gelöscht?
https://www.herber.de/bbs/user/26474.xls
Viele Grüsse
Frank
Anzeige
AW: VBA-Suche
11.09.2005 21:39:29
Herbert
du hast ja
"ComboBox5.Clear"
nicht aktiviert...
darum hast du doppelte...
gruß Herbert
AW: VBA-Suche
12.09.2005 09:59:54
EFrank
Hallo Herbert,
dies habe ich zwischenzeitlich wieder aktiviert
funktioniert wenn ich z.B. in Combobox1 ein A eingebe erhalte ich AS1 und AS4
wenn ich wieder suche drücke erhalte ich wieder einmal AS1 und AS4 ist korrekt
wenn ich aber in der Combobox2 zustätzlich eine 5 eingebe erhalte ich zweimal
AS1 und AS4 kann man dies umgehen?
Gruss
Frank
AW: VBA-Suche
12.09.2005 11:07:27
Herbert
hallo Frank,
ich habe das mit der Spalte A nicht ganz durchgetestet,
ich werde es mir abends anschauen...
gruß Herbert
AW: VBA-Suche
12.09.2005 17:38:06
Herbert
eine ganz andere Version,sollte funktionieren...


Private Sub CommandButton2_Click()
Dim i&, z%, r%
ComboBox5.Clear
ComboBox1.Clear
 
With Sheets("Tabelle1")
      For i = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
          If .Cells(i, 1).Text <> "" Then
            If .Cells(i, 1).Text = ComboBox1 Then
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
         
         If .Cells(i, 2).Text <> "" Then
            If .Cells(i, 2).Text = ComboBox2 Then
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
      
         If .Cells(i, 3).Text <> "" Then
            If .Cells(i, 3).Text = ComboBox3 Then
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
         If .Cells(i, 4).Text <> "" Then
            If .Cells(i, 4).Text = ComboBox4 Then
               ComboBox5.AddItem .Cells(i, 5).Text
            End If
         End If
    Next
End With
With ComboBox5
  z = 0
    Do While z < .ListCount
      r = z + 1
      Do Until r > .ListCount - 1
        If .List(r) = .List(z) Then
          .RemoveItem r
        Else
          r = r + 1
        End If
      Loop
      z = z + 1
   Loop
End With
End Sub

     gruß Herbert
AW: VBA-Suche
12.09.2005 19:13:43
EFrank
Hallo Herbert,
funtioniert jetzt einwandfrei dieses Problem wäre gelöst.
Vielleicht funktioniert dies auch noch mit den beiden restlichen Problemen?
Warum steht denn der Cursor immer in der Combobox2 statt in 1?
Wäre das noch möglich mit den Hyperlink's, also wenn ich in der Auswahl
z.B. AS3 anklicke das der Hyperlink den ich in der Tabelle eingab auch
aufgerufen werden kann z.B: ein bmp-File schön wäre ein Miniaturbild
Vielen Dank für deinen Bemühungen
Gruss
Frank
was wasscheinlich nicht möglich ist.
AW: VBA-Suche
12.09.2005 21:02:33
Herbert
hallo Frank,
der Cursor steht deswegen in Combo2 weil die Aktivierreihenfolge
so festgelegt ist...
Userbild
zum anderen Problem solltest du einen neuen Beitrag eröffnen,
und noch etwas genauer beschreiben, als du es hier getan hast...
gruß Herbert
AW: VBA-Suche
13.09.2005 08:41:22
EFrank
Guten Morgen Herbert,
erstmal einen recht herzlichen Dank für deine ausdauernde Bemühung
dadurch habe ich wieder einiges dazugelernt das mir in Zukunft sicherlich
sehr hilfreich ist.
Zwecks den Hyperlink's werde ich im Forum einen neuen Beitrag schreiben.
Eine letzte Frage hätte ich da aber noch:
Ich möchte einen zweiten Button einbauen der mir nur die Zeile(n) ausgibt
die genau übereinstimmen.
Eingabe z.B:
Combobox1: A
Combobox2: 5
Combobox3: 3
Combobox4: 1
Auswahl = AS1
ist dies ohne großen Aufwand noch machbar?
Gruss
Frank
AW: VBA-Suche
13.09.2005 09:38:36
Herbert
Guten Morgen,
da brauchst du ja nur die Version aus deinem zweiten Beitrag nehmen...
und statt "Or" "And"...

Private Sub CommandButton1_Click()
Dim lngCnt&
ComboBox5.Clear
With Sheets("Tabelle1")
For lngCnt = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(lngCnt, 1).Text = ComboBox1 And _
.Cells(lngCnt, 2).Text = ComboBox2 And _
.Cells(lngCnt, 3).Text = ComboBox3 And _
.Cells(lngCnt, 4).Text = ComboBox4 Then
ComboBox5.AddItem .Cells(lngCnt, 5).Text
End If
Next
End With
End Sub

gruß Herbert
AW: VBA-Suche
13.09.2005 09:50:11
EFrank
Hi Herbert,
erst denken dann schreiben!
Danke für den Hinweis
Gruss
Frank
AW: VBA-Suche
13.09.2005 15:33:26
EFrank
Hallo Herbert,
leider erbarmt sich keiner für das Problem mit den Hyperlink's
hast du keine Idee?
Gruss
Frank
Hyperlinks aus Combo
13.09.2005 22:19:40
Herbert
eine Idee ist etwas zuwenig...
probier das:


Private Sub ComboBox5_Change()
Dim i%
On Error Resume Next
UserForm1.Hide
With Sheets("Tabelle1")
      For i = 2 To .Cells(.Rows.Count, 5).End(xlUp).Row
        If .Cells(i, 5).Text = ComboBox5 Then
           .Cells(i, 5).Hyperlinks(i + 1).Follow NewWindow:=False, AddHistory:=True
        End If
     Next
End With
End Sub

     gruß Herbert

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige