Clever-Excel-Forum

Normale Version: Kopierte Zellen markieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
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"

Bitte um Hilfe. Mit freundlichen Grüssen
Martin
Hallo Martin

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.

mit Application.Match so:

Code:
On Error GoTo Fehlerausgabe
dein Code....

exit sub
Fehlerausgabe:
     MsgBox "Fehler"
End sub

Gruß Uwe
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
Hallo Ralf,

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.

Gruß Uwe
Hallo Uwe,


Zitat:da er deutlich älteres Semester ist


was willst du damit sagen?
Wobei ich mit meinen 59 Lenzen ja als Küken durchgehe. Wink
@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
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.

Gruß Uwe
Seiten: 1 2 3 4