Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1732to1736
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

Laufzeitfehler 1004 bei Freigabe von Excel Datei

Laufzeitfehler 1004 bei Freigabe von Excel Datei
16.01.2020 08:19:15
Excel
Hallo zusammen ,
nutze in einer Excel Datei untenstehendes Makro, wenn ich die Datei normal nutze, funktioniert alles einwandfrei. Sobald ich die Datei freigebe, kommt bei Ausführung des Makros ein "Laufzeitfehler 1004 - Anwendungs- oder Objektdefinierter Fehler" keine weiteren Details.
Ich konnte schon irgendwo lesen, dass es evtl. an der Zeile "on error resume next" liegen könnte, wenn ich diese lösche ist der Laufzeitfehler aber immer noch da. Kann jemand helfen?
Danke ;)
Private Sub Worksheet_Change(ByVal Target As Excel.Range) '//Makro zur Verwaltung der  _
Ordneranlage und
'//Angabe konstanter Zeilen
intdateispalte = 20
intnummerspalte = 4
interstemaengelzeile = 9
'//Filesystemvariablen definieren
Set fs1 = CreateObject("Scripting.FileSystemObject")
Set fs = CreateObject("Scripting.FileSystemObject")
Set fs2 = CreateObject("Scripting.FileSystemObject")
'//Gucken ob eine Zelle in Spalte A markiert ist
If Target.Column = "4" And Target.Row >= interstemaengelzeile Then
If a = 1 Then
a = 0
Exit Sub
End If
Zeile = Target.Row        'Zeile Auslesen
Inhalt = Target.Value 'Inhalt der Markierten Zelle auslesen
produkt = ThisWorkbook.Worksheets("Mängelpunkte").Cells(4, 6).Value
intlaenge = Len(produkt)
'// Hier tritt ein Fehler auf, wenn manuell eine Zeile gelöscht wird. Dieser wird hier  _
abgefangen und nur kurz ausgegeben.
On Error Resume Next
inhaltkurz = Left(Inhalt, intlaenge)
If Err.Number  0 Then
MsgBox (Err.Description & "!    -Diese Fehlermeldung soll Sie darauf hinweisen, dass durch  _
gleichzeitige Bearbeitung mehrerer Zellen, in der Spalte der laufenden Nummer, keine Ordner angelegt oder gelöscht werden können. Bitte führen Sie dies später separat durch."), vbExclamation
Exit Sub
End If
On Error GoTo 0
test_inhalt = ThisWorkbook.Worksheets("Mängelpunkte").Cells(Zeile, intdateispalte).Value
'//Überprüfen ob das Produktkürzel vorangestellt wurde
If inhaltkurz = produkt Then
'//Überprüfung ob in der Spalte des Hyperlinks was steht, wenn dort was stehtt, wird davon  _
ausgegangen , dass bereits eine laufende Nummer vergeben wurde
If test_inhalt = "" Then
antwort = MsgBox("Soll ein Ordner zum Abspeichern von Bildern und weiteren Daten  _
angelegt werden?", vbYesNo + vbQuestion)
If antwort = vbYes Then
'//Überprüfen ob schon ein Ordner mit diesem ,neuen, Namen existiert
If fs1.folderexists(ThisWorkbook.Path & "\Ordner_fuer_Hintergrundinformationen\" &  _
Inhalt) Then
MsgBox (" Ein Ordner mit diesem Namen existiert bereits. Bitte überprüfen Sie die  _
lfd. Nummer, oder ob sich im Speicherpfad fehlerhafter Weise ein Ordner mit diesem Namen befindet"), vbQuestion
a = 1
ThisWorkbook.Worksheets("Mängelpunkte").Cells(Zeile, intnummerspalte).Value =  _
test_inhalt
Else
'//den neuen ordner anlegen in das Verzeichnis des Excels plus Namen "Inhalt"
Set ordner = fs.CreateFolder(ThisWorkbook.Path & "\ _
Ordner_fuer_Hintergrundinformationen\" & Inhalt)
'//Den Hyperlink erstellen
ThisWorkbook.Worksheets("Mängelpunkte").Hyperlinks.Add Anchor:=ThisWorkbook. _
Worksheets("Mängelpunkte").Cells(Zeile, intdateispalte), Address:=(ThisWorkbook.Path & "\Ordner_fuer_Hintergrundinformationen\" & Inhalt), TextToDisplay:=Inhalt
MsgBox ("Es wurde ein neuer Ordner mit dem Namen: " & Inhalt & " angelegt"),  _
vbInformation
End If
End If
Else
rueckgabe = MsgBox("Sie haben die Laufende Nummer geändert, obwohl bereits ein Hyperlink  _
besteht. Möchten Sie wirklich den Link und den Ordner samt Inhalt, löschen? -In dem Ordner gespeicherte Daten sind dann verloren!", vbYesNo + vbCritical + vbDefaultButton2)
'//Abfragen ob der bereits bestehende Ordner gelöscht werden soll
If rueckgabe = vbYes Then
If fs1.folderexists(ThisWorkbook.Path & "\Ordner_fuer_Hintergrundinformationen\" &  _
test_inhalt) Then
fs2.deletefolder (ThisWorkbook.Path & "\Ordner_fuer_Hintergrundinformationen\" &  _
test_inhalt)
End If
antwort = MsgBox("Soll ein Ordner zum Abspeichern von Bildern und weiteren Daten  _
angelegt werden?", vbYesNo + vbQuestion)
If antwort = vbYes Then
If fs1.folderexists(ThisWorkbook.Path & "\Ordner_fuer_Hintergrundinformationen\" &  _
Inhalt) Then
MsgBox (" Ein neuer Ordner mit diesem Namen existiert bereits. Bitte überprüfen  _
Sie die lfd. Nummer, oder ob sich im Speicherpfad fehlerhafter Weise ein Ordner mit diesem Namen befindet"), vbQuestion
a = 1
ThisWorkbook.Worksheets("Mängelpunkte").Cells(Zeile, intdateispalte).Value = ""
Else
'//den neuen ordner anlegen in das Verzeichnis des Excels plus Namen "Inhalt"
Set ordner = fs.CreateFolder(ThisWorkbook.Path & "\ _
Ordner_fuer_Hintergrundinformationen\" & Inhalt)
'//Den Hyperlink erstellen
ThisWorkbook.Worksheets("Mängelpunkte").Hyperlinks.Add Anchor:=ThisWorkbook. _
Worksheets("Mängelpunkte").Cells(Zeile, intdateispalte), Address:=(ThisWorkbook.Path & "\Ordner_fuer_Hintergrundinformationen\" & Inhalt), TextToDisplay:=Inhalt
MsgBox ("Es wurde ein neuer Ordner mit dem Namen: " & Inhalt & " angelegt"),  _
vbInformation
End If
Else
ThisWorkbook.Worksheets("Mängelpunkte").Cells(Zeile, intdateispalte).Value = ""
End If
Else
a = 1
ThisWorkbook.Worksheets("Mängelpunkte").Cells(Zeile, intnummerspalte).Value =  _
test_inhalt
End If
End If
Else
MsgBox ("Bitte denken Sie daran das Produktkürzel voran zu stellen"), vbExclamation
a = 1
ThisWorkbook.Worksheets("Mängelpunkte").Cells(Zeile, intnummerspalte).Value = test_inhalt
End If
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 bei Freigabe von Excel Datei
16.01.2020 12:12:57
Excel
Hallo,
als Excel-Profi solltest du wissen, dass man in freigegebenen Mappen keine Links erstellen oder ändern kann.
ThisWorkbook.Worksheets("Mängelpunkte").Hyperlinks.Add Anchor:=ThisWorkbook. _
Worksheets("Mängelpunkte").Cells(Zeile, intdateispalte), Address:=(ThisWorkbook.Path & "\Ordner_fuer_Hintergrundinformationen\" & Inhalt), TextToDisplay:=Inhalt
Gruß
Rudi
AW: Laufzeitfehler 1004 bei Freigabe von Excel Datei
16.01.2020 13:09:53
Excel
Hallo Patrick,
für freigegebene Arbeitsmappen gibt es eine Vielzahl von Aktionen die nicht zulässig sind.
https://support.office.com/de-de/article/informationen-zum-feature-freigegebene-arbeitsmappe-49b833c0-873b-48d8-8bf2-c1c59a628534
Bei dir scheitert es wahrscheilich an dem Erstellen/Löschen der Hyperlinks.
Ansonsten hast du noch eine Fehlerbehandlung drin. Diese ist unnötig, wenn du eine Prüfung der Anzahl Zeilen von Target einbaust.
'//Gucken ob eine Zelle in Spalte A markiert ist
If Target.Column = "4" And Target.Row >= interstemaengelzeile Then
If Target.Rows.Count > 1 then
MsgBox "Werden IDs in mehren Zeilen gleichzeitig geändert, dann ....", vbokOnly,"Hinweis"
Else
'Dein Code zum Prüfen der Eingaben und Erstellen von Ordnern und Hyperlinks
End If
End If
LG
Franz
Anzeige
AW: Laufzeitfehler 1004 bei Freigabe von Excel Datei
16.01.2020 13:21:23
Excel
Danke vielmals :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige