ich habe eine Excel Arbeitsmappe mit Makro erstellt in der Rechnungen geschrieben werden und über einen Menü Button geht eine UserForm auf und dort sind zwei Buttons zur Auswahl aufgeführt. Einer davon heißt "Neue Rechnung" und wenn man diesen anklickt soll das Makro (welches ich nicht selbst geschrieben habe ,sondern nur meine Daten eingefügt habe) das Arbeitsblatt "Vorlage" kopieren und mit einem bestimmten Namen, sowie einer ständig fortlaufenden Nummer umbenannt einfügen.
Dieses Makro habe ich in der Datei auf meinem Laptop erstellt und soweit funktioniert dieses auch, allerdings arbeite ich mit einen Strato Server und dort sollen auch andere mit der Datei arbeiten können. Ich habe die Datei auf dem Server Kopiert und das Makro funktioniert auch auf dem Server solange die Datei alleine geöffnet ist.
Wenn man diese Datei offen hat und man öffnet eine andere excel Datei weil man Parallel diese braucht dann funktioniert das Makro nicht mehr und ich kann den Fehler auch nirgends im Internet finden.
Sobald parallel eine andere Datei geöffnet ist und ich dieses Makro ausführen möchte kommt folgender Fehler: Pfad nicht gefunden: ',\VB2927.tmp' und wenn ich auf Ok klicke kommt Fehler-Nr.: 1004 Wir konnten dieses Blatt nicht kopieren.
Kann mir bitte jemand bei dem Problem helfen warum es auf dem Server nicht funktioniert wenn man zwei excel Dateien offen hat? PS.: AM Laptop funktioniert das Makro auch wenn ich zwei Excel Dateien offen habe.
Hier ist der Code:
Sub neue_Rechnung_Klicken()
'Vorlagenblatt kopieren, einfügen und umbenennen mit fortlaufender Nr.
Dim wbAktiv As Workbook
Dim wks As Worksheet
Dim intNrName As Integer
Dim strKopieNeu As String
Const strKopie As String = "M22-0" 'Startext für Name Blatt-Kopie
Const strVorlage As String = "Vorlage" 'Name des Vorlageblattes
Const varEinfuegeBlatt As Variant = "Vorlage" 'Name oder Nummer des Blatts vor _
dem eingefügt werden soll
Const strFormat As String = "0" 'Format für Zählziffer bei Namen
On Error GoTo Fehler
Set wbAktiv = ActiveWorkbook
'Nummer des Neuen Namens ermitteln
'Es wird die höchste Zählnummer der Namen ermittelt, die mit dem Kopie-Namen beginnnen
For Each wks In wbAktiv.Worksheets
With Application.WorksheetFunction
If LCase(Left(wks.Name, Len(strKopie))) = LCase(strKopie) Then
If IsNumeric(Mid(wks.Name, Len(strKopie) + 1)) Then
intNrName = .Max(intNrName, CLng(Mid(wks.Name, Len(strKopie) + 1)))
End If
End If
End With
Next
'Neuen Namen ermitteln
strKopieNeu = strKopie & Format(intNrName + 1, strFormat)
'Neues Blatt anlegen und Name zuweisen
wbAktiv.Worksheets(strVorlage).Copy before:=wbAktiv.Worksheets(varEinfuegeBlatt)
ActiveSheet.Name = strKopieNeu
Fehler:
With Err
If .Number 0 Then
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End If
End With
End Sub
Mit freundlichen Grüßenbomex