Bestehendes Makro Teil II

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
thowe
Beiträge: 209
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 79 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: Bestehendes Makro Teil II

#21

Beitrag von thowe »

Hola Nanu

Ich habe mir nun die Datei runtergeladen....

Bei mir läuft es durch. Ich habe nur die Prozedur Listrefs() in mdlReferenzen debugged. Einzelschritte mit [F8]

Probiere folgendes:

1) Öffne dieses Arbeitsmappe "El Gestor di...." Starte die VBA-IDE mit [ALT] + [F11]
2) Öffne in der IDE das direktfenster mit [STRG] + [G]
3) Tippe direkt in das Fenster (das hat sich entweder unterhalb des Codes angedeckt oder oberhalb) folgenden Befehl:

Code: Alles auswählen

? wb.Path
Da solltest du den Pfad diese Arbeitsmappe angezeigt bekommen (als return value).
Wenn nein, welcher Fehler...?

LG
Benutzeravatar
thowe
Beiträge: 209
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 79 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: Bestehendes Makro Teil II

#22

Beitrag von thowe »

Corr

Code: Alles auswählen

?wb.Path
Benutzeravatar
Nanu
Beiträge: 62
Registriert: 14. Okt 2023, 20:20
Hat sich bedankt: 34 Mal
Danksagung erhalten: 14 Mal
Kontaktdaten:

Re: Bestehendes Makro Teil II

#23

Beitrag von Nanu »

Hola Thowe,
muchas gracias erstmal für eure Geduld. Aber ich gebe ehrlich zu, das das was Der Bastler da gebaut hat mein weniges Wissen von VBA deutlich übersteigt.
Also wenn ich das ?wb.Path direkt nach dem öffnen der Datei in den Direktbereich schreibe, ohne etwas zu machen, kommt diese Meldung
2.JPG
2.JPG (129.54 KiB) 5324 mal betrachtet
Wenn ich aber dann die USFAdmin starte (in F8) kommt direkt der Fehler und es kommt diese Meldung
1.JPG
1.JPG (85.13 KiB) 5324 mal betrachtet
Saludos Nanu
Benutzeravatar
d'r Bastler
Beiträge: 683
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 177 Mal
Danksagung erhalten: 91 Mal

Re: Bestehendes Makro Teil II

#24

Beitrag von d'r Bastler »

aha! Da cloud einer ...

Sorry Nanu, aber da muss ich erst einmal passen. Denn als Cloud-und Abo-Verweigerer bastle ich VBA ausschließlich in XL-Versionen, die man lokal nutzen kann. Packe Deine Dateien mal auf Deinen PC oder auch ein Netzlaufwerk in der Domain Deiner Firma und El Gestor wird ohne Fehler laufen.

Aber, um Dich nicht im Regen stehen zu lassen, werde ich mal versuchen, ob es als Alternative zum FSO irgendwo auch ein CloudFileObject gibt. Daten aus dem Netz zu ziehen, ist mir ja schon gelungen.

lg
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
Nanu
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
thowe
Beiträge: 209
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 79 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: Bestehendes Makro Teil II

#25

Beitrag von thowe »

Hallo Nanu,

danke für deine Rückmeldung.

Kopiere/Verschiebe deinen Ordern auf eine lokalen Speicherort und NICHT auf "Ondedrive".
Lass es dort hebs Werk laufen.

Denn du hast - mit: "https://d.docs.live.net/..." das Ganze auf deinem OneDrive gespeichert.
-> Ich denke mir, dass ist der Pferdefuß

lg thowe
Folgende Benutzer bedankten sich beim Autor thowe für den Beitrag (Insgesamt 2):
d'r Bastler, Nanu
Benutzeravatar
Nanu
Beiträge: 62
Registriert: 14. Okt 2023, 20:20
Hat sich bedankt: 34 Mal
Danksagung erhalten: 14 Mal
Kontaktdaten:

Re: Bestehendes Makro Teil II

#26

Beitrag von Nanu »

Hola und vielen dank euch beiden.
Werde mich damit beschäftigen und Rückmeldung geben.
Saludos Nanu
Benutzeravatar
d'r Bastler
Beiträge: 683
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 177 Mal
Danksagung erhalten: 91 Mal

Re: Bestehendes Makro Teil II

#27

Beitrag von d'r Bastler »

Moin allerseits,

das Thema Pfade auf OneDrive möglich zu machen ist tatsächlich viral und ich habe einen Code gefunden, der genau auf dieses Thema passt.

Mangels und in Verweigerung eines einzurichten OneDrives kann ich nicht testen. Aber vielleicht hilft er dennoch:

Code: Alles auswählen

Function OneDrivePathFixer(datPath As String) As String
	Dim oneDrivePart As String 
	datPath = VBA.replace(datPath, "/", "\") 
	oneDrivePart = "https:\\d.docs.live.net\" 
	If VBA.InStr(datPath, oneDrivePart) Then 
		datPath = VBA.replace(datPath, oneDrivePart, "")
		datPath = right(datPath, Len(datPath) - VBA.InStr(1, datPath, "\")) 
		datPath = Environ$("OneDriveConsumer") & "\" & datPath 
	End If
	OneDrivePathFixer = datPath
End Function
Als Parameter der Funktion würde ich mal wb.path versuchen und dann in meinem Code wb.path durch datPath überschreiben. Ob das dann dennoch mit dem FSO klappt, wage ich zu bezweifeln, weiß es aber nicht.

Der Code stammt übrigens von hier, wo das Thema auch weiter diskutiert wird. Danke dorthin!

lg
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
Nanu
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
Nanu
Beiträge: 62
Registriert: 14. Okt 2023, 20:20
Hat sich bedankt: 34 Mal
Danksagung erhalten: 14 Mal
Kontaktdaten:

Re: Bestehendes Makro Teil II

#28

Beitrag von Nanu »

Hola ins Forum,
es klappt wirklich alles wenn ich es direkt auf dem Rechner speicher. Jetzt muss ich mal gucken ob ich das irgendwie mit Onedrive hinbekomme.
Aber es läuft schon mal bei mir :v:
Saludos y muchas gracias für eure Mühen
Nanu
Benutzeravatar
thowe
Beiträge: 209
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 79 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: Bestehendes Makro Teil II

#29

Beitrag von thowe »

Hola Nanu,

füge die folgende Funktion in das Modul mdlReferenzen ein

Code: Alles auswählen

Function GetOnedriveFolderPath(strPath As String) As String
[b]Wichtig! [/b]Die Arbeitsmappe muss sich im OneDrive Ordner befinden.
    
    Dim strPathLocalOnedriveFolder As String 'ie: C:\Benutzer\....\Onedrive
    Dim strWorkbookPath As String 'Variable: the adapted Path replaced "/"
    Dim arrPathSubStrings() As String 'The splitted Workbookpath, Split() reutrns an Array
    Dim fso As Object 'Object: the standard FileObject with VBScript FileSystemObject (activated with References)
        
    strPathLocalOnedriveFolder = Environ("OneDrive") 'the local Onedrive Paht
    
    arrPathSubStrings = Split(strPath, "/", 5)
    strWorkbookPath = Replace(arrPathSubStrings(4), "/", "\")
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    GetOnedriveFolderPath = fso.BuildPath(strPathLocalOnedriveFolder, strWorkbookPath)

End Function
Teste es im Direktfenster [STRG]+ [G] mit

Code: Alles auswählen

?GetOnedriveFolderPath(ThisWorkbook.Path)
das sollte durchlaufen. Bei funktioniert es...

Aufrufen kannst du esin deinem mdlReferenzen.LstRefs mit:

Code: Alles auswählen

Set oTop = oFSO.GetFolder(GetOnedriveFolderPath(wb.path))
Annotation:
jetzt könntest du noch abfangen, ob sich die Datei (also deine Arbeitsmappe) in einem "reinen" lokalen Ordner befindet oder in einem OneDrive Ordner und enstprechent das SetoTop nur mit .... wb.Path oder eben mit GetOneDrifeFolderPath...

Am kürzesten läuft das mit IIf() -> da könntest du dich mit einer - wahrscheinlich für dich - neuen VBA-Funktion auseinandersetzen, in etwa mit
bolIsOnedriveFolder = ....
Iif(bolOnedriveFolder, True, False) -> bei True und False die enstprechenden Anweisungen:
siehe hier: https://learn.microsoft.com/de-de/offic ... f-function



lg
Folgende Benutzer bedankten sich beim Autor thowe für den Beitrag (Insgesamt 2):
Nanu, d'r Bastler
Benutzeravatar
Nanu
Beiträge: 62
Registriert: 14. Okt 2023, 20:20
Hat sich bedankt: 34 Mal
Danksagung erhalten: 14 Mal
Kontaktdaten:

Re: Bestehendes Makro Teil II

#30

Beitrag von Nanu »

Muchas gracias Thowe,
funktioniert einwandfrei. Jetzt muss ich mich aber erstmal durch das Super Programm vom Bastler durcharbeiten um es zu verstehen :lol: :lol:
Ich gebe auf jeden Fall weiterhin Rückmeldungen.
Saludos Nanu
Folgende Benutzer bedankten sich beim Autor Nanu für den Beitrag:
d'r Bastler
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste