Guten Tag allerseits, da es anscheinend keine Lösung für das Problem gibt, möchte ich mich trotzdem für die bis jetzt erhaltene Hilfe bedanken. Gruss Martin
Guten Abend allerseits, Nach langer Fehlesuche ohne Erfolg, habe ich das ganze nochmal von Grund auf neu aufgebaut. Jetzt funktioniert es, warum auch immer? Da auch einige das ganze mitverfolgt haben, werde ich es mal zur Verfügung stellen, obwohl es noch Verbesserungspotential enthällt. Dank nochmals allen, die den richtigen Weg aufgezeigt haben. Mit Freundlichen Grüssen Martin
Guten Abend ihr fleissigen Helfer Ich suche noch eine Lösung für folgendes Problem.
Wenn intSp85 = Application.Match("#Gen_16", Rows(6), 0) bis intSp89 = Application.Match("#Gen_20", Rows(6), 0) nicht vorhanden sind erscheint eine Fehlermeldung: Laufzeitfehler '13' Typen unverträglich.
Wie kann ich den Fehler mit einer MsgBox abfangen? Habe es leider ohne Erfolg folgendes versucht: On Error GoTo MsgBox "Spalten nicht vorhanden, bitte ergänzen"
ich hatte das schon nicht grundlos damals mit der Methode .Find angelegt. Damit einen Fehler aufzufangen, geht ohne On Errror über die If/Else Abfrage.
Moin! Zunächst: Ich habe mir den Thread nicht durchgelesen und werde zur Lösung wenig beitragen.
Nur zur letzten Frage: Application.Match geht auch ohne Fehlerbehandlung. Der "Trick" ist, das Ergebnis in eine Variant-Variable zu schreiben. Ein Variant kann nämlich auch einen Fehlerwert aufnehmen.
Grob also so:
Dim varSp85 As Variant varSp85 = Application.Match("#Gen_16", Rows(6), 0) If IsError(varSp85) Then MsgBox "Spalten nicht vorhanden, bitte ergänzen"
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)
daran hatte ich nicht gedacht. Für Martin, da er deutlich älteres Semester ist und er eine Chance hat das entsprechend zu ändern, dann so:
Code:
Dim varSp85 As Variant
If IsError(varSp85) Then MsgBox "Spalten nicht vorhanden, bitte ergänzen" Else varSp85 = Application.Match("#Gen_16", Rows(6), 0) End If
@ Martin das musst du dann mit jeder Variable zu Bestimmung der Spaltennummer machen. Wenn es zum Fehler kommt, steht allerdings dann in der Variable der Fehler drin. Was das für Auswirkungen auf das gesamte Projekt hat, kann ich von hier aus nicht beurteilen. Das musst du einfach mal ausprobieren.
Wobei ich mit meinen 59 Lenzen ja als Küken durchgehe. @Egon12: Nö! Du musst die Variable erst füllen! Ob man dann auf IsError() oder IsNumeric() prüft, ist egal und ändert nur ein wenig die Programmlogik:
Dim varSp85 As Variant varSp85 = Application.Match("#Gen_16", Rows(6), 0) If IsNumeric(varSp85) Then
'mach was mit der Spaltennummer Else MsgBox "Spalten nicht vorhanden, bitte ergänzen" Exit Sub End If
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)
17.12.2022, 13:02 (Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2022, 13:11 von luna101.)
Guten Tag Uwe, danke für Deine Hilfe. werde es mal testen. Schönes Wochenende Wünscht Martin Guten Tag Ralf, danke für Deine Hilfe. Da hab ich ja mal einiges zu testen. Wünsche ein schönes Wochende. Gruss Martin
PS: Nimms nicht so tragisch Du bist im besten Mannesalter. Ich hingegen bin 79 und zähle nach der heutigen Umgangssprache zur Gruppe Grufti's
@Ralf ich bin auch deutlich älter als du. So lang es noch im Kopf klappt und die Füße einen tragen ist doch alles gut - denke ich mal. Du hast natürlich recht.