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

Speichern nicht möglich - Anderer Nutzer

Speichern nicht möglich - Anderer Nutzer
08.05.2022 20:18:51
Max_Danger
Hallo zusammen,
leider habe ich noch immer ein Problem mit meinen Excel Abfragedateien.
Zum Aufbau
Es gibt mehrere Excel Dateien (Abfragen), welche mit Hilfe eines Makros alle paar Sekunden Daten abrufen und die Exceldatei sich anschließend automatisch abspeichert.
Darüber hinaus existiert eine Excel Datei (Master) welche mittels Power Query die Daten abruft und zusammenfasst. Diese Aktualisierung wird auch von einem Makro alle x Sekunden gestartet.
Problemstellung
Es kommt immer wieder vor, dass bei einer der "Abfragedateien" ein Hinweisfenster auftaucht.
Der Hinweis lautet: "Abfrage.xlsm wird momentan von einer anderen Person bearbeitet. Versuchen Sie es später noch einmal"
Nachdem ich den Hinweis mit "OK" bestätige läuft alles wie gewohnt weiter.
Makro Code (Abfragedatei)
Code:
Option Explicit

Sub Datenactual()
' Makro1 Makro
Application.DisplayAlerts = False
Const cRepeat As Integer = 50        ' Anzahl Wieder-Versuche nach Fehler
Dim iRepCnt As Integer
Windows("Abfrage.xlsm").Activate
ActiveWorkbook.RefreshAll
On Error Resume Next
Do
Err.Clear
ActiveWorkbook.Save
Select Case Err.Number
Case 1004
If iRepCnt = cRepeat Then
MsgBox "Abbruch, nach " & cRepeat & " Fehlversuchen!", vbCritical + vbOKOnly, "Fehler : " & Err.Number
On Error GoTo 0
Exit Sub
Else
iRepCnt = iRepCnt + 1
End If
Case Is  0
MsgBox Err.Description, vbCritical + vbOKOnly, "Fehler : " & Err.Number
End Select
Loop While Err.Number = 1004 And iRepCnt 
Hat jemand vlt. eine Idee, wie ich das Hinweisfenster unterdrücken kann, bzw. wo der Fehler liegt?
Ziel ist es, dass die Abfragedateien es so lange versuchen sich zu speichern, bis es funktioniert und anschließend weiter laufen.
Sprich es soll der Fehler "einfach" übergangen werden.
(Aktuell durch manuelles drücken des "OK" Buttons.)
Über Hilfe würde ich mich sehr freuen.
Vielen Dank

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern nicht möglich - Anderer Nutzer
09.05.2022 00:56:31
oraculix
Versuch es mal so!
Wurde nicht getestet da ich ja die Mappe nicht sehe.

Sub Datenactual()
' Makro1 Makro
Const cRepeat As Integer = 50        ' Anzahl Wieder-Versuche nach Fehler
Dim iRepCnt As Integer
Windows("Abfrage.xlsm").Activate
ActiveWorkbook.RefreshAll
On Error Resume Next
Do
Err.Clear
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True
Select Case Err.Number
Case 1004
If iRepCnt = cRepeat Then
MsgBox "Abbruch, nach " & cRepeat & " Fehlversuchen!", vbCritical + vbOKOnly, "Fehler : " & Err.Number
On Error GoTo 0
Exit Sub
Else
iRepCnt = iRepCnt + 1
End If
Case Is  0
MsgBox Err.Description, vbCritical + vbOKOnly, "Fehler : " & Err.Number
End Select
Loop While Err.Number = 1004 And iRepCnt 
Gruß
Oraculix
Anzeige
AW: Speichern nicht möglich - Anderer Nutzer
09.05.2022 02:14:59
Max_Danger
Hallo Oraculix,
vielen Dank für die schnelle Rückmeldung :)
Ich habe den Code entsprechend angepasst.
Leider erhalte ich immer noch die Fehlermeldung.
Ich habe die entsprechende Excel Datei zu besseren Verständnis einmal hoch geladen.
Excel Datei: https://www.herber.de/bbs/user/152947.xlsm
Vlt. hilft es besser den Sachverhalt zu verdeutlichen.
Vg
Max
AW: Speichern nicht möglich - Anderer Nutzer
09.05.2022 09:49:53
Rudi
Hallo,
die Meldung kommt vom Betriebssystem und nicht von Excel. Deshalb ist es auch kein Error und nicht abfangbar.
Versuch mal:

Sub xxxx()
Dim iVersuche As Integer
Const cVersuche As Integer = 50
Application.DisplayAlerts = False
With ThisWorkbook
.RefreshAll
Do
.Save
Loop Until .Saved Or iVersuche = cVersuche
If Not .Saved Then MsgBox "Datei wurde nicht gespeichert!", , "gebe bekannt..."
End With
Application.DisplayAlerts = True
End Sub
Gruß
Rudi
Anzeige
AW: Speichern nicht möglich - Anderer Nutzer
10.05.2022 09:38:52
Max_Danger
Hallo Rudi,
vielen Dank für deine Rückmeldung.
Leider hat dein Ansatz nicht zum gewünschten Erfolg geführt.
Die Fehlermeldung erscheint nach wie vor.
Zusätzlich erhalte ich nun wieder den Laufzeitfehler "1004".
Viele Grüße
Max
AW: Speichern nicht möglich - Anderer Nutzer
09.05.2022 16:31:30
Yal
Hallo Max,
speichert deine Daten als txt-Datei anstatt xls*. Auf txt-Datei gibt es keine Reservierungsflag, was der Grund ist, warum Windows den Schreibzugriff verweigert, während die Datei durch deine Power Query aktualisiert wird.
VG
Yal
AW: Speichern nicht möglich - Anderer Nutzer
10.05.2022 10:13:25
Max_Danger
Hallo Yal,
vielen Dank für Deine Idee.
Das klingt nach einem interessanten Lösungsansatz.
Wie müsste es denn umgesetzt werden?
Die empfangenen Daten werden in der Tabelle "Json..." ausgegeben.
Diese Tabelle müsste ich anschließend in ein neues Tabellenblatt kopieren und danach das Tabellenblatt als .txt abspeichern?
VG
Max
Anzeige
AW: Speichern nicht möglich - Anderer Nutzer
10.05.2022 11:06:46
Yal
Hallo Max,
Man kann auch den Inhalt des Blattes Zeile für Zeile ins txt-Datei überbringen. Performance-mässig ist es gleich.
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/createtextfile-method

Sub BlattInhatInsDatei_schreiben()
Dim fs As Object
Dim Dat As Object
Dim Z, Sp
Dim msg As String
Const cAnzSp = 10
Set fs = CreateObject("Scripting.FileSystemObject")
Set Dat = fs.CreateTextFile("c:\testfile.txt", True)
With Worksheets("json")
'für alle Zeilen
For Each Z In Range(.Range("A2"), .Range("A99999").End(xlUp))
'für ein festgelegte Anzahl an Spalten
msg = ""
For Sp = 0 To cAnzSp - 1
msg = msg & ";" & Z.Offset(0, Sp)
Next
'ins Datei schreiben, erst ab 2te Stelle um führende ";" zu überspringen
Dat.WriteLine Mid(msg, 2)
Next
End With
Dat.Close
End Sub
VG
Yal
Anzeige
AW: Speichern nicht möglich - Anderer Nutzer
11.05.2022 03:09:26
Max_Danger
Hallo Yal,
vielen Dank, das ist wirklich genial. Nach meinem ersten Eindruck scheint es wie gewünscht zu funktionieren.
Jetzt stehe ich nur noch vor der Herausforderung, dass die Textdateien korrekt mittels Power Query eingelesen werden.
Power Query legt die Zahlenfelder automatisch als Dezimalfeld fest. Was meiner Ansicht nach auch korrekt ist.
Leider werden die Zahlenwerte wie bspw. 0,00457 folgendermaßen wiedergegeben: 457
Ich bin noch nicht auf die passende Lösung gestoßen.
Vermutlich liegt es an der Codierung?
Hast Du hierzu auch eine Lösung? :)
VG
Max
Anzeige
AW: Speichern nicht möglich - Anderer Nutzer
11.05.2022 08:48:15
Yal
Genau. Es scheint zu sein, als das Speichern mit einem Coding (z.B en) und das Lesen mit einem anderen (de).
Im Power Query Editor kann man die Lade-Einstellung der Abfrage unter "Datei", "Abfrageoptionen", "Aktuelle Arbeitsmappe", "Regionale Einstellung" beeinflüssen, oder bei den Datentyp Links der Spaltenüberschrift "mit Gebietsschema..."
VG
Yal

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige