Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1704to1708
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige