Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
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

Probleme mit Excel VBA

Probleme mit Excel VBA
23.06.2022 09:30:45
Unknown_User
Hallo,
ich hoffe ihr könnt mir helfen. Ich habe globale variablen und folgende Prozedur, womit ich Textmarken in Word ansprechen möchte:

'Word Dokument erstellen, ausfüllen, speichern, Bilder hinzufügen, mailen
Sub Create()
Dim newTextLink As String, newTextGrund
Set wks = ThisWorkbook.Worksheets("Tabelle1")
'Textfelder in Word zu Zellen in Excel zuordnen
bez = wks.Range("bez").Column
wkz = wks.Range("wkz").Column
fanr = wks.Range("fanr").Column
kd = wks.Range("kd").Column
fehler = wks.Range("fehler").Column
ursache = wks.Range("ursache").Column
stck = wks.Range("stck").Column
bearbeiter = wks.Range("bearbeiter").Column
mkurz = wks.Range("mkurz").Column
mlang = wks.Range("mlang").Column
zuständig = wks.Range("zuständig").Column
entsch = wks.Range("entsch").Column
entscheider = wks.Range("entscheider").Column
wirksam = wks.Range("wirksam").Column
start = wks.Range("start").Column
weitere = wks.Range("weitere").Column
abschlussd = wks.Range("abschlussd").Column
lastsigned = wks.Range("lastsigned").Column
endemdate = wks.Range("endemdate").Column
pverant = wks.Range("pverant").Column
fm = wks.Range("fm").Column
dstart = wks.Range("dstart").Column
state = wks.Range("state").Column
lastperson = wks.Range("lastperson").Column
stückzahl_a = wks.Range("stückzahl_a").Column
tstart = wks.Range("tstart").Column
Zeile = ActiveCell.Row
d = wks.Cells(Zeile, dstart)
t = wks.Cells(Zeile, tstart).Text
'Zuweisung Pfad für interne Fehlermeldungen
Path = "Q:\QS_Baecker\Interne Fehlererfassung\" & Year(Now) & "\"
'Dateinamen Worddokument aus Excel-Zellen erzeugen
aName = wks.Cells(Zeile, 1).Value & "-" & wks.Cells(Zeile, bez) & ".docx"
'prüfen, ob ein Dateiordner mit aktuellem Jahr vorhanden, ansonsten anlegen
If Dir(Path, vbDirectory) = "" Then
MkDir (Path)
End If
'Sub um / durch - ersetzen (benötigt für Zelle mit Artikelbezeichnung)
Call ReplaceSign
'Dateidefinition aus Dateipfad und Dateiname
File = Dir(Path & aName)
'prüfen, ob bereits eine Fehlermeldung angelegt wurde, wenn nicht neues Dokument aus Vorlage erstellen
Select Case File
Case Is = ""
Path = "\\aps\pak_daten\QM-Dokumentation\4 Formblätter\"
File = Dir(Path & "FB 6-11_Interne_Fehlermeldung_*.docx")
GoTo FileCheck
Case Else
FileCheck:
'prüfen ob Vorlage/interne Fehlermeldung bereits geöffnet, wenn nicht, Hinweis ausgeben
If IsFileOpen(Path & File) Then
UserForm2.Show
Exit Sub
Else
'Prüfen ob Word gestartet ist und ggf. öffnen
On Error Resume Next
Set Wdoc = GetObject(Path & File)
Set wrd = Wdoc.Application
If Err.Number = 429 Then
Err.Clear
Set wrd = CreateObject("Word.Application")
Wdoc = wrd.Documents.Open(Path & File)
If Err.Number = 429 Then
Err.Clear
MsgBox "Es konnte nicht auf Word zugegriffen werden! Vielleicht ist Word nicht installiert!", vbExclamation, "Fehler beim Zugriff auf MS Word"
End If
End If
On Error GoTo 0
With wrd
.Visible = True
.Activate
'.ScreenUpdating = False
End With
'Textmarken in Word ansprechen und Excel-Zellen zuordnen
ReSetBookmark Wdoc, TMName:="reklanr", TMInhalt:=wks.Cells(Zeile, 1).Value & "-" & Year(Now)
'ReSetBookmark Wdoc, TMName:="date", TMInhalt:=d & " / " & t
'ReSetBookmark Wdoc, TMName:="bez", TMInhalt:=wks.Cells(Zeile, bez).Value
'ReSetBookmark Wdoc, TMName:="wkz", TMInhalt:=wks.Cells(Zeile, wkz).Value
'ReSetBookmark Wdoc, TMName:="ordernr", TMInhalt:=wks.Cells(Zeile, fanr).Value
'ReSetBookmark Wdoc, TMName:="kd", TMInhalt:=wks.Cells(Zeile, kd).Value
'ReSetBookmark Wdoc, TMName:="fehler", TMInhalt:=wks.Cells(Zeile, fehler).Value
'ReSetBookmark Wdoc, TMName:="ursache", TMInhalt:=wks.Cells(Zeile, ursache).Value
'ReSetBookmark Wdoc, TMName:="stck", TMInhalt:=wks.Cells(Zeile, stck).Value
'ReSetBookmark Wdoc, TMName:="bearbeiter", TMInhalt:=wks.Cells(Zeile, bearbeiter).Value
'ReSetBookmark Wdoc, TMName:="mkurz", TMInhalt:=wks.Cells(Zeile, mkurz).Value
'ReSetBookmark Wdoc, TMName:="mlang", TMInhalt:=wks.Cells(Zeile, mlang).Value
'ReSetBookmark Wdoc, TMName:="zuständig", TMInhalt:=wks.Cells(Zeile, zuständig).Value
'ReSetBookmark Wdoc, TMName:="entsch", TMInhalt:=wks.Cells(Zeile, entsch).Value
'ReSetBookmark Wdoc, TMName:="entscheider", TMInhalt:=wks.Cells(Zeile, entscheider).Value
'ReSetBookmark Wdoc, TMName:="wirksam", TMInhalt:=wks.Cells(Zeile, wirksam).Value
'ReSetBookmark Wdoc, TMName:="start", TMInhalt:=wks.Cells(Zeile, start).Value
'ReSetBookmark Wdoc, TMName:="weitere", TMInhalt:=wks.Cells(Zeile, weitere).Value
'ReSetBookmark Wdoc, TMName:="abschlussd", TMInhalt:=wks.Cells(Zeile, abschlussd).Value
'ReSetBookmark Wdoc, TMName:="lastsigned", TMInhalt:=wks.Cells(Zeile, lastsigned).Value
'ReSetBookmark Wdoc, TMName:="endemdate", TMInhalt:=wks.Cells(Zeile, endemdate).Value
'ReSetBookmark Wdoc, TMName:="pverant", TMInhalt:=wks.Cells(Zeile, pverant).Value
'ReSetBookmark Wdoc, TMName:="stückzahl_a", TMInhalt:=wks.Cells(Zeile, stückzahl_a).Value
'wrd.WindowState = 1
'Dokumenten-Link mit Erstellungsjahr in Excel-Zelle eintragen
Call AddLink
'Excel-Dokument speichern
ActiveWorkbook.Save
'Word Dokument speichern
Wdoc.SaveAs "Q:\QS_Baecker\Interne Fehlererfassung\" & Year(Now) & "\" & aName
'aufräumen
Wdoc.Close
wrd.Quit
Set Wdoc = Nothing
Set wrd = Nothing
End If
End Select
Set wks = Nothing
End Sub
Bei Resetbookmark erhalte ich den Fehler 91, Objektvariable oder With-Blockvariable nicht festgelegt.
Ich verstehe das gerade nicht.

'Textmarken in Word neu setzen
Public Sub ReSetBookmark(ByVal Wdoc As Object, ByVal TMName As String, ByVal TMInhalt As String)
Dim bm As Object
Dim rng As Object
On Error Resume Next
If .Bookmarks.Exists(TMName) Then
Set bm = .Bookmarks(TMName)
Set rng = bm.Range
rng.Text = TMInhalt
.Bookmarks.Add Name:=TMName, Range:=rng
End If
Set rng = Nothing
Set bm = Nothing
End Sub
Ich habe in einem anderen Excel-Dokument folgenden Code:

'Word Dokument erstellen, ausfüllen, speichern, Bilder hinzufügen, mailen
Sub Create()
Dim newTextLink As String, newTextGrund
Set wks = ThisWorkbook.Worksheets("Tabelle1")
'Textfelder in Word zu Zellen in Excel zuordnen
bez = wks.Range("bez").Column
wkz = wks.Range("wkz").Column
fanr = wks.Range("fanr").Column
kd = wks.Range("kd").Column
fehler = wks.Range("fehler").Column
ursache = wks.Range("ursache").Column
stck = wks.Range("stck").Column
bearbeiter = wks.Range("bearbeiter").Column
mkurz = wks.Range("mkurz").Column
mlang = wks.Range("mlang").Column
zuständig = wks.Range("zuständig").Column
entsch = wks.Range("entsch").Column
entscheider = wks.Range("entscheider").Column
wirksam = wks.Range("wirksam").Column
start = wks.Range("start").Column
weitere = wks.Range("weitere").Column
abschlussd = wks.Range("abschlussd").Column
lastsigned = wks.Range("lastsigned").Column
endemdate = wks.Range("endemdate").Column
pverant = wks.Range("pverant").Column
fm = wks.Range("fm").Column
dstart = wks.Range("dstart").Column
state = wks.Range("state").Column
lastperson = wks.Range("lastperson").Column
stückzahl_a = wks.Range("stückzahl_a").Column
tstart = wks.Range("tstart").Column
Zeile = ActiveCell.Row
'Zuweisung Pfad für interne Fehlermeldungen
Path = "Q:\QS_Baecker\Interne Fehlererfassung\" & Year(Now) & "\"
'Word-Dokument-Namen aus Excel-Zellen erzeugen
aName = wks.Cells(Zeile, 1).Value & "-" & wks.Cells(Zeile, bez) & ".docx"
'prüfen, ob ein Dateiordner mit aktuellem Jahr vorhanden, ansonsten anlegen
If Dir(Path, vbDirectory) = "" Then
MkDir (Path)
End If
'Sub um / durch - ersetzen (benötigt für Zelle mit Artikelbezeichnung)
Call ReplaceSign
'Dateidefinition aus Dateipfad und Dateiname
File = Dir(Path & aName)
'prüfen, ob bereits eine Fehlermeldung angelegt wurde, wenn nicht neues Dokument aus Vorlage erstellen
Select Case File
Case Is = ""
Path = "\\aps\pak_daten\QM-Dokumentation\4 Formblätter\"
File = Dir(Path & "FB 6-11_Interne_Fehlermeldung_*.docx")
GoTo FileCheck
Case Else
FileCheck:
'prüfen ob Vorlage/interne Fehlermeldung bereits vorhanden, wenn nicht, Hinweis ausgeben
If IsFileOpen(Path & File) Then
UserForm2.Show
Exit Sub
Else
'Word-Dokument erstellen und Textmarken füllen
Set wrd = CreateObject("Word.Application")
d = wks.Cells(Zeile, dstart)
t = wks.Cells(Zeile, tstart).Text
Call Sleep(100)
wrd.Visible = True
wrd.Activate
Set Wdoc = wrd.Documents.Open(Path & File)
'Textmarken in Word ansprechen und Excel-Zellen zuordnen
ReSetBookmark Wdoc, TMName:="reklanr", TMInhalt:=wks.Cells(Zeile, 1).Value & "-" & Year(Now)
ReSetBookmark Wdoc, TMName:="date", TMInhalt:=d & " / " & t
ReSetBookmark Wdoc, TMName:="bez", TMInhalt:=wks.Cells(Zeile, bez).Value
ReSetBookmark Wdoc, TMName:="wkz", TMInhalt:=wks.Cells(Zeile, wkz).Value
ReSetBookmark Wdoc, TMName:="ordernr", TMInhalt:=wks.Cells(Zeile, fanr).Value
ReSetBookmark Wdoc, TMName:="kd", TMInhalt:=wks.Cells(Zeile, kd).Value
ReSetBookmark Wdoc, TMName:="fehler", TMInhalt:=wks.Cells(Zeile, fehler).Value
ReSetBookmark Wdoc, TMName:="ursache", TMInhalt:=wks.Cells(Zeile, ursache).Value
ReSetBookmark Wdoc, TMName:="stck", TMInhalt:=wks.Cells(Zeile, stck).Value
ReSetBookmark Wdoc, TMName:="bearbeiter", TMInhalt:=wks.Cells(Zeile, bearbeiter).Value
ReSetBookmark Wdoc, TMName:="mkurz", TMInhalt:=wks.Cells(Zeile, mkurz).Value
ReSetBookmark Wdoc, TMName:="mlang", TMInhalt:=wks.Cells(Zeile, mlang).Value
ReSetBookmark Wdoc, TMName:="zuständig", TMInhalt:=wks.Cells(Zeile, zuständig).Value
ReSetBookmark Wdoc, TMName:="entsch", TMInhalt:=wks.Cells(Zeile, entsch).Value
ReSetBookmark Wdoc, TMName:="entscheider", TMInhalt:=wks.Cells(Zeile, entscheider).Value
ReSetBookmark Wdoc, TMName:="wirksam", TMInhalt:=wks.Cells(Zeile, wirksam).Value
ReSetBookmark Wdoc, TMName:="start", TMInhalt:=wks.Cells(Zeile, start).Value
ReSetBookmark Wdoc, TMName:="weitere", TMInhalt:=wks.Cells(Zeile, weitere).Value
ReSetBookmark Wdoc, TMName:="abschlussd", TMInhalt:=wks.Cells(Zeile, abschlussd).Value
ReSetBookmark Wdoc, TMName:="lastsigned", TMInhalt:=wks.Cells(Zeile, lastsigned).Value
ReSetBookmark Wdoc, TMName:="endemdate", TMInhalt:=wks.Cells(Zeile, endemdate).Value
ReSetBookmark Wdoc, TMName:="pverant", TMInhalt:=wks.Cells(Zeile, pverant).Value
ReSetBookmark Wdoc, TMName:="stückzahl_a", TMInhalt:=wks.Cells(Zeile, stückzahl_a).Value
wrd.WindowState = 1
'Application.ScreenUpdating = True
'Dokumenten-Link mit Erstellungsjahr in Excel-Zelle eintragen
Call AddLink
'Excel-Dokument speichern
ActiveWorkbook.Save
'Word Dokument speichern
Wdoc.SaveAs "Q:\QS_Baecker\Interne Fehlererfassung\" & Year(Now) & "\" & aName
'aufräumen
Wdoc.Close
wrd.Quit
Set Wdoc = Nothing
Set wrd = Nothing
End If
End Select
End Sub
Und dieser läuft durch. Ich habe vielleicht einen Fehler eingebaut bei der Prüfung, ob das Word bereits geöffnet ist.
Aber leider verstehe ich nicht, wie ich es machen muss, damit es funktioniert.
Ich hoffe es kann jemand ohne Datei-Upload verstehen, sonst muss ich die komplett überarbeiten wegen des Datenschutzes.
Danke im Voraus.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Excel VBA
23.06.2022 09:49:53
MCO
Moin!
weist der Variabel Wdoc ohne SET einen Wert zu, damit ist es kein Objekt mehr.
Übernimm wie in der anderen Tabelle:

Set Wdoc = wrd.Documents.Open(Path & File)
Gruß, MCO
AW: Probleme mit Excel VBA
23.06.2022 09:57:46
Unknown_User
Hallo MCO,
das hatte ich bereits gesehen und geändert. leider bleibt der Code noch immer an der gleichen Stelle stehen.
Und wenn ich aus dem alten Dokument die alte Prozedur rüber kopiere, bleibt er auch hängen.
Ich habe das Gefühl, dass ich da irgendwas zerschossen habe, was man nicht sehen kann.
Vielleicht irgendwas kaputt :-(
AW: Probleme mit Excel VBA
23.06.2022 10:29:15
MCO
Dann solltest du die Datei posten, nicht den Code.
Wer soll das denn nachbauen?!
Gruß, MCO
Anzeige
AW: Probleme mit Excel VBA
23.06.2022 12:08:21
Unknown_User
Hallo,
ich dachte, Resetbookmark muss ggf. direkt dahinter stehen, wenn das Dokument zugewiesen wird.
Setze ich nun das ReSetBookmark hier hin, dann gibt es keine Fehlermeldung, aber es werden auch keine Textmarken gefüllt:

    'Prüfen ob Word gestartet ist und ggf. öffnen
On Error Resume Next
Set Wdoc = GetObject(Path & File)
Set wrd = Wdoc.Application
With wrd
.Visible = True
.Activate
Wdoc.Document.Open (Path & File)
'.ScreenUpdating = False
ReSetBookmark Wdoc, TMName:="reklanr", TMInhalt:=wks.Cells(Zeile, 1).Value & "-" & Year(Now)
End With
If Err.Number = 429 Then
Err.Clear
Set wrd = CreateObject("Word.Application")
Set Wdoc = wrd.Documents.Open(Path & File)
With wrd
.Visible = True
.Activate
'.ScreenUpdating = False
End With
If Err.Number = 429 Then
Err.Clear
MsgBox "Es konnte nicht auf Word zugegriffen werden! Vielleicht ist Word nicht installiert!", vbExclamation, "Fehler beim Zugriff auf MS Word"
End If
End If
On Error GoTo 0

Anzeige
AW: Probleme mit Excel VBA
23.06.2022 12:12:21
Unknown_User
Sorry, mein Fehler, Fehler bleibt, hatte ja Errorhandling in dem Bereich.
AW: Probleme mit Excel VBA
23.06.2022 14:58:58
Unknown_User
Ich schließe den Beitrag nun, da ich die Ursache gefunden habe. Allerdings verstehe ich nicht, wieso das Problem aufgetaucht ist:
Ich verwende globale Variablen, da ich sie häufig wieder verwende (Modul):

    'globale Variablen definieren
Public wrd As Object, WDoc As Object, d As String, t As String, Zeile As Long, _
bez As Variant, wkz As Variant, fanr As Variant, kd As Variant, fehler As Variant, ursache As Variant, _
stck As Variant, bearbeiter As Variant, mkurz As Variant, mlang As Variant, zuständig As Variant, entsch As Variant, _
entscheider As Variant, wirksam As Variant, Start As Variant, weitere As Variant, abschlussd As Variant, lastsigned As Variant, _
endemdate As Variant, pverant As Variant, File As String, Path As String, aName As String, fm As Variant, pdfName As String, _
wks As Worksheet, state As Variant, lastperson As Variant, msg As String, objOutlook As Object, objMail As Object, _
bName As String, gesperrt As Variant, stückzahl_a As Variant, maschine As Variant, meldung As Variant, dstart As Variant, _
ausgeführt As Variant, tstart As Variant, n_verant As Variant
In der fehlerhaften Sub habe ich dann den Bezug zu "wks" hergestellt:

Set wks = ThisWorkbook.Worksheets("Tabelle1")
Allerdings (nur in dieser Sub!) konnte im kompletten Verlauf der Prozedur das die Objektvariable wks aus der globalen Variable nicht zugeordnet werden.
Ich habe nun die Variable in der Prozedur noch einmal zugewiesen und es geht:

Dim newTextLink As String, newTextGrund, rng As Object, wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Tabelle1")
Warum ist das so?
Anzeige
AW: Probleme mit Excel VBA
23.06.2022 17:46:52
onur
1) Du schreibst ."Ich schließe den Beitrag nun" und klickst trotzdem "Beitrag offen" an.
2) Schalte mal die blöden "Fehlerbehandlungsroutinen" aus, dann erkennst du evtl, wo der Fehler WIRKLICH verursacht wird.
3) Wo ist z.B. das "With" zu

If .Bookmarks.Exists(TMName) Then
?
AW: Probleme mit Excel VBA
24.06.2022 06:53:18
Unknown_User
Hallo,
ich habe die Routine drin gehabt, weil es Dokumente gab, die eine Textmarke weniger hatten und es da zu Fehlern kam.
Ich hatte das so gelöst:

'Textmarken in Word neu setzen
Public Sub ReSetBookmark(ByVal WDoc As Object, ByVal TMName As String, ByVal TMInhalt As String)
Dim bm As Object
Dim rng As Object
'On Error Resume Next
If WDoc.Bookmarks.Exists(TMName) Then
Set bm = WDoc.Bookmarks(TMName)
Set rng = bm.Range
rng.Text = TMInhalt
WDoc.Bookmarks.Add TMName, rng
End If
Set rng = Nothing
Set bm = Nothing
'On Error GoTo 0
End Sub
Ich habe auch die Variante mit With getestet und auch da hängt der Code immer an der gleichen Stelle. Erst nachdem ich nun das wks noch einmal mit einer Variablen gesetzt habe, funktioniert es. Das würde ja dann auch weiterhin nicht gehen, wenn es an einem anderen Teil des Codes liegt?
Ich versuche das zu verstehen, ich bitte da um Rücksicht. Wenn ich mir Fehlerbehandlungsroutinen sparen kann, mache ich das gerne, aber ich bin zu unsicher wie es geht.
Und danke für die Unterstützung.
Anzeige
AW: Probleme mit Excel VBA
24.06.2022 07:19:44
onur
Ich bin nicht sicher, wie es geht? Hast DU doch einprogrammiert, oder nicht?
“On Error usw” ist kein Allheilmittel gegen schlechte Programmierung - wenn man nicht genau weiss, was man da macht, kann es Probleme verursachen. Das benutzt man nur an einer bestimmten Stelle, wenn man einer bestimmten Stelle mit einem bestimmten Fehler rechnet (z. B. Die Datei die man öffnen möchte, könnte schon geöffnet sein)
Die Stelle, wo der Fehler angezeigt wird, ist nicht unbedingt die Stelle, wo er verursacht wurde.
Mach mal einfach alles mit “On Error” weg und schaue, wo überall die Fehler auftreten.
Anzeige
AW: Probleme mit Excel VBA
24.06.2022 08:41:26
Unknown_User
Hi, das hatte ich. Die Errormeldungen sind bei bestimmten Abfängen z. B. bei der Prüfung, ob Word bereits offen ist oder nicht, das hatte ich aus dem Netz. Vielleicht geht es auch anders? Andere sind z. T. mal hilfsweise gesetzt und nicht aktiv, u. a. die in dem ReSetBookmark = nicht aktiv.
Hier in diesem Fall liegt die Ursache aber nicht wie von Dir vermutet in dem Sub ReSetBookmark, denn da kommt er nicht hin, der Code stoppt vorher.
ich bin hier um nach Hilfe zu Fragen und zu lernen wo die Ursache liegt. Ich dachte dafür wäre das Forum da.

Dim newTextLink As String, newTextGrund, rng As Object, wks As Worksheet
Wenn ich das wks, welches eigentlich bereits global definiert ist noch einmal neu festlege, läuft der Code durch.
Wenn ich das wks wieder aus der globalen Definition verwenden möchte, verliert es die Zuordnung hier:

    ReSetBookmark WDoc, TMName:="reklanr", TMInhalt:=wks.Cells(Zeile, 1).Value & "-" & Year(Now)
Ab diesem Punkt weiß die Sub nicht mehr das wks zuzuordnen. Und das ist nur in dieser Sub.
Kann mir bitte jemand helfen das zu verstehen? Ich wäre dafür sehr dankbar.
Anzeige
AW: Probleme mit Excel VBA
24.06.2022 09:53:31
Oberschlumpf
Hi,
auch ich hab mal alle On Error-Befehle deaktiviert.
Die Folgen:
1. In "Tabelle1" Klick auf Button "Übersichtsformular öffnen" öffnet das entsprechende Userform
Jetzt Klick auf "neue Fehlermeldung erstellen" (egal, ob mit/ohne vorheriger Auswahl eines Listbox-Eintrags) kommt es schon zum ersten Fehler, und zwar im Terminate-Ereignis in der Zeile Application.OnTime NextTime, "Blink", , False
Fehler: Die Methode On_Time ist fehlgeschlagen
Grund: Die Variable NextTime enthält den Wert "00:00:00"
2. Klick auf "Abbrechen" erzeugt den selben Fehler aus dem selben Grund wie bei 1.
3. In der Funktion IsFileOpen kommt es zum Fehler beim Öffnen der angegeben Datei, weil diese DAtei auf meinem PC natürlich nicht mal vorhanden ist
Ok, hier könnte man mit On Error GoTo FileIsOpen: arbeiten - aber - direkt vor Verlassen der Funktion würde ich auch hier mit On Error GoTo 0 die Fehlerbehandlung wieder ausschalten!
Glaub mir, auch Leute, die sich mit VB(A) auskennen, können bei Verwendung von On Error GoTo ... zur langen Fehlersuche "gezwungen" werden, wenn sie mal vergessen sollten, mit On Error GoTo 0 wieder auszuschalten - und bei Anfängern passiert das mit langer Suche erst recht.
.
.
.
.
.
.
So, weiter bin ich nicht mt Testen gekommen, weil ich eben die von dir verwendeten Word-Dateien nicht habe, und weil ich natürlich auch keinen Zugriff auf den Netzwerpfad "\\..." habe.
Aber trotzdem kann ich nicht so ganz glauben, dass du wirklich alle On Error...-Befehle ausgeschaltet hast - denn dann wärst auch du ja schon bei 1. hängengeblieben.
Dass das bei dir mit...
ReSetBookmark Wdoc, TMName:="reklanr", TMInhalt:=wks.Cells(Zeile, 1).Value & "-" & Year(Now)
...wegen fehlendem Inhalt für wks.Cells(...) zu einem Fehler führt, den du nicht verstehst, könnte ich mit der Vermutung erklären, dass vielleicht vorher irgendwo der Befehl Set wks = Nothing durchgeführt wurde.
Da kann eine Variable noch so doll als Global deklariert worden sein - wenn der Inhalt gelöscht wurde, issa wech :-)
Ja, eine andere Idee hab ich leider nicht.
Ciao
Thorsten
...über deine Antwort freu ich mich natürlich, aber ich kann dich schon jetzt informieren, dass ich hier nix weiter versuchen werde
Für all das, was ich bis jetzt für dich ausprobiert habe, hab ich schon über 1 Stunde benötigt.
Anzeige
AW: Probleme mit Excel VBA
24.06.2022 10:53:56
Unknown_User
Hi,
erst einmal Entschuldigung, ich hatte es falsch verstanden. Ich bin von einem Fehler innerhalb der Prozedur ausgegangen.
Zu den Fehlermeldungen OnTime: das ist immer 0 und soll ja auch auf Null gesetzt werden, da sonst die UserForm abstürzt, wenn die Zeit nicht gleich ist.
Das Errorhandling führt dazu, dass der Text im Label blinkt und es nicht zu Zeitunterschieden kommt. Zeit wird demnach wiederholt auf 0 gesetzt. Ich habe im Netz lange gesucht, bis ich den passenden Lösungsansatz gefunden habe.
Und tatsächlich hatte ich während des Abrufs einer Zwischenprozedur das wks zurückgesetzt! Ich hatte mich so auf das Dim fixiert, dass ich auf den Verlust vom Set nicht mehr aufmerksam wurde.
Danke für die Hilfestellung. Damit hast Du mir wirklich geholen.
Wald und Bäume und so...
Wenn man sich mal irgendwo trifft, dann bekommst du Kaffee und Kuchen, versprochen :-)
Anzeige
uih, ich konnte helfen?
24.06.2022 11:03:34
Oberschlumpf
ja, wie cool is das denn!! :-)
Hi,
alles gut, du musst dich - nicht - entschuldigen, wenn du etwas - nicht - weißt!
Denn genau dafür sind ja alle Foren da - die fast jedem helfen können, der mal nich weiter weiß
Ja, ich wünsch dann weiter viel Spaß + Erfolg!
Ciao
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige