Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Automatische Treffersuche in Matrix@J. Ehrensberge

Automatische Treffersuche in Matrix@J. Ehrensberge
Mirko
Hallo Sepp,
ich melde mich nochmal bezüglich des Markos für die automatische Suche in einer Matrix. Habe dein Makro soweit implementiert. Ich bekommen allerdings nach einer Weile einen Laufzeitfehler, das ich mir beim besten Willen nicht erklären kann. Vielleicht kannst Du nochmal schauen.
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim rng As Range, strFirst As String, vntRet() As Variant, lngIndex As Long
If KeyCode = 13 Then
ReDim vntRet(1 To 4, 1 To 8)  'mal für maximal 6 fundzeilen!
Set rng = Sheets("Master").Range("GD10:GD363").Find(What:=TextBox1, LookIn:=xlValues, LookAt:= _
_
xlPart, MatchCase:=False, After:=Range("GD363"))
If Not rng Is Nothing Then
strFirst = rng.Address
Do
lngIndex = lngIndex + 1
vntRet(lngIndex, 1) = rng.Text
vntRet(lngIndex, 3) = rng.Offset(0, 1).Text -> Kann man hier Zahl stet Text schreiben?  _
_
Wenn das Text ist, bekomme ich in der Zelle immer eine grüne Fehlermeldung, die dann sagt, dass  _
„Als Text gespeicherte Zahlen“
vntRet(lngIndex, 5) = rng.Offset(0, 2).Text
vntRet(lngIndex, 7) = rng.Offset(0, 3).Text
vntRet(lngIndex, 9) = rng.Offset(0, 4).Text -> Ab hier Laufzeitfehler 9: Index auß _
erhalb des gültigen Bereichs
vntRet(lngIndex, 11) = rng.Offset(0, 5).Text
vntRet(lngIndex, 13) = rng.Offset(0, 6).Text
vntRet(lngIndex, 15) = rng.Offset(0, 7).Text
Set rng = Sheets("Master").Range("GD10:GD363").FindNext(rng)
Loop While Not rng Is Nothing And strFirst  rng.Address And lngIndex 
Tausend Dank!
Mirko
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Automatische Treffersuche in Matrix@J. Ehrensberge
14.02.2011 20:48:29
Josef

Hallo Mirko,
wenn du 15 Ausgabespalten brauchst, musst du das Array halt entsprechend dimensionieren.
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  Dim rng As Range, strFirst As String, vntRet() As Variant, lngIndex As Long
  
  If KeyCode = 13 Then
    Redim vntRet(1 To 4, 1 To 15)
    
    Set rng = Sheets("Master").Range("GD10:GD363").Find(What:=TextBox1, _
      LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False, After:=Range("GD363"))
    
    If Not rng Is Nothing Then
      strFirst = rng.Address
      Do
        lngIndex = lngIndex + 1
        vntRet(lngIndex, 1) = rng.Text
        vntRet(lngIndex, 3) = rng.Offset(0, 1)
        vntRet(lngIndex, 5) = rng.Offset(0, 2)
        vntRet(lngIndex, 7) = rng.Offset(0, 3)
        vntRet(lngIndex, 9) = rng.Offset(0, 4)
        vntRet(lngIndex, 11) = rng.Offset(0, 5)
        vntRet(lngIndex, 13) = rng.Offset(0, 6)
        vntRet(lngIndex, 15) = rng.Offset(0, 7)
        
        
        Set rng = Sheets("Master").Range("GD10:GD363").FindNext(rng)
      Loop While Not rng Is Nothing And strFirst <> rng.Address And lngIndex < UBound(vntRet, 1)
    Else
      vntRet(1, 1) = "Kein Eintrag"
    End If
    
    Range("F26").Resize(UBound(vntRet, 1), UBound(vntRet, 2)) = vntRet
  End If
End Sub


Gruß Sepp

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige