Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Plötzliches Problem: OneDrive VBA Pfad
#1
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
Antworten Top
#2
Erledigt! Office deinstalliert und neuinstalliert hat das Problem behoben  Dodgy
Antworten Top
#3
Und wieder da! :( Kann jemand dieses Problem nachvollziehen?
Antworten Top
#4
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)
Antworten Top
#5
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)
Antworten Top
#6
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 StringtempName 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
Antworten Top
#7
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 Awards
https://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:
  • tyr0n
Antworten Top
#8
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.. ?
Antworten Top
#9
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:
  • tyr0n
Antworten Top
#10
Hallo Ralf,

Edit:// ich glaube ich habs!

r = Left(r, InStrRev(r, "\") - 1)
    End If  
GetPath = r
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste