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.


Finde den Fehler nicht!!! ;(
#1
Hallo liebes Excelforum,


bin seit ein paar Stunden am verzweifeln denn ich finde den Fehler nicht ;(

Mit diesem Code filtere ich meine Tabelle nach bestimmten Werten die ich über eine Userform eingebe und auf Filtern(CommandButton1_Click) klicke:

Code:
Option Explicit
Private Sub CommandButton1_Click()
'    filtern
    Dim loletzte As Long
    Dim i As Integer, j As Integer
    With Sheets("Filter")
        .Cells.Clear
        j = 1
        For i = 1 To 58
            If Me.Controls("Textbox" & i) <> "" Then
                .Cells(1, j) = Me.Controls("Label" & i).Caption
                If IsNumeric(Me.Controls("Textbox" & i)) Then
                    If i = 30 Or i = 31 Or i = 32 Or i = 34 Or i = 52 Or i = 53 Or i = 54 Or i = 55 Then
                        If Me.Controls("ComboBox" & i) <> "" Then
                            .Cells(2, j) = Me.Controls("ComboBox" & i) & Replace(Me.Controls("Textbox" & i), ",", ".")
                            j = j + 1
                        Else
                            .Cells(2, j) = CDbl(Me.Controls("Textbox" & i))
                            j = j + 1
                        End If
                    Else
                        .Cells(2, j) = CDbl(Me.Controls("Textbox" & i))
                        j = j + 1
                    End If
                Else
                    .Cells(2, j) = "*" & Me.Controls("Textbox" & i).Text & "*"
                    j = j + 1
                End If
            End If
        Next i
        If j > 1 Then
            Sheets("produkte").Rows(1).Copy .Range("A4")
            Sheets("produkte").Range("C1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=.Range(.Cells(1, 1), .Cells(2, j - 1)), CopyToRange:=.Range(.Cells(4, 1), .Cells(4, 58)), Unique:=False
            
            loletzte = .Cells(Rows.Count, 3).End(xlUp).Row
            If loletzte <= 4 Then
                Me.ListBox2.RowSource = ""
                MsgBox "Keine Suchergebnisse!" & vbLf & vbLf _
                    & "Eingabe überprüfen oder andere Optionen für die Suche wählen."
            Else
                Me.ListBox2.RowSource = ""
                Me.ListBox2.ColumnCount = 58
                Me.ListBox2.ColumnHeads = True
                Me.ListBox2.RowSource = "Filter!" & .Range(.Cells(5, 1), .Cells(loletzte, 58)).Address
            End If
        Else
            MsgBox "Keine Filterkriterien angegeben!"
        End If
    End With
End Sub


Es werden z.B mehrere Einträge gefunden und beim Doppelklick auf einer bestimmten Zeile in der Listbox soll die Artikelnummer die sich in der Listbox in der 3. Spalte und auch im Tabellenblatt in Spalte C befindet an den "sSearch" im nächsten Code übergeben werden:


Code:
Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim i As Long
    Dim sSearch As String
    Dim rngID As Range
    sSearch = Me.ListBox2  'Eintrag an die Variable übergeben
    Set rngID = ThisWorkbook.Sheets("produkte").Columns("C:C").Find(What:=sSearch, LookAt:=xlWhole, LookIn:=xlValues) 'In Spalte A nach dem Wert in der Variable suchen und festhalten
    i = rngID.Row
  
       frmArtSuch.Hide
       ArtikelDB.Show
       With ThisWorkbook.Sheets("produkte")
       ArtikelDB.TextBox3.Text = .Cells(i, 3).Value
       End With
       ArtikelDB.cmdArtikelSuchen_Click
End Sub


Nun klappt es wunderbar solange die Artikelnummer in der Spalte A steht dann wird an den sSearch die Artikelnummer aus der Spalte A übergeben aber ich möchte das die Artikelnummer aus der Spalte C übergeben wird!


Hat jemand eine Idee?


Vielen Dank
VG
Alexandra
to top
#2
Hallo,

wenn die Artikelnummer eine Zahl ist, wirst Du nie was finden, denn die Textbox gibt, wie der Name schon sagt, einen Text zurück.
Da ich weder Deine Tabelle noch sonst was kenne, hier mal ein ungetesteter Vorschlag:

Code:
Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim i As Long
    Dim sSearch As Double
    Dim rngID As Range
    sSearch = cdbl(Me.ListBox2)  'Eintrag an die Variable übergeben
    Set rngID = ThisWorkbook.Sheets("produkte").Columns("C:C").Find(What:=sSearch, LookAt:=xlWhole, LookIn:=xlValues) 'In Spalte C nach dem Wert in der Variable suchen und festhalten
    i = rngID.Row
  
       frmArtSuch.Hide
       ArtikelDB.Show
       With ThisWorkbook.Sheets("produkte")
       ArtikelDB.TextBox3.Text = .Cells(i, 3).Value
       End With
       ArtikelDB.cmdArtikelSuchen_Click
End Sub
Gruß


Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top
#3
Hallo zusammen

Edgar, Alexandra schreibt, dass sie den Wert aus der dritten Spalte einer Listbox an die
Variable übergeben möchte. Also, keine Textbox, aber hier ist auch der Denkfehler.

Mit sSearch = Me.ListBox2 wird der Wert aus der ersten Spalte der Listbox wiedergegeben.
Den Wert aus der dritten Spalte erhält man so:

ListBox2.List(ListBox2.ListIndex, 2)

Also:
sSearch =ListBox2.List(ListBox2.ListIndex, 2)

Da der Filtercode wahrscheinlich aus einer meiner Beispielmappen ist, gehe ich davon aus, dass
hier eine mehrspaltige und auch so eingestellte Listbox vorliegt.
Gruß Atilla

Excel 2007
[-] Folgende(r) 1 Benutzer sagt Danke an atilla für diesen Beitrag:
cysu11
to top
#4
Hallo Atilla,


vielen Dank so funktioniert es auch:

sSearch = Me.ListBox2.Column(2)

19

Schönen Abend noch
LG
Alexandra
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Fehler in Formel//HILFE! Svenja94 5 83 11.11.2016, 12:23
Letzter Beitrag: Svenja94
  Ich finde den Fehler nicht Usedom 8 169 09.11.2016, 14:07
Letzter Beitrag: snb
  excel summewenn, zählenwenns Fehler MeKeMo 1 78 06.11.2016, 13:00
Letzter Beitrag: shift-del
  "Fehler"-Berechnung in Excel Biologist 2 229 24.08.2016, 08:14
Letzter Beitrag: Biologist
  Fehler bei der Aktualisierung Fred B 3 273 14.07.2016, 11:22
Letzter Beitrag: Fred B
  WENN-Formel | Wo liegt der Fehler?! :-) Frantix27 14 588 29.06.2016, 11:26
Letzter Beitrag: BoskoBiati
  Fehler: Quelle nicht gefunden Chrilli13 3 515 25.06.2016, 10:38
Letzter Beitrag: schauan
  Verschachtelung Fehler Daniel Hemp 4 332 19.05.2016, 17:12
Letzter Beitrag: Kuwer
  Fehler in der Formel ignorieren (DIV/0) [2007/365] die eule 6 533 17.05.2016, 22:39
Letzter Beitrag: shift-del
  Fehler: ungültiger Eigenschaftswert fullevent 4 434 13.05.2016, 11:16
Letzter Beitrag: snb

Gehe zu:


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