Anhang: makro.jpg Guten Morgen Freunde, im Anhang seht Ihr mein Problem. Ich habe, zum Sichern einer Datei, folgendes Makro aufgezeichnet. Ausgelöst durch ein 'button' soll es eine Datei in OneDrive und mehrere Partitionen verschiedener HD, abspeichern. Das funkt. auch einmal ! Habe ich dann noch Einträge oder Verbesserungen, bekomme ich beim Abspeichern immer einen Lauf-Zeit-Fehler des Makros.( Vermute fehler durch OneDrive? ) Was mache ich Falsch, resp. wie kann ich das so als VBA schreiben dass es funkt.? Danke
09.12.2022, 11:42 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2022, 11:43 von Atlan.
Bearbeitungsgrund: erweiterung
)
Fehler siehe: makro-1.jpg bei Debugging wird der der erste Speicherbefehl ( für oneDrive ) 3 Zeilen gelb markiert. ?? Die Datei wird nur von mir verwaltet.
09.12.2022, 12:00 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2022, 12:02 von derHoepp.)
Moin,
was passiert, wenn du versuchst die Datei händisch auf OneDrive zu speichern (und damit zu überschreiben)? Im Übrigen: Was versprichst du dir vom ChDir, wenn du beim Speichern Unter eh den Vollständigen Pfad angibst? Und wie kann es jemals sinnvoll sein, die gleiche Information bewusst mehrfach zu speichern?
Viele Grüße derHöpp
Folgende(r) 1 Nutzer sagt Danke an derHoepp für diesen Beitrag:1 Nutzer sagt Danke an derHoepp für diesen Beitrag 28 • Atlan
09.12.2022, 12:18 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2022, 12:19 von Atlan.
Bearbeitungsgrund: verbesserung
)
von Hand kein Problem. Als Backup und zu verfügung stellen auf Partitionen auf die andere User hier zugrief haben. Dies ist das was Excel als Makro durch aufzeichnung der Mausbewegungen geschrieben hat.
ergänzend dazu: Finger weg von - ActiveWorkbook, - ActiveSheet, - ActiveCell, - Selection - etc.
Man kann sich nie sicher sein, ob man tatsächlich das gewünschte Objekt erwischt.
Statt dessen nimmt man - ThisWorkbook (wenn es die Tabelle mit dem Code ist) oder Workbooks("Datei,xlsm") - Worksheets("Blatt") bzw. noch besser ThisWorkbook.Worksheets("Blatt") oder Workbooks("Datei,xlsm").Worksheets("Blatt") - Range("A1") oder Cells(1, 1) bzw. noch besser Worksheets("Blatt").Range("A1") oder eine der sonstigen Angaben von oben - Range("A1") oder welches Objekt auch immer man haben will.
Gruß, Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 2 Nutzer sagen Danke an HKindler für diesen Beitrag:2 Nutzer sagen Danke an HKindler für diesen Beitrag 28 • Klaus-Dieter, Atlan
das Makro, so wie es da steht macht mir schon seit 2 Jahren Kopfzerbrechen wegen des Fehler. Selberschreiben kann ich das aber nicht! (Anfänger und ein alter Sack ( ) Darum bitte ich hier um Hilfe. Wer kann mir das so umschreiben dass es funzt.? Danke nochmal für all die Mühe