Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Friedrichroda /
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ß


Opa 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


...und ich gelobe Besserung...

[-] 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
  VBA Code Fehler Thomas78 12 127 24.03.2017, 21:28
Letzter Beitrag: atilla
  Fehler ausblenden nicht anzeigen - Bedingte Formatierung? einervonvielen2013 11 115 24.03.2017, 11:25
Letzter Beitrag: WillWissen
  Excel Upgrade Fehler lkr16 5 84 21.03.2017, 10:56
Letzter Beitrag: lkr16
Question Summe trotzde Fehler(die übrigen Werte ohne Fehler)? o0Julia0o 7 129 20.03.2017, 16:32
Letzter Beitrag: o0Julia0o
  SVERWEIS gibt KEINEN Fehler aus, wenn Suchkriterium NICHT vorhanden ist einervonvielen2013 4 58 14.03.2017, 00:18
Letzter Beitrag: Jockel
Bug VBA-Fehler mit neuer Version? Lyr 11 285 27.02.2017, 16:14
Letzter Beitrag: Lyr
  VBA Fehler 400 hbboy15 5 224 16.01.2017, 16:42
Letzter Beitrag: hbboy15
  Fehler #NV in Zelle Uwe 8 230 11.01.2017, 14:29
Letzter Beitrag: Rabe
  Fehler in Formel//HILFE! Svenja94 5 243 11.11.2016, 12:23
Letzter Beitrag: Svenja94
  Ich finde den Fehler nicht Usedom 8 415 09.11.2016, 14:07
Letzter Beitrag: snb

Gehe zu:


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