• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Opslaan op twee locaties

Status
Niet open voor verdere reacties.

JanOdb

Gebruiker
Lid geworden
16 okt 2017
Berichten
50
Ik maakte een excelblad voor de restaurantdagen van een vereniging dat met veel hulp van deze site prima werkt.
De knop om met een nieuw blad te beginnen voor een volgende klant voert een aantal macro's uit: werkt probleemloos.
Eén van de macro's die worden uitgevoerd is Opslaan. Laten we aannemen dat het bestand op C:/restaurant staat (en vanaf daar ook wordt opgestart) dan is de macro:

ActiveWorkbook.Save
End Sub

Maar nu wil ik - als backup - tegelijk ook laten opslaan op een andere locatie (USB-stick=D-schijf)
Kan ik dan dit doen in een volgende macro:

ChDir "D:/restaurant"
ActiveWorkbook.Save
End Sub

op voorwaarde natuurlijk dat het bestand daar al bestaat.

(de macro's werden gegenereerd door de macrorecorder van excel)
 
Laatst bewerkt:
En vergeet dat ChDir verhaal.
Dat werkt sowieso niet als je naar een andere dan de huidige schijf gaat omdat je dan eerst ChDrive zou moeten gebruiken.
En, hoewel een / wel werkt, dien je officieel de \ te gebruiken als scheiding van folders.
 
ExcelAmateur verwijst hiernaar:

Sub test()
Dim pathnaam(3) As String

pathnaam(1) = "C:\testa"
pathnaam(2) = "C:\testb"
pathnaam(3) = "C:\testc"

For i = 1 To 3

ActiveWorkbook.SaveAs pathnaam(i) & InputBox("voer hier de bestandsnaam in!")

Next

End Sub


Ik ga dit uitproberen (met aanpassing voor 2 opslaglocaties uiteraard) maar toch 2 vraagjes:

- moet de bestandsnaam op de opslaglocaties al bestaan?
- gewoon om te weten: wat betekent de 'i' ?
 
Laatst bewerkt:
Dag edmoor,
ik stel een vraag en jij bent online om te antwoorden. Het lijkt alsof jij gaat slapen met je pc. Bewonderenswaardig.
 
Ik ben die code nog eens aan het bestuderen, en vraag me af waar 'Next' voor nodig is.
 
onderstaand een poging om de macro te verklaren

Code:
Sub test()                                                                                                                'test is de naam van de macro
Dim pathnaam(3) As String                                                                                       'pathnaam(3) is een array met drie elementen, elk element is een path

pathnaam(1) = "C:\testa"                                                                                         'het eerste element is: "C:\testa"
pathnaam(2) = "C:\testb"                                                                                         'het eerste element is: "C:\testb"
pathnaam(3) = "C:\testc"                                                                                         'het eerste element is: "C:\testc"

For i = 1 To 3                                                                                                           'hier begint een lus, genaamd i, die driemaal doorlopen wordt (1,2,3)

ActiveWorkbook.SaveAs pathnaam(i) & InputBox("voer hier de bestandsnaam in!")       'hier wordt steeds het actieve bestand opgeslagen in de drie mappen 

Next                                                                                                                       'doorloop de lus opnieuw, maar nu met het volgende pad

End Sub                                                                                                                 'als de lus driemaal doorlopen is: KLAAR!
 
Het eerste stuk begreep ik, dat van die lus niet. Goede uitleg, heel duidelijk. Bedankt.
Ik herhaal wat ik al eerder zei: ik leer hier op een halfuur meer bij dan na het bestuderen van een boek.
Al een paar procenten geleerd, nog veel te gaan.
 
Dag edmoor,
ik stel een vraag en jij bent online om te antwoorden. Het lijkt alsof jij gaat slapen met je pc. Bewonderenswaardig.

Zo erg is het nou ook weer niet :p
 
Omdat ik met problemen bleef zitten bij het opslaan op 2 locaties tegelijk, heb ik onderstaande eens uitgeprobeerd, en een beetje tot mijn eigen verbazing werkt het. Excel kwam wél telkens zeuren dat het bestaande bestand al bestond en of ik het wilde overschrijven, dus die waarschuwing heb ik afgezet. (De respectievelijke opslagplaatsen zijn maar voor de test.)

Sub test()
'
' test Macro
'

Application.DisplayAlerts = False
ChDir "C:\Users\Jan\Downloads"
ActiveWorkbook.SaveAs Filename:="C:\Users\Jan\Downloads\Map1.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ChDir "F:\Temp\Z_Rest"
ActiveWorkbook.SaveAs Filename:="F:\Temp\Z_Rest\Map1.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
 
En haal die totaal overbodige ChDir opdrachten er uit, wat ik in #3 al opmerkte.
Code:
Sub test()
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs "C:\Users\Jan\Downloads\Map1.xlsm", 52
    ActiveWorkbook.SaveAs "F:\Temp\Z_Rest\Map1.xlsm", 52
    Application.DisplayAlerts = True
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan