Hallo,
Ik ben al even op zoek naar een betere methode om mijn VBA code te schrijven.
Momenteel heb ik een werkende code (gemaakt door de macro op te nemen), ik vind hem alleen nogal lang en on overzichtelijk.
Ik heb op internet verschillende stukken code gevonden waarin een "loop" zit verwerkt. Hiermee zou ik de code aanzienlijk kunnen verkleinen, maar krijg het niet werkend.
Ik hoop dat iemand op dit forum mij kan helpen.
In de bijlage heb ik twee voorbeeld bestandjes bijgevoegd.
Bestand 1 "proces bestand" is het bestand dat in onze organisatie wordt rond gestuurd en door verschillende mensen wordt gevuld en bewerkt. Het aantal regels is variabel (1 tot >500). Het zou kunnen dat een regel of cel wordt leeg gelaten.
Zodra het bestand is aangekomen bij de laatste persoon wordt op de "export" knop gedrukt. Bestand 2 "invoer bestand" wordt geopend vanaf een bepaalde locatie en wordt vervolgens gevuld met de informatie vanuit Bestand 1. Sommige kolomen worden niet meegekopieerd omdat ze niet meer van toepassing zijn, andere worden met elkaar vermenigvuldigd om additionele informatie toe te voegen.
De macro die is ingevoegd in bestand 1 ziet er alsvolgt uit:
de regels 5 t/m 13 worden in het voorbeeld gekopieerd, het zou ook kunnen dat het regel 5 t/m 500 moet zijn.
Ik hoop dat iemand mij kan helpen.
Alvast bedankt.
Maarten
Ik ben al even op zoek naar een betere methode om mijn VBA code te schrijven.
Momenteel heb ik een werkende code (gemaakt door de macro op te nemen), ik vind hem alleen nogal lang en on overzichtelijk.
Ik heb op internet verschillende stukken code gevonden waarin een "loop" zit verwerkt. Hiermee zou ik de code aanzienlijk kunnen verkleinen, maar krijg het niet werkend.
Ik hoop dat iemand op dit forum mij kan helpen.
In de bijlage heb ik twee voorbeeld bestandjes bijgevoegd.
Bestand 1 "proces bestand" is het bestand dat in onze organisatie wordt rond gestuurd en door verschillende mensen wordt gevuld en bewerkt. Het aantal regels is variabel (1 tot >500). Het zou kunnen dat een regel of cel wordt leeg gelaten.
Zodra het bestand is aangekomen bij de laatste persoon wordt op de "export" knop gedrukt. Bestand 2 "invoer bestand" wordt geopend vanaf een bepaalde locatie en wordt vervolgens gevuld met de informatie vanuit Bestand 1. Sommige kolomen worden niet meegekopieerd omdat ze niet meer van toepassing zijn, andere worden met elkaar vermenigvuldigd om additionele informatie toe te voegen.
De macro die is ingevoegd in bestand 1 ziet er alsvolgt uit:
Code:
Sub Voorbeeld()
ChDir "C:\Documents and Settings\Bureaublad\test"
Workbooks.Open Filename:= _
"C:\Documents and Settings\Bureaublad\test\Invoer bestand.xlsx"
Windows("Proces bestand.xlsx").Activate
Range("A5:A13").Select
Selection.Copy
Windows("Invoer bestand.xlsx").Activate
Range("A2").Select
ActiveSheet.Paste
Windows("Proces bestand.xlsx").Activate
Range("B5:B13").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Invoer bestand.xlsx").Activate
Range("E2").Select
ActiveSheet.Paste
Windows("Proces bestand.xlsx").Activate
Range("D5:D13").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Invoer bestand.xlsx").Activate
Range("B2").Select
ActiveSheet.Paste
Windows("Proces bestand.xlsx").Activate
Range("E5:E13").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Invoer bestand.xlsx").Activate
Range("C2").Select
ActiveSheet.Paste
Range("D2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2:D10"), Type:=xlFillDefault
End Sub
de regels 5 t/m 13 worden in het voorbeeld gekopieerd, het zou ook kunnen dat het regel 5 t/m 500 moet zijn.
Ik hoop dat iemand mij kan helpen.
Alvast bedankt.
Maarten