Registriert seit: 10.12.2020
Version(en): 365
10.12.2020, 16:14
(Dieser Beitrag wurde zuletzt bearbeitet: 10.12.2020, 16:17 von tyr0n.)
Hallo Community, seit heute morgen funktionieren die Excel VBAs bei meiner Kollegin nicht mehr. Wir arbeiten in einem Team von 5 Personen in einer OneDrive Freigabe. Bei 4 Personen funktioniert alles, bei einer Person erscheint ein Fehler beim Ausführen des Makros. So schaut es bei den Kollegen aus bei denen es Funktioniert:
So bei der Kollegin mit den Problemen:
Ich habe auch schon OneDrive gelöscht, alle Ordner gelöscht, OneDrive neuinstalliert und die Freigabe wieder hinzugefügt. Leider ohne Erfolg. Ich bin ratlos! Kann mir jemand hierbei helfen? Ist sicherlich eine Einstellung in Excel oder OneDrive? Vielen Dank im Voraus. Grüße tyr0n
Registriert seit: 10.12.2020
Version(en): 365
Erledigt! Office deinstalliert und neuinstalliert hat das Problem behoben
Registriert seit: 10.12.2020
Version(en): 365
Und wieder da! :( Kann jemand dieses Problem nachvollziehen?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
so wie es ausschaut funktioniert es mit einer lokalen Kopie bzw. Bearbeitung in der Desktopanwendung ...
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.12.2020
Version(en): 365
Guten Morgen,
wir gehen alle über den Weg Explorer -> OneDrive - Firma -> Freigabeordner -> Datei. Aber manchmal schaut es so aus als würde die Datei aus dem http geöffnet werden. (Ich kenne mich da nicht aus)
Registriert seit: 10.12.2020
Version(en): 365
15.12.2020, 08:51
(Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2020, 08:52 von tyr0n.)
Guten Morgen, nun habe auch ich das Problem. Aus dem nichts leitet mich ThisWorkbook.Path auf die http://sharepoint... anstatts auf c:\User\OneDrive
Sub makeProjekt() ActiveWorkbook.Save Dim cStrPfad As String Dim strQuelle As String Dim strZiel As String Dim strPrüfDateinameOhneIndex As String, tempName As String Dim objWorkbook As Workbook Dim vntValue1 As Variant Dim vntValue2 As Variant Dim vntValue3 As Variant Dim vntValue4 As Variant Dim vntValue5 As Variant Dim i As Long
cStrPfad = ThisWorkbook.Path & "\2020 Angebote\"
vntValue1 = Cells(ActiveCell.Row, 1).Value vntValue2 = Cells(ActiveCell.Row, 3).Value vntValue4 = Cells(ActiveCell.Row, 4).Value vntValue3 = Cells(ActiveCell.Row, 6).Value vntValue5 = Cells(ActiveCell.Row, 2).Value
strPrüfDateinameOhneIndex = Left(vntValue1, Len(vntValue1) - 1)
i = 0 tempName = Dir(cStrPfad & strPrüfDateinameOhneIndex & "? " & "*.xlsm*") Do While tempName > "" i = i + 1 strZiel = cStrPfad & tempName tempName = Dir Loop
Select Case i Case 0 'erstelle eine neue Datei strQuelle = ThisWorkbook.Path & "\programm\Vorlage_Projekt.xlsm" strZiel = cStrPfad & vntValue1 & " " & vntValue2 & " " & vntValue4 & ".xlsm" Call FileCopy(strQuelle, strZiel) Set objWorkbook = Workbooks.Open(strZiel) objWorkbook.Worksheets("Start").Cells(2, 4).Value = vntValue1 objWorkbook.Worksheets("Start").Cells(3, 4).Value = vntValue2 objWorkbook.Worksheets("Start").Cells(3, 5).Value = vntValue5 objWorkbook.Worksheets("Start").Cells(5, 4).Value = vntValue3 objWorkbook.Worksheets("Start").Cells(4, 4).Value = vntValue4 Set objWorkbook = Nothing Case 1 Set objWorkbook = Workbooks.Open(strZiel) Set objWorkbook = Nothing Case Is > 1 'wähle eine Datei aus With Application.FileDialog(msoFileDialogOpen) .InitialFileName = cStrPfad & strPrüfDateinameOhneIndex & "? " & "*.xlsm*" If .Show = True Then strZiel = .SelectedItems(1) Set objWorkbook = Workbooks.Open(strZiel) Set objWorkbook = Nothing Else MsgBox "Keine Datei gewählt - Abbruch" Exit Sub End If End With End Select ActiveWorkbook.Save
End Sub Gibt es eine andere Möglichkeit sodass Dateien auf einen OneDrive erstellt werden können? Oder gibt es einen Ersatz für ThisWorkBook.Path die auf OneDrive funktioniert? Das alles hat nun seit einem Jahr problemlos funktioniert :( Vielleicht kennt jemand dieses Phänomen? Viele Grüße tyron
Registriert seit: 08.05.2014
Version(en): Office 2010, Office 365, Office 365 Betakanal
15.12.2020, 10:48
(Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2020, 10:50 von maninweb.)
Hallo, habe ich noch bei mir gefunden ... Code: Public Function GetPath() As String Dim c As Long Dim n As Long Dim d As String Dim f As String Dim o As String Dim r As String Dim s As String ' Errors... On Error Resume Next ' Filename... f = "" f = ThisWorkbook.FullName ' Separator... If InStr(1, LCase(f), "/") > 0 Then s = "/" Else s = Application.PathSeparator End If ' Check... If Left(LCase(f), 8) <> "https://" Then r = f Else ' Check... If InStr(1, LCase(f), "my.sharepoint.com") > 0 Then ' Search.Commercial... c = InStr(1, LCase(f), s & "documents") + Len(s & "documents") Else ' Search.Personal (https://d.docs.live.net/user-id/)... For n = 1 To 4 c = InStr(c + 1, f, s) Next End If ' Folder... d = Replace(Mid(f, c), s, Application.PathSeparator) ' OneDrive... For n = 1 To 3 ' Try... o = "" o = Environ(Choose(n, "OneDriveCommercial", "OneDriveConsumer", "OneDrive")) ' Check... If Len(o) > 0 Then Exit For End If Next ' Check... If Len(o) > 0 Then r = o & d Else r = f End If End If ' Check... If Len(r) > 0 Then ' Path... f = StrReverse(Split(StrReverse(r), s)(0)) r = Left(r, Len(r) - Len(f) - 1) End If ' Return... GetPath = r End Function
Statt ThisWorkbook.Path dann GetPath nehmen. Sucht Dir den lokalen Ordner zu OneDrive raus. Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awardshttps://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Folgende(r) 1 Nutzer sagt Danke an maninweb für diesen Beitrag:1 Nutzer sagt Danke an maninweb für diesen Beitrag 28
• tyr0n
Registriert seit: 10.12.2020
Version(en): 365
15.12.2020, 12:08
(Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2020, 12:08 von tyr0n.)
Hallo! Das scheint in die richtige richtung zu gehen!!! Allerdings spukt mir GetPath auch den Dateinamen.xlsm aus
GetPath spuckt mir den Pfad inkl. der aktuellen Datei aus:
C:\Users\xxxxx\OneDrive\Angebote\Angebotsliste 2020.xlsm
Ich muss also irgendwie Angebotsliste 2020.xlsm aus dem Pfad bekommen.
Richtig wäre: C:\Users\xxxxx\OneDrive\Angebote
Wie bekomme ich das hin?
Viele Grüße tyron
Edit://
Ich könnte mir vorstellen das ich in der GetPath im folgenden Bereich:
' Path... f = StrReverse(Split(StrReverse(r), s)(0)) r = Left(r, Len(r) - Len(f) - 1) End If ' Return... GetPath = r
den Dateinamen.xlsm löschen muss.. ?
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin! Z.Bsp. so (anpassen kannst Du sicherlich selbst): Sub OhneDateinamen()
Const FP$ = "C:\Users\xxxxx\OneDrive\Angebote\Angebotsliste 2020.xlsm"
Debug.Print Left(FP, InStrRev(FP, "\") - 1)
End Sub Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• tyr0n
Registriert seit: 10.12.2020
Version(en): 365
15.12.2020, 12:25
(Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2020, 12:25 von tyr0n.)
Hallo Ralf,
Edit:// ich glaube ich habs!
r = Left(r, InStrRev(r, "\") - 1) End If GetPath = r
|