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

mapinhoud in excel document zetten

Status
Niet open voor verdere reacties.

Andre175

Gebruiker
Lid geworden
2 feb 2018
Berichten
351
hallo....

onderstaande code heb ik hier in een andere vraag gevonden.
werkte in eerste instantie goed.
na afsluiten van excel (ik had meerdere documenten met macro's open staan) en opnieuw openen van het test bestand met deze code geeft hij de inhoud van een andere map weer. (C:\Users\eigenaar\Documents\)
dit doet ie ook wanneer ik in de code map 2017 verander naar map 2018 (mappen bestaan)

Code:
Sub converteren()
Dim oWbk As Workbook
Dim sFil As String
Dim sPath As String
Dim lRij As Long
    Range("A:A").ClearContents
    lRij = 1
    sPath = "D:\onedrive\2 beleef\facturen\debiteuren\2017\"
    ChDir sPath
    sFil = Dir("*.*")
    Do While sFil <> ""
        Range("A" & lRij) = sFil
        lRij = lRij + 1
        sFil = Dir
    Loop
End Sub

mist er iets in deze code?

Bekijk bijlage bestanden weergeven.xlsm

André
 
Laatst bewerkt:
Bij mij werkt de code prima, dus wellicht dat de andere macro's roet in het eten hebben gegooid.
 
Begrijp er niets van.
pc opnieuw gestart
alleen het test bestand in excel geopend
welk pad ik ook invul in code, resultaat blijft van C:\user\eigenaar.......
zit nu onderweg, zal morgenavond thuis op pc proberen
 
ChDir werkt alleen op de actieve schijf.
Als je dus de C: schijf als actieve schijf hebt doet de ChDir die je gebruikt niets omdat je dan eerst met ChDrive van schijf zou moeten wisselen.

Beter maak je er dit van:
Code:
Sub converteren()
    Dim sFil As String
    Dim lRij As Long

    Range("A:A").ClearContents
    sFil = Dir("D:\onedrive\2 beleef\facturen\debiteuren\2017\*.*")
    Do While sFil <> ""
        lRij = lRij + 1
        Range("A" & lRij) = sFil
        sFil = Dir
    Loop
End Sub

Verder doe je niets met de variabele oWbk dus die heb ik verwijderd.
Ook de variabele sPath is niet nodig omdat je de waarde ervan maar 1x gebruikt.
Ik heb tevens de lRij regel verplaatst zodat de regel die hem de eerste waarde gaf ook weg kon.
Die 2 Dim opdrachten zijn eigenlijk ook niet nodig, tenzij je Option Explicit gebruikt.
 
Laatst bewerkt:
Bedankt voor de uitleg... het werkt weer.
Copy paste is makkelijk, echter waardeer ik het dat er een beetje uitleg bij komt.

Blijf het toch vreemd vinden dat in eerste instatie het wel werkte.
Kan het komen door een macro die gebruikt is in een ander bestand?
Wat er het dichts in de buurt komt wat betreft mappen en documenten is de code CreateObject ("Scripting.FileSystemObject").
Deze gebruik ik in een code om de juiste map te selecteren waar de pdf file's opgeslagen moeten worden.
Of..... Aplication.FileDialog(msoFileDialogFolderPicker)?
 
Laatst bewerkt:
Waar het door komt kan ik niet zeggen zonder de andere macro's te kennen.
Zowel CreateObject ("Scripting.FileSystemObject") als Application.FileDialog(msoFileDialogFolderPicker) doen niets met het wisselen van schijf.
 
Het kan dus wel door een ander programma oid zo zijn dat de code in 1e instantie wel werkte?
Dat het andere programma of wat dan ook de actieve schijf op D heeft gezet?
 
Een invloed van buitenaf dus.
Dat is inderdaad goed mogelijk.
 
Oke..... eens goed nadenken wat dat geweest zou kunnen zijn.
Ik kan nu iig weer verder....

Bedankt Edmoor.
 
Graag gedaan.
En die invloed van buitenaf voorkom je als je de code gebruikt zoals ik hem voor je heb aangepast.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan