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

Macro cellen kopieren uit andere bestanden (mbv een loop)

Status
Niet open voor verdere reacties.

Kim2011

Gebruiker
Lid geworden
20 mei 2011
Berichten
62
Hoi allemaal,

Ik zit met een vraag. Ik heb 2 voorbeeldbestanden toegevoegd als bijlage. 1 bestand met daarin een macro (het moederbestand) en 1 bestand (waarvan ik er een heleboel heb) met daarin gegevens die ik naar het moederbestand wil kopiëren onder een voorwaarde.
Het macrobestand moet 1 voor 1 kijken of de waarde in cel B7 in het ophaalbestand 'ja' of 'nee' is (waarschijnlijk door middel van het openen van het bestand). Is het 'nee' dan moet er niets gebeuren. Is het 'ja', dan moeten de gegevens uit de andere cellen naar het moederbestand gekopieerd worden (deze volgorde is wel anders).
Dit moet met een loop gebeuren. Ik weet wel hoe je een bestand kunt openen en sluiten (zie de macro), maar weet niet hoe dit in een loop moet. En ik weet ook niet hoe je kunt controleren op de voorwaarde en hoe eventueel de gegevens te kopiëren.

Met behulp van 'macro opnemen' kwam ik niet verder. Iemand een idee?

Alvast super bedankt!

Moederbestand: Bekijk bijlage 205140
Eén van de ophaalbestanden: Bekijk bijlage Voorbeeld ophaalbestand.xlsm
 
Ik ben iets verder met de macro:

Sub Ovaal1_Klikken()

Dim strCurrentdir As String
Dim strWorkbook As String
Dim oWb As Workbook

strCurrentdir = ActiveWorkbook.Path
strWorkbook = "\Voorbeeld ophaalbestand.xlsm"
Set oWb = Workbooks.Open(strCurrentdir & strWorkbook)

If Range("B7").Value = "nee" Then

MsgBox "Waarde is 'nee'."

oWb.Close

Else

MsgBox "Waarde is 'ja'."

oWb.Close

End If

End Sub
 
Laatst bewerkt:
Je hoeft geen bestanden te openen om te kijken of er aan de voorwaarde voldaan wordt.

Code:
Sub BestandenLezen()
Dim cFls As New Collection
Dim sPth As String
    sPth = "C:\Users\Roncancio\Helpmij\"   '<--- pad aanpassen naar je omgeving.
    d = Dir(sPth & "*.xl*")
    On Error Resume Next
    While d <> ""
        If ExecuteExcel4Macro("'" & sPth & "[" & d & "]" & "Blad1'!r7c2") = "ja" Then cFls.Add d
        d = Dir
    Wend
    MsgBox cFls.Count
End Sub
Zonder de bestanden te openen, controleert bovenstaande code van elk Excelbestand in de gegeven directory of in cel B7 van Blad1 een "ja" staat.
Aan het eind verschijnt een melding van het aantal bestanden die hieraan voldoet.

Ik kan je moederbestand niet openen overigens.

Met vriendelijke groet,


Roncancio
 
Dankjewel! Dit werkt super.
Is het ook mogelijk om het bestand wat gecontroleerd wordt te openen indien in cel B7 een "ja" staat zodat ik kan kopiëren uit dat bestand?
 
Dan kan maar je hoeft ook geen bestanden te openen om er gegevens uit te kopiëren.

Met vriendelijke groet,


Roncancio
 
Oh dat wist ik niet! Werkt dat ook met ExecuteExcel4Macro of moet dat weer op een andere manier? Dan kan ik weer even verder puzzelen.
 
Dat kan inderdaad met ExecuteExcel4Macro.
Wellicht ten overvloede: de collection cFls bevat aan het eind van de code een lijst van alle bestanden die aan de voorwaarde voldaan hebben.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan