Updaten Excelfile mbv macro

Status
Niet open voor verdere reacties.

actuarisje

Nieuwe gebruiker
Lid geworden
31 jan 2010
Berichten
1
Hoi Allemaal,

Ik ben redelijk nieuw in Excel en vrijwel compleet nieuw in VBA. Ik ben sinds kort begonnen om wat dingen te gaan leren en nu loop ik tegen een klein probleempje aan. Ik hoop dat jullie me kunnen helpen!

Het gaat om het volgende. Ik heb een workbook met daarin een aantal regels. Deze regels zullen dagelijks geupdate moeten gaan worden aan de hand van een geupdated workbook. Om dit te kunnen doen heb ik de volgende macro bedacht:

Code:
Sub updaten()

Application.Calculation = xlCalculationManual

update = "update.xls"
bron = "bron.xls"
vandaag = Date

ActiveWorkbook.SaveCopyAs "E:\test\bron " & vandaag & ".xls"

GetObject "E:\test\" & update
Windows(update).Activate
Sheets("blad1").Range("A:E").Copy

Windows(bron).Activate
Sheets("update").Range("A:E").PasteSpecial xlPasteValues
Sheets("update").Range("A:E").Copy
Sheets("bron").Range("A1").PasteSpecial xlPasteValues


Windows(update).Activate
ActiveWorkbook.Close savechanges = False
Application.Calculation = xlCalculationAutomatic

Windows(bron).Activate

End Sub

Maar deze wekrt niet helemaal zoals ik wil dat 'ie werkt. Wat er nu gebeurt is het volgende:

OUDE FILE:
1 a b c d e
2 a b c d e
3 a b c d e
4 a b c d e
5 a b c d e

UPDATE (in dit voorbeeld iser een nieuwe regel bijgekomen. Ook is er in de update 1 kolom minder)
1 a b c d
2 a b c d
3 a b c d
3.1 a b c d
4 a b c d
5 a b c d

OUTPUT NA RUNNEN MACRO
1 a b c d e
2 a b c d e
3 a b c d e
3.1 a b c d e
4 a b c d e
5 a b c d

Oftewel, van regel 3.1 zijn alleen kolommen a t/m e toegevoegd, maar kolom F niet. Alles in kolommen a t/m e wordt dus naar beneden geschoven, maar de inhoud van kolom F niet. Dus mist er de letter 'e' in cel F6. Wat ik als output had willen hebben is natuurlijk

1 a b c d e
2 a b c d e
3 a b c d e
3.1 a b c d (en hier geen 'e'. Deze cel moet dus leeg blijven)
4 a b c d e
5 a b c d e

Ziet iemand waar mijn code spaak loopt en hoe ik dat op kan lossen? Ik heb al geprobeerd om in de macro de range te veranderen, maar zodra kolom F in deze range zit, verdwijnt deze geheel na het updaten, omdat kolom F in de update leeg is.

Wie kan mij helpen?
 
Kijk eens naar een databasequery: menubalk/data/externe gegevens/databasequery
 
Zo kan het wel:
Code:
Sub updaten()
    Application.DisplayAlerts = False

    Windows("Update.xls").Activate
    Sheets("Blad1").Copy Before:=Workbooks("Bron.xls").Sheets(1)
    
    Windows("Bron.xls").Activate
    Sheets("Bron").Delete
    Sheets("Blad1 (2)").Name = "Bron"

    Application.DisplayAlerts = True
End Sub

Groet, Ed
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan