markdehaan
Gebruiker
- Lid geworden
- 8 mrt 2011
- Berichten
- 34
Hallo allemaal,
ik weet dat er over dit onderwerp al heel wat vragen zijn gesteld, maar ik kom er toch niet uit.
Ik heb een macro gemaakt die een database omzet naar statestieken, alleen doet hij er nogal lang over om het te berekenen. Ik weet haast wel zeker dat ik nogal omslachtig te werk ga aangezien mijn kennis van VBA niet optimaal is. De rijen waar de macro op draait staan vol met 0en en 1tjes dit zodat ik ze op kan tellen.
De code ziet er als volgt uit:
En dat dan voor een stuk of 20 verschillende rijen
De macro die jullie er tussen zien staan is trouwens:
Deze macro kopieerd de waarden naar a2 dit doet hij omdat ik de som van de waarden wil hebben. in a1 staat dus som(a:a) deze kopieerd hij dan met de eerste macro weer weg naar het uiteindelijke blad waar het in een tabel komt te staan.
Het is nogal een lang verhaal geworden, maar ik hoop dat er iemand is die het begrijpt en me een snellere/kortere code kan uitleggen.
alvast bedankt!
mark
ik weet dat er over dit onderwerp al heel wat vragen zijn gesteld, maar ik kom er toch niet uit.
Ik heb een macro gemaakt die een database omzet naar statestieken, alleen doet hij er nogal lang over om het te berekenen. Ik weet haast wel zeker dat ik nogal omslachtig te werk ga aangezien mijn kennis van VBA niet optimaal is. De rijen waar de macro op draait staan vol met 0en en 1tjes dit zodat ik ze op kan tellen.
De code ziet er als volgt uit:
Code:
Selection.AutoFilter Field:=33, Criteria1:="1"
Application.Run "opzet.xls!macro12"
Range("c1").Select
Selection.Copy
Sheets("maandoverzicht").Select
Range("c18").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("macro").Select
Range("A1").Select
Selection.Copy
Sheets("maandoverzicht").Select
Range("C19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("macro").Select
Range("B1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("maandoverzicht").Select
Range("C20").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("macro").Select
Range("k1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("maandoverzicht").Select
Range("c21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("data").Select
Selection.AutoFilter Field:=33
En dat dan voor een stuk of 20 verschillende rijen
De macro die jullie er tussen zien staan is trouwens:
Code:
Sub Macro12()
Range("ad3:ad1500").Select
Selection.Copy
Sheets("macro").Select
Range("a2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
Range("ae3:ae1500").Select
Selection.Copy
Sheets("macro").Select
Range("b2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("data").Select
Range("ac3:ac1500").Select
Selection.Copy
Sheets("macro").Select
Range("c2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("data").Select
Range("at3:at1343").Select
Selection.Copy
Sheets("macro").Select
Range("k2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Deze macro kopieerd de waarden naar a2 dit doet hij omdat ik de som van de waarden wil hebben. in a1 staat dus som(a:a) deze kopieerd hij dan met de eerste macro weer weg naar het uiteindelijke blad waar het in een tabel komt te staan.
Het is nogal een lang verhaal geworden, maar ik hoop dat er iemand is die het begrijpt en me een snellere/kortere code kan uitleggen.
alvast bedankt!
mark
Laatst bewerkt door een moderator: