• 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.

Meerdere excel bestanden openen via een batchfile

Status
Niet open voor verdere reacties.

Vrensen

Gebruiker
Lid geworden
13 jul 2016
Berichten
14
Ik krijg dit probleem niet opgelost. Helaas werk ik met versie 2016 van excel want de optie mapbeheer uit versie 2010 had ik goed kunnen gebruiken.

Ik heb een aantal excelbestanden die via een indirecte berekening naar elkaar verwijzen. Helaas moeten hierdoor alle bestanden geopend zijn om het centrale bestand gevuld te krijgen. Voor mij geen probleem maar een aantal dummies moet dit ook kunnen (met alle respect natuurlijk).
Ik heb geprobeerd dit te doen maar steeds krijg ik foutmeldingen, verkeerde vewijzingen en niet geopende bestanden.

Wil iemand eens kijken naar de bijgevoegde zipfile en met een oplossing komen. Het is niet compleet (iv.m. toegestane grootte)

Succes!
 

Bijlagen

Had je dit al geprobeerd ?

Code:
Sub M_snb()
    Application.Save "G:\OF\snb_009.xlw"
End Sub

en anders de workbook_open gebeurtenis van het 'hoofd'bestand.

Plaats in een forum geen beveiligde bestanden.
Gebruik nooit samengevoegde cellen.
 
Laatst bewerkt:
Hoi,
Probeer volgende.
Plaats al de bestanden die samen moeten worden geopend in één map behalve het hoofdbestand.(hoofdbestand buiten deze map)Plak volgend code in This workboek van uw hoofdbestand. (rode gedeelte aanpassen)
Code:
Private Sub Workbook_Open()
Dim Source As String
    Dim StrFile As String
    Source = "[COLOR="#FF0000"]C:\Users\Planning 4 VMBO-K\[/COLOR]"
    StrFile = Dir(Source)
    Do While Len(StrFile) > 0
        Workbooks.Open Filename:=Source & StrFile
        StrFile = Dir()
    Loop
End Sub
 
Dank!!!

Werkt precies zoals ik het wel hebben!

Maar zoals bekend een gek kan meer vragen .....

Is het mogelijk om het hoofdbestand ook op de voorgrond te krijgen (zonder zoeken op de taakbalk)
Is het mogelijk om bij het afsluiten van het hoofdbestand ook alle geopende bestanden af te sluiten?

...... Kan meer vragen dan 10 wijzen kunnen beantwoorden.
 
Ik ben niet goed wijs en ws. niet één van die 10 wijzen, maar ...

... de antwoorden op je vragen zijn Ja & Ja

Kleine aanpassing in de code van gast0660:
Code:
Private Sub Workbook_Open()
    Dim Source As String
    Dim StrFile As String
    Dim OrigWBName As String
    Source = "C:\Users\Planning 4 VMBO-K\"
    StrFile = Dir(Source)
    OrigWBName = ActiveWorkbook.Name
    Do While Len(StrFile) > 0
        Workbooks.Open Filename:=Source & StrFile
        StrFile = Dir()
    Loop
    Workbooks(OrigWBName).Activate
End Sub

Voor het tweede gedeelte kun je het beforeclose event gebruiken:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim wbk As Workbook
    For Each wbk In Workbooks
        If wbk.Path = "C:\Temp\Peter" Then
            wbk.Close
        End If
    Next
End Sub
 
als het snel moet:

Code:
Sub M_snb()
  For Each it In CreateObject("scripting.filesystemobject").getfolder("J:\temp\Planning 4 VMBO-K").Files
     GetObject it
  Next
End Sub
 
Ik ben niet goed wijs en ws. niet één van die 10 wijzen, maar ...

... de antwoorden op je vragen zijn Ja & Ja

Kleine aanpassing in de code van gast0660:
Code:
Private Sub Workbook_Open()
    Dim Source As String
    Dim StrFile As String
    Dim OrigWBName As String
    Source = "C:\Users\Planning 4 VMBO-K\"
    StrFile = Dir(Source)
    OrigWBName = ActiveWorkbook.Name
    Do While Len(StrFile) > 0
        Workbooks.Open Filename:=Source & StrFile
        StrFile = Dir()
    Loop
    Workbooks(OrigWBName).Activate
End Sub

Voor het tweede gedeelte kun je het beforeclose event gebruiken:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim wbk As Workbook
    For Each wbk In Workbooks
        If wbk.Path = "C:\Temp\Peter" Then
            wbk.Close
        End If
    Next
End Sub

als het snel moet:

Code:
Sub M_snb()
  For Each it In CreateObject("scripting.filesystemobject").getfolder("J:\temp\Planning 4 VMBO-K").Files
     GetObject it
  Next
End Sub

Dank voor jullie voorstellen. Openen en afsluiten gaat al een stuk sneller. Zeker voor de personen zonder veel kennis van excel die hiermee moeten gaan werken. Omdat er in de bestanden geen wijzigingen gemaakt worden (alleen het hoofdbestand) zou het handig zijn als de vraag om wijzigingen op te slaan niet wordt gesteld. Dus alles afsluiten zonder opslaan.
Is dit ook nog te maken?

groet en nogmaals veel dank
 
Achter wbk.close het volgende zetten: SaveChanges:=False

Dit zou m.i. voldoende zijn. Mogelijk hoef je ook niet te reageren als je de bestanden als alleen lezen opent. Dat kan door achter de regel Workbooks.Open ... bla bla ... het volgende te zetten: ReadOnly:=True

Ik denk dat de laatste optie het beste is.
 
Laatst bewerkt:
Achter wbk.close het volgende zetten: SaveChanges:=False

Dit zou m.i. voldoende zijn. Mogelijk hoef je ook niet te reageren als je de bestanden als alleen lezen opent. Dat kan door achter de regel Workbooks.Open ... bla bla ... het volgende te zetten: ReadOnly:=True

Ik denk dat de laatste optie het beste is.

De optie Readonly:=TRue wordt op die plek gelezen als een compileerfout. De optie SaveChanges:=False werkt in ieder geval wel.
Ik heb nu voor het readonly de volgende VBA regels:
Private Sub Workbook_Open()
Dim Source As String
Dim StrFile As String
Dim OrigWBName As String
Source = "C:\Users\Vrensen\OneDrive\Documenten\Planning 3 VMBO-B"
StrFile = Dir(Source)
OrigWBName = ActiveWorkbook.Name
Do While Len(StrFile) > 0
Workbooks.Open Filename:=Source & StrFile readonly:=TRUE
StrFile = Dir()
Loop
Workbooks(OrigWBName).Activate
End Sub
 
Achter wbk.close het volgende zetten: SaveChanges:=False

Dit zou m.i. voldoende zijn. Mogelijk hoef je ook niet te reageren als je de bestanden als alleen lezen opent. Dat kan door achter de regel Workbooks.Open ... bla bla ... het volgende te zetten: ReadOnly:=True

Ik denk dat de laatste optie het beste is.

Wijsheid zit soms in de mens zelf. Even lezen dus niet te lui en zelf bedacht dat er een komma in moet staan!

Iedereen bedankt voor alle hulp!
 
@Vrensen, even een "note" met betrekking tot je "sluiten" procedure.
Hou er rekening mee dat deze ALLE openstaande workbooks zal sluiten en dan zelfs zónder melding én zónder opslaan. Ofwel, óók dat ene workbook dat je nog open had staan - en uuuuuuuuuren werk in had verricht - voordat je overstapte naar het openen van dat "hoofdbestand". Ook die is dus plotsklaps gesloten en niet opgeslagen.
Volgens mij is het netter om in een verborgen (?) sheet van het hoofdbestand bij te houden welke bestanden er worden geopend die dus bij dat hoofdbestand horen. Dan kan je dat lijstje afwerken met tijdens het sluiten.
 
@Vrensen, even een "note" met betrekking tot je "sluiten" procedure.
Hou er rekening mee dat deze ALLE openstaande workbooks zal sluiten en dan zelfs zónder melding én zónder opslaan. Ofwel, óók dat ene workbook dat je nog open had staan - en uuuuuuuuuren werk in had verricht - voordat je overstapte naar het openen van dat "hoofdbestand". Ook die is dus plotsklaps gesloten en niet opgeslagen.
Volgens mij is het netter om in een verborgen (?) sheet van het hoofdbestand bij te houden welke bestanden er worden geopend die dus bij dat hoofdbestand horen. Dan kan je dat lijstje afwerken met tijdens het sluiten.

Bedankt voor de TIP! Zou je inderdaad kunnen vergeten. Alleen voor dit soort klusjes had microsoft best het openen van een werkplek kunnen handhaven.

Groet
 
Hoi Ginger aka redhead,

Vrensen opent bij het centrale bestand een aantal bestanden uit een bepaalde folder. Bij het sluiten check ik bewust op het pad. M.i. zou het door jou beschreven issue niet optreden. Of zie ik iets over het hoofd?

Peter
 
@Peter B, O verrek... Had ik niet gezien. In dat geval lijkt het me als een gevalletje "ik heb niets gezegd"... ;)
 
Fijn. Loopt het helemaal zonder problemen. Vandaag mee gewerkt zelfs de grootste dombo kon er mee werken. Nogmaals iedereen bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan