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

Cellen exporteren via een macro

Status
Niet open voor verdere reacties.

xaviour

Gebruiker
Lid geworden
23 mei 2007
Berichten
23
Hoi
Ik heb ongeveer een paar honderd excel document waarin een aantal informatie staat die ik naar een excel sheet wil laten exporteren via een macro script zodat ik een goed overzicht kan hebben van de data. Deze handeling wil ik via een macro script laten uitvoeren zodat ik niet die paar honderd excel bestanden hoef te openen en vervolgens de data een voor een te kopieren. Heeft iemand misschien een idee hoe de macro script eruit moet zien. Ik heb twee excel bestanden bijgesloten waarvan een is de output waarin de data moet komen en die andere is een voorbeeld van die paar honderd excel bestanden.
Daarnaast heb ik ook een screenshot van een userform die ik heb gemaakt bij gesloten. Ik wil graag op de userform de directory waarin de excel bestanden zijn opgeslagen kunnen selecteren en vervolgens de excelbestand.

Alvast bedank :thumb:

Groet,

Anthony
 

Bijlagen

Laatst bewerkt:
Bedank voor jouw informatie

De code ziet er goed uit. Alleen ik weet nog niet hoe ik via een macro de data uit die paar honderd excel bestanden naar een excelsheet kan kopieren. Hoe zal deze script eruit moet zien??

Alvast bedank

Anthony
 
Uiteraard komt die ter vervanging van

Code:
'DO YOUR CODE HERE

Zet in de code maar eens

Code:
MsgBox wbResults.Name

ipv bovenstaande zin. Dat geeft de naam van het bestand waar je op dat moment mee werkt in de lus.

Moraal van het verhaal: wbResults is een variabele die staat voor het bestand dat je "vast hebt" op dat moment. Dat moet je gebruiken om te refereren aan de juiste bereiken. Bv.

Code:
wbResults.Sheets("Blad1").Range("A1:E10").Copy '...

Wigi
 
Bedank voor jouw tips

Ik heb de code ingevuld maar de data wordt niet gekopieerd en geplakt op de excelsheet waar de output moet komen. En Hoe moet de script eruit gaan zien dat wanneer een rij gevuld is dan gaat ie verder op de volgende rij?

Alvast bedank:thumb:

Anthony

Code:
Private Sub ExecuteButton_Click()

Dim lCount As Long
Dim wbResults As Workbook
Dim wbCodeBook As Workbook

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False

On Error Resume Next

Set wbCodeBook = ThisWorkbook

    With Application.FileSearch
        .NewSearch
         'Change path to suit
        .LookIn = "C:\Documents and Settings\klm37528\Desktop\OWIC\BETA"
        .FileType = msoFileTypeExcelWorkbooks
        '.Filename = "Book*.xls"
        
            If .Execute > 0 Then 'Workbooks in folder
                For lCount = 1 To .FoundFiles.Count 'Loop through all.
                 'Open Workbook x and Set a Workbook variable to it
                 Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0)
                                                                                 
                                                                                                
                 wbResults.Sheets("OWIC").Range("project").Copy
                 wbCodeBook.Sheets("OWICoutput").Range("A5").past
                 wbResults.Sheets("OWIC").Range("ESN").Copy
                 wbCodeBook.Sheets("OWICoutput").Range("D5").past
                 wbResults.Sheets("OWIC").Range("TSN").Copy
                 wbCodeBook.Sheets("OWICoutput").Range("G5").past
                 wbResults.Sheets("OWIC").Range("CSN").Copy
                 wbCodeBook.Sheets("OWICoutput").Range("J5").past
                 wbResults.Sheets("OWIC").Range("EngType").Copy
                 wbCodeBook.Sheets("OWICoutput").Range("J5").past
                 wbResults.Sheets("OWIC").Range("EngRedate").Copy
                 wbCodeBook.Sheets("OWICoutput").Range("P5").past
                 wbResults.Sheets("OWIC").Range("OWICdate").Copy
                 wbCodeBook.Sheets("OWICoutput").Range("S5").past
                 
                 wbResults.Close SaveChanges:=True
             
                 Next lCount
            End If
    End With
    
    On Error GoTo 0
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Application.EnableEvents = True



End Sub
 
Wat is

Code:
...past

?

Het kopiëren zal zo ongeveer zijn:

Code:
wbResults.Sheets("OWIC").Range("project").Copy wbCodeBook.Sheets("OWICoutput").Range("A5")

Rest is analoog.

Wigi
 
Sorry type fout ---> paste

Deze code werkt inderdaad super
Code:
wbResults.Sheets("OWIC").Range("project").Copy wbCodeBook.Sheets("OWICoutput").Range("A5")

Alleen een probleem nog. De data uit die honderd excel document worden steeds op rij 5 geplakt. De data in de rij worden steeds overgeschreven wanneer een volgende excel bestand geopend wordt. Hoe kan ik nou zorgen dat het plakken van data verder gaat in de volgende rij wanneer de vorige rij is gevuld? Want ik wil graag een overzicht hebben van de data uit die paar honderd excel bestanden.

Als ik met deze code verder werk

Code:
                 wbResults.Sheets("OWIC").Range("EngRedate").Copy wbCodeBook.Sheets("OWICoutput").Range("F5")

dat betekent dat ik 200 honderd keer deze script moet schrijven voor de 200 excel bestanden.

Heeft u misschien een oplossing hiervoor.

Alvast bedank voor jouw tips:thumb:

Anthony
 
Code:
wbResults.Sheets("OWIC").Range("EngRedate").Copy wbCodeBook.Sheets("OWICoutput").Range("F" & Rows.Count).End(xlUp).Offset(1)

Wigi
 
Beste Wigi

Bedank voor jouw hulp
De code werkt perfect alleen nog een laatste vraag.
Hoe krijg ik nou een userform waarin de macro is opgenomen, automatische te laten verschijnen wanneer ik het excel bestand(OWIC output) open ? Ik wil graag wanneer ik het excel bestand open, de form automatisch laten starten. Welke script moet ik gebruiken??

Alvast bedank:thumb:

Anthony
 
Ik heb zoiets toegevoegd in de module

Code:
Private Sub workbook_open()

OWIC.Show

End Sub

Maar het lukt niet
 
Ik heb zoiets toegevoegd in de module

Code:
Private Sub workbook_open()

OWIC.Show

End Sub

Maar het lukt niet

Dit werkt, op voorwaarde dat de naam van de userform OWIC is en de code bij ThisWorkbook staat.
 
De userform heet wel OWIC maar welke code bedoel je in de thisworkbook?

bedoel je deze code
Code:
Sub thisworkbook_open()

OWIC.Show

End Sub
in ThisWorkbook?

ik heb alles geprobeerd maar als ik het excel bestand openen, komt de userform niet automatische te voorschijnen.

Ik heb nu de bovenstaande code op "This Workbook" en "Module1" geplakt.
Maar ik krijg hem niet voor elkaar :shocked:

Alvast bedank

ANthony
 
Beste Wigi,

Alles werkt :thumb:
Ik wil jou hierbij hartelijk bedanken voor jouw service en hulp. Ik heb nu heel veel over macro script geleerd en nu kan ik eindelijk verder. Nogmaals bedankt voor alles.

Anthony
 
Graag gedaan Anthony. Plezant om te zien dat anderen er ook nog van leren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan