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

Forumthread: VBA Durch Benutzer Gesperrt, Nächste Datei bearbeiten

VBA Durch Benutzer Gesperrt, Nächste Datei bearbeiten
28.08.2024 17:11:50
miletvonthales
Hallo,

ich kopiere etwas aus einer Datei in mehrere verschiedene Dateien.

Allerdings kann es vorkommen, dass ein anderer Benutzer die Datei sperrt, weil diese geöffnet ist durch den User. Jetzt würde ich gerne die nächsten Datei bearbeiten ohne
das die VBA auf Fehler läuft.

Zusätzlich sollen die Informationen aus der Meldung Durch einen anderen Benutzer gesperrt in einer anderen Excel Datei gesammelt und gespeichert werden, damit ich nachher weiß welche der 200 Dateien nachbearbeitet werden müssen.

Hier der Code:

Sub Eintragung()

Workbooks.Open Filename:="C:\Datei1\test.xlsx"

Range("B1048576").End(xlUp).Offset(1, 0).Select

ActiveWorkbook.Save
ActiveWorkbook.Close

Range("C10").Select
Selection.Copy
Range("C11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("C11").Select
Selection.Copy

Workbooks.Open Filename:="C:\Datei1\test.xlsx""

Range("B1048576").End(xlUp).Offset(1, 0).Select

Selection.PasteSpecial

ActiveWorkbook.Save
ActiveWorkbook.Close

'Absatz

Workbooks.Open Filename:="C:\Datei2\test.xlsx"

Range("B1048576").End(xlUp).Offset(1, 0).Select

ActiveWorkbook.Save
ActiveWorkbook.Close

Range("C10").Select
Selection.Copy
Range("C11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("C11").Select
Selection.Copy

Workbooks.Open Filename:="C:\Datei2\test.xlsx""

Range("B1048576").End(xlUp).Offset(1, 0).Select

Selection.PasteSpecial

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Hat jemand eine Lösung?
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Durch Benutzer Gesperrt, Nächste Datei bearbeiten
28.08.2024 18:26:18
Yal
Hallo Millet,

Wenn Du dich "VBA gut" einstufst, wirst Du mit diesem Code zurecht kommen:

Sub Eintragung()

InDatei_speichern "C:\Datei1\test.xlsx"
InDatei_speichern "C:\Datei2\test.xlsx"
End Sub

Private Sub InDatei_speichern(DateiPfad As String)
Dim WB As Workbook

On Error GoTo Catch
Try:
Set WB = Workbooks.Open(DateiPfad)
ThisWorkbook.Range("C10").Copy
WB.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
WB.Save
GoTo Finally
Catch:
Debug.Print "Wert könnte nicht in " & DateiPfad & " eingetragen werden"
Finally:
WB.Close Saved:=True
Set WB = Nothing
End Sub
Ich habe alles was nutzlos oder doppelt einfach entsorgt und die sinnvolle Wiederholung in einer separaten Sub abgelagert.

Für Detail bitte nach "VBA Fehlertoleranz" und "Try Catch Finally pattern" googeln. Vielleicht auch "don't repeat yourself".

VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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