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

Besturingselement centraal wijzigen

Status
Niet open voor verdere reacties.

youdeni

Gebruiker
Lid geworden
28 feb 2008
Berichten
147
Ik hoop dat jullie mij hierbij kunnen helpen. Ik heb een bestand (ik heb een voorbeeldje gemaakt en bijgevoegd) Waarin in een aantal tabbladen een besturingselement zit waarin je de maand kan kiezen. Zo kan je per tabblad switchen tussen maanden.

De uitdaging is als volgt. Als ik de rapportage (het bestand) wil afdrukken dan geef ik op
het voorblad de desbetreffende maand in. Echter nu moet ik in alle afzonderlijke tabbladen (een stuk of 30) controleren of elk tabblad op de desbetreffende maand staat. Is het mogelijk (en zo ja hoe) voordat Excel gaat printen dat de tabbladen allemaal komen te staan op de maand in het voorblad?
 

Bijlagen

Eerst op tabblad "voorblad" in een cel uitrekenen wat de waarde van de maand is die je in D19 hebt ingevoerd. Ik heb die even in J19 gezet

Voor ieder blad:
Code:
Range ("blad1!A1").value = Range("Voorblad!J19").Value

Daarmee zet je alles gelijk volgens mij
 
Eerst op tabblad "voorblad" in een cel uitrekenen wat de waarde van de maand is die je in D19 hebt ingevoerd. Ik heb die even in J19 gezet

Voor ieder blad:
Code:
Range ("blad1!A1").value = Range("Voorblad!J19").Value

Daarmee zet je alles gelijk volgens mij

Gert, bedankt voor je reactie. Moet ik deze regel boven de print macro zetten? Wat moet precies berekend worden? Kan je een voorbeeld bijvoegen?
 
Je zet deze regels(s) - één voor ieder tabblad- neer net voor je printmacro. Kan allemaal wel sneller en simpeler maar dit werkt ook.

Code:
Sub BerekenMaand()

Range("blad1!A1").Value = Range("Voorblad!J19").Value
Range("blad2!A1").Value = Range("Voorblad!J19").Value
Range("blad4!A1").Value = Range("Voorblad!J19").Value

End Sub
 
Je zet deze regels(s) - één voor ieder tabblad- neer net voor je printmacro. Kan allemaal wel sneller en simpeler maar dit werkt ook.

Code:
Sub BerekenMaand()

Range("blad1!A1").Value = Range("Voorblad!J19").Value
Range("blad2!A1").Value = Range("Voorblad!J19").Value
Range("blad4!A1").Value = Range("Voorblad!J19").Value

End Sub

Ik heb toch nog een vraag, :(
Als ik in bovenstaande formule een tabblaad naam met spaties heb, dan krijg ik een foutmelding:
Range("test veld ok!A1").Value = Range("Voorblad!J19").Value

Fout 1004 tijdens uitvoering: Methode Range van object_Global is mislukt
 
1.
Op het blad Intake staat in A1:B13 een lijst met maanden en nummers.
Logisch is dat maanden en maandnummers op elkaar zijn afgestemd (jan =1, febr = 2, enz.). Dat is bij jou niet het geval in Blad1, Blad2, en Blad4 (jan =2, febr =3, enz). Wil je dat echt zo? Als je dat zo wil houden en je wil de maanden op alle bladen synchroniseren met de maand op het voorblad, dan moet je met dat maandverschil rekening houden. Gebruikers zullen het onlogisch vinden dat als ze via de keuzelijst een maand kiezen, daar niet het bijbehorende maandnummer bij verschijnt. In de keuzelijst moet je het woord "maand" ook niet opnemen.
Ik raad je dus aan om op het blad Intake die tabel aan te passen. Als je dat doet, dan moeten ook in Blad1, Blad2, en Blad4 de functies in F28 worden aangepast.
In die functies staat (denk ik) een fout. Ze beginnen met:
ALS(A1=2;...;ALS(A1=3;... enz, maar na ALS(A1=6;... komt NIET ALS(A1=7;... maar ALS(A1=33;... Is dat juist?
Als 33 inderdaad door 7 moet worden vervangen, dan kan voor die functie een veel kortere in de plaats komen. Ik zal daarmee wachten tot je op dit bericht hebt geantwoord.

2.
Als op de bladen Blad1, Blad2, Blad4 in A1 de maandnummers moeten vershijnen, stel die cellen (voor zover dat nog niet het geval is) in als "standaard".

3.
Op alle bladen hetzelfde maandnummer instellen in A1 kan via onderstaande macro. Die macro geldt voor het bestand dat je hier als voorbeeld plaatste. In een ander bestand kunnen de bladen anders gerangschikt zijn en het kan zijn dat de code dan moet worden aangepast. Die macro geldt in de veronderstelling dat op Blad1, Blad2, en Blad4 maandnaam en maandnummer op elkaar zijn afgestemd. Daarvoor moet je dus eerst de tabel op het blad Intake aanpassen, zoals in punt 1 beschreven.
Code:
Sub macro1()
Dim x As Integer
For x = 2 To 4
With Worksheets(x)
.Range("A1").Value = Month(Worksheets(1).Range("D19"))
End With
Next x
End Sub

Wil je toch dat in Blad1, Blad2, en Blad4, het maandnummer 1 hoger is dan het logische maandnummer, wijzig dan regel 5 van de macro als volgt:
Code:
.Range("A1").Value = Month(Worksheets(1).Range("D19"))+1

Succes er mee.
 
Bedankt voor je bijdrage en de goede tips! Alleen mijn vraag wordt niet echt beantwoord.
Kan je hier ook nog op reageren?

bvD
 
Bedankt voor je bijdrage en de goede tips! Alleen mijn vraag wordt niet echt beantwoord. Kan je hier ook nog op reageren?
Dat heb ik toch gedaan dacht ik.
Je vroeg nl. om in alle bladen de maanden te synchroniseren en die macro (eventueel aangepast zoals ik onder de macro aangaf) doet dat.
 
Dat heb ik toch gedaan dacht ik.
Je vroeg nl. om in alle bladen de maanden te synchroniseren en die macro (eventueel aangepast zoals ik onder de macro aangaf) doet dat.

Sorry mss ben ik niet duidelijk genoeg geweest in mijn vraagstelling, Het volgende is namelijk het probleem, de macro werkt wel, maar als ik een tabblad heb met een spatie in de naam dan krijg ik de volgende melding:
Range("test veld ok!A1").Value = Range("Voorblad!J19").Value

Fout 1004 tijdens uitvoering: Methode Range van object_Global is mislukt


Als ik de spatie weghaal in de naam van het tabblad werkt het wel!
 
Gebruik dit:
Code:
Worksheets("test veld ok").Range("A1").Value = Worksheets("Voorblad").Range("J19").Value
 
THANX :thumb::thumb:
Het werkt, het kan soms zo simpel zijn
Heb je ook nog onderstaande formule voor me???

In die functies staat (denk ik) een fout. Ze beginnen met:
ALS(A1=2;...;ALS(A1=3;... enz, maar na ALS(A1=6;... komt NIET ALS(A1=7;... maar ALS(A1=33;... Is dat juist?
Als 33 inderdaad door 7 moet worden vervangen, dan kan voor die functie een veel kortere in de plaats komen. Ik zal daarmee wachten tot je op dit bericht hebt geantwoord.
 
Wat in het blad "test veld ok" in F 28 staat, kan vervangen worden door:
Code:
=KIEZEN($A$1;"";Intake!C31;Intake!D31;Intake!E31;Intake!F31;Intake!G31;Intake!H31;Intake!I31;Intake!J31;Intake!K31;Intake!L31;Intake!M31;Intake!N31)
In de andere bladen kun je de formules overeenkomstig aanpassen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan