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

on Error Behandlung

Forumthread: on Error Behandlung

on Error Behandlung
02.08.2019 21:20:13
Gert
Moin Forum,
eine Excel Tabelle soll, unter Benutzung von in der Tabelle genannten Daten, die Tabelle als pdf in einer Kundenakte ablegen.
Das funktioniert prima.... solange die Kundennamen keine Umlaute haben. Mein Makro streikt also _
beim Mitglied "Müller", aber nicht bei "Meier".

Sub Print_pdf()
' Print_pdf Makro
Dim wks As Worksheet
For Each wks In ActiveWindow.SelectedSheets
With wks
.Select
'Laufwerk ist der Laufwerksbuchstabe, der nicht immer C ist ist...
Dim Laufwerk As String
Laufwerk = Cells(1, 4).Value
'Ordner setzt sich zusammen aus "Familienname" ", " "Vorname" "Mitgliedsnummer"
Dim Ordner As String
Ordner = Cells(14, 18)
Mitgliedsnummer = Cells(9, 9).Value
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Laufwerk & ":\Verein\Mitglieder A-Z Schriftverkehr\" & Ordner & Format(Date, " _
YYYYMMDD") & " " & .Name & " " & Format(Mitgliedssnummer, "0000") & ".pdf", Quality:= _
xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End With
Next wks
End Sub

Wie müßte das Makro aussehen, wenn es nun um eine zusätzliche "on Error Routine" ergänzt wird, die bei einem Fehler ("Müller") das pdf unter dem Verzeichnis "Sonstig" abspeichert, aus dem man dann das Dokument manuell in die Mitgliedsakte verschiebt? Meine Versuche landen im Debugger...
on Error...
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Laufwerk & ":\Verein\Mitglieder A-Z Schriftverkehr\sonstig\" & format(Date, "YYYYMMDD") & " " & .Name & " " & Format(Mitgliedsnummer, "0000") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Ich möchte vermeiden, den Herrn Müller wieder in "Mueller" umzubenennen; das sieht in Serienbriefen immer wie EDV aus den 80ern aus...
Ganz herzlichen Dank im Voraus
Gert
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: on Error Behandlung
02.08.2019 21:38:24
Daniel
Hi
bei bekannten Fehlerursachen würde ich keine OnError-Routine verwenden, sondern gezielt auf diese Fehlerursache prüfen.
Sonst hast du keine Rückmeldung mehr, wenn aus irgendeinem Grund ein anderer Fehler auftaucht.
Du brauchst ja nur zur prüfen, ob die Variable Ordner einen Umlaut enthält und wenn ja, ersetzt du sie durch "sonstig"
Ordner = Cells(14, 18)
If LCase(Ordner) like "*[äöüß]*" then Ordner = "sonstig\"
alles andere im Code wie gehabt.
Gruß Daniel
Anzeige
AW: on Error Behandlung
02.08.2019 21:54:30
Piet
Hallo Gert
was haelst du von dem kleinen Test Makro zum Austauschen/ Überspringen von Umlauten? Ist das eine Alternative nach dem Befehl:
Ordner = Cells(14, 18) - Ich denke die Grossbuchststaben tauschen bekommst du selbst hin...
Ob du austauschen willst, oder überspringen ist deine Entscheidung. Beides ist bei Excel möglich.
mfg Piet
Sub test()
Dim Ordner As String
Ordner = "Müller"
If InStr(Ordner, "ü") Then Ordner = Replace(Ordner, "ü", "ue")
If InStr(Ordner, "ö") Then Ordner = Replace(Ordner, "ö", "oe")
If InStr(Ordner, "ä") Then Ordner = Replace(Ordner, "ä", "ue")
MsgBox Ordner
End Sub
Sub test_2()
Dim Ordner As String
Ordner = "Müller": Txt = LCase(Ordner)  'Umlaute überspringen
If InStr(Txt, "ü") Or InStr(Txt, "ö") Or InStr(Txt, "ä") Then GoTo nxt
End With
nxt:  'Umlaute übrspringen
End Sub

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