• 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 om in functie van de maand een andere kolom te selecteren

Status
Niet open voor verdere reacties.

brejen

Gebruiker
Lid geworden
21 apr 2007
Berichten
121
ik heb een excel bestand waarin ik in functie van welke maand het is een bepaalde kolom wil selecteren en naar een ander sheet in de overeenkomstige maandkolom wil plakken. ik heb hiervoor een macro per maand geschreven (zie voorbeelden hieronder). op welke manier kan ik dit in één macro verwerken? dit zou ik dan voor een heel jaar willen uitwerken.
Sub maartUI()
'
' maartUI Macro
'
Sheets("Dataverwerking").Select
'
Range("Q3:Q82").Select
Selection.Copy
Sheets("Uitgaven").Select
ActiveWindow.SmallScroll Down:=-18
Range("AH5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Dataverwerking").Select
ActiveWindow.SmallScroll Down:=48
Range("Q92:Q100").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Inkomsten + Spaargeld").Select
Range("H12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Stand Rekeningen").Select
End Sub
Sub AprilUI()
'
' AprilUI Macro
'

Sheets("Dataverwerking").Select
Range("R3:R82").Select
Selection.Copy
Sheets("Uitgaven").Select
Range("AI5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Dataverwerking").Select
ActiveWindow.SmallScroll Down:=51
Range("R92:R100").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Inkomsten + Spaargeld").Select
Range("I12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Stand Rekeningen").Select
End Sub
 
Dat kan op verschillende manier maar zonder voorbeeldbestand is het onmogelijk om te bepalen wat in jou situatie het handigst is.
 
Hoi,

Het helpt als je de code tussen ## zet, maakt het wat leesbaarder:

Code:
Sub maartUI()
'
' maartUI Macro
'
Sheets("Dataverwerking").Select
'
Range("Q3:Q82").Select
Selection.Copy
Sheets("Uitgaven").Select
ActiveWindow.SmallScroll Down:=-18
Range("AH5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Dataverwerking").Select
ActiveWindow.SmallScroll Down:=48
Range("Q92:Q100").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Inkomsten + Spaargeld").Select
Range("H12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Stand Rekeningen").Select
End Sub
Sub AprilUI()
'
' AprilUI Macro
'

Sheets("Dataverwerking").Select
Range("R3:R82").Select
Selection.Copy
Sheets("Uitgaven").Select
Range("AI5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Dataverwerking").Select
ActiveWindow.SmallScroll Down:=51
Range("R92:R100").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Inkomsten + Spaargeld").Select
Range("I12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Stand Rekeningen").Select
End Sub

Wat ook helpt is als je alle overbodige zaken uit de code haalt:

Code:
Sub maartUI()
'
' maartUI Macro
'
Sheets("Dataverwerking").Range("Q3:Q82").Copy
Sheets("Uitgaven").Range("AH5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Dataverwerking").Range("Q92:Q100").Copy
Sheets("Inkomsten + Spaargeld").Range("H12").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Stand Rekeningen").Select
End Sub

En om Roel aan te halen: wat echt helpt is een voorbeeldbestandje
 
ik heb het bestand in bijlage gezet. op tab 'dataverwerking' in cel b2 kan de maand gekozen worden. ik heb nu voor elke maand (zie cel AB3) een aparte macro maar ik zou er ééntje willen. ik weet echter niet hoe ik dat moet aanpakken.
 

Bijlagen

obv de maandnaam in B2

Code:
Sub VenA()
  With Sheets("Dataverwerking")
    t = Application.Match(.Range("B2"), Application.GetCustomListContents(4), 0)
    Sheets("Uitgaven").Range("AE5:AE84").Offset(, t) = .Range("N3:N82").Offset(, t).Value
    Sheets("Inkomsten + Spaargeld").Range("E12:E20").Offset(, t) = .Range("N92:N100").Offset(, t).Value
  End With
End Sub
 
zie bijlage

Op tabblad Data heb ik in kolom D toegevoegd in welke kolom een bepaalde maand is te vinden en bereik C1:D12 heeft een naam gekregen (maandkolommen)
Op tabblad Dataverwerking wordt in cel A2 dat kolomnummer opgezocht mbv vert.zoeken.
Tenslotte een knop gezet in A2 en macro maandUI toegevoegd.
Code:
Sub maandUI()
startkol = [A2]
Sheets("Dataverwerking").Select
    Cells(3, startkol).Resize(80).Copy
Sheets("Uitgaven").Select
    Cells(5, Start + 17).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Dataverwerking").Select
    Cells(92, startkol).Resize(9).Copy
Sheets("Inkomsten + Spaargeld").Select
    Cells(12, startkol - 12).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Stand Rekeningen").Select
End Sub
 

Bijlagen

Bedankt, dit is wat ik zoek; ik heb het nu proberen in te brengen in mijn origineel bestand maar dan krijg ik bij het runnen van de macro een foutmelding dat een variabele niet gedeclareed is. de lijn start kolom [A2] is geel gekleurd.
moet ik nog iets extra aanpassen buiten wat je opgesomd hebt?
 
Haal dan boven in je code de regel Option Explicit weg.
 
Of declareer de variabele.

Dim t as long voor mijn code.
Dim startkol as long
long mag ook integer zijn.

In de code van @Haije
Krijg je ook een foutmelding op de regel
Code:
Cells(5, Start + 17).Select
en anders een anders dan verwacht resultaat.
 
het probleem zit in veld A2 waar de kolomnummer wordt opgezocht. Daar moet 18 staan voor april maar er staat #naam.
 
Er staat ook code in #6 heb je die ook geprobeerd? of moet het eerst in een beveiligd bestand gezet worden?
 
ik krijg inderdaad een ander resultaat dan verwacht. wanneer ik effectieve getallen invoer dan zie je dat de berekening fout loopt.
 
heb de oorzaak gevonden : in lijn 11 stond startkolom -12 . dit moet -9 zijn. werkt nu perfect. Bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan