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.

Fehlerbehandlung bei match
#1
Hilfe,

ich brauche eine Fehlerbehandlung für meinen Matchcode:

Code:
Dim rng As Range
Dim i, j As Integer
Dim Sakt As Variant


Sub DataSearchCopy()

ActiveCell.Select
rNr = ActiveCell.Row
WSname = Cells(rNr, 3).Value
 
   With Worksheets(WSname)
       Set rng = .Range(.Cells(3, 2), .Cells(140, 2))
   End With
   
   For i = 7 To 20
      Sakt = CStr(Sheets("Analyse").Cells(i + 44, 2).Value)
      For j = 2 To 6
          rng.Cells(Application.Match(Sakt, rng, 0), j).Copy Worksheets("Analyse").Cells(i + 44, j + 1)
      Next
   Next

End Sub

Ich habe schon einige Varianten ausprobiert, aber nix funktioniert.

Also, es wird nach einem String gesucht. Sakt ist dabei der Suchbegriff. Sollte dieser Suchbegriff in rng nicht vorhanden sein, würde mir eine msgBox mit dem Inhalt " Sakt  nicht gefunden" genügen, wobei Sakt schon der Suchbegriff sein sollte.

Im Voraus vielen Dank.
Antworten Top
#2
Moin!
Edit: Falsch gelesen, … Bitte warten … … Bitte warten … … Bitte warten … … Bitte warten …
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Das Warten hat ein Ende ;)
z.B. so:


Code:
Sub X()
Dim Ergebnis&
On Error Resume Next
Ergebnis = Application.Match("3", Split("2 3 4"), 0)
On Error GoTo 0
If Ergebnis > 0 Then
 MsgBox "Fundstelle: " & Ergebnis
Else
 MsgBox "Sorry, nix gefunden!"
End If
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Danke für die superschnelle Antwort.

Wäre schön, wenn Du mir noch erklärst wie und wo ich das Ganze in meinen Code einbaue. Ich hab's jetzt mal als Sub hinten drangehängt und es mit Call aufgerufen.

Einmal hinter der Zeile:

Code:
Sakt = CStr(Sheets("Analyse").Cells(i + 44, 2).Value)

und hinter
Code:
rng.Cells(Application.Match(Sakt, rng, 0), j).Copy Worksheets("Analyse").Cells(i + 44, j + 1)

aber beide Male gibt er die msgbox MsgBox "Fundstelle: 2"aus -  auch wenn kein Fehler vorhanden ist.
Antworten Top
#5
Hallöchen,

ich nehme an, dass das innerhalb der Schleife passiert. Eventuell wäre es von Vorteil, wenn Du am Anfang der Schleife Ergebnis = 0 setzt.
Eventuell wäre es noch besser, auf err zu prüfen.
If err then ... oder If err.number ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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