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

Totaaltelling + Grafieken

Status
Niet open voor verdere reacties.

Marco Hoeksma

Gebruiker
Lid geworden
21 mrt 2006
Berichten
50
Hallo,

ik heb weer een paar probleempjes met mijn enquêteverwerking bestand:

1.) Ik heb een tabblad gemaakt waarop een totaaltelling wordt gemaakt van alle kantoren. Nu zou ik alleen graag willen dat wanneer ik een nieuw kantoor (lees tabblad) zou toevoegen, dat deze ook wordt opgenomen in de telling.

2.) Ook heb ik een grafiekenblad gemaakt. De wens hierbij is dat ik kan aangeven (via een listbox) van welk tabblad ik de grafieken willen laten zien. Dus van het totaal of van een individueel kantoor.

Graag jullie hulp! Alvast bedankt!!

N.B. Op de tabbladen "Totaal" en "Grafieken" staat een extra toelichting op bovenstaande probleempjes.

Met vriendelijke groet,

Marco Hoeksma
 

Bijlagen

  • Voorbeeldje voor Helpmij.zip
    23,8 KB · Weergaven: 42
1 deel van de vraag is opgelost:

Zet

Code:
Sub Worksheet_activate()
    Dim wsh As Worksheet, som As Integer
    som = 0
    For Each wsh In Worksheets
        If wsh.Name <> "Invoerblad" And wsh.Name <> "Totaal" And wsh.Name <> "Grafieken" Then
            som = som + wsh.Range("F3")
        End If
    Next
    Range("F3") = som
End Sub

achter de code van werkblad Totaal.

Wigi
 
Wigi,

dit werkt nog niet helemaal zo als ik bedoelde... Als ik nu namelijk een knop maak en jou geschreven "Sub Worksheet_activate" hieraan koppel en ik druk erop, dan wordt iedere keer van alle kantoren de waarde van cel F3 erbij opgeteld. Dan klopt deze hoeveelheid niet helemaal meer. De bedoeling is dat de Macro gewoon constateert hoeveel erbij alle kantoren in de betreffende cel staat en deze bij elkaar optelt. Als ik dan dus op de knop zou drukken is het dus meer een updateknop. Als er geen extra enquêtes zijn ingevoerd, gebeurd er niks. Is er één enquête ingevuld neemt F3 op tabblad "Totaal" met 1 toe.

Oh, en hoe doe ik dit voor meerdere cellen?? Ik heb nu som = som + wsh.Range("H3 , H6 , H7 ") geprobeerd, maar dit werkt blijkbaar niet! :(

In ieder geval bedankt!!

Groeten

Marco Hoeksma
 
Je moet gewoon niks doen. Die "Sub Worksheet_activate" zorgt ervoor dat wanneer je dat betreffende blad activeert, de som automatisch berekend wordt. Geen extra knoppen en dergelijke.

Wigi
 
hmmmm, ik heb net weer ff getest... wat je zei is idd waar, maar als ik nu naar een ander tabblad dan "Totaal" ga en ik kom weer terug op "Totaal" dan verdubbelt F3 gewoon weer... niet echt praktisch... Als hier een andere oplossing voor is, graag!

Met vriendelijke groet
 
Niet waar Marco,

ik gebruik de variabele som.

Die komt telkens op 0 aan het begin van de berekening. (zie de code als je het niet gelooft)

Wat er dan wel mis gaat indien jij toch gelijk zou hebben (wat ik niet denk), dat weet ik niet precies.

Wigi
 
Wigi,

je had idd gelijk... (beetje late reactie van mij :) ) ik snap niet hoe het kon dat ie eerst wel mis ging... Ik zal wel iets hebben gewijzigd ofzo waardoor dat op 0 zetten niet gebeurde. Kun je me ook vertellen hoe je deze telling voor meerdere cellen doet? Ik kom er namelijk niet uit. Ik zat ook te denken dat je misschien op het totaaluitkomsten blad wel (ipv de vba oplossing die jij me gaf) gewoon in de cellen iets zet van: =SOM(kantoor!H3) (dit had ik al geprobeerd, maar werkte niet). Hij leest "kantoor" dan als alle kantoren. Ik weet niet of dat kan hoor, maar dat bedacht ik.

Zou iemand daarnaast nog willen kijken naar mijn tweede probleem aan het begin van dit topic?? Dat zou super zijn!

Alvast bedankt!

Met vriendelijke groet,

Marco Hoeksma
 
Simpelste zal zijn om mijn vorige code ietwat aan te passen voor meerdere cellen:

Maak per som een nieuwe variabele. Bv. voor F3 en G3:

Code:
Sub Worksheet_activate()
    Dim wsh As Worksheet, somf3 As Long, somg3 as Long
    somf3 = 0
somg3 = 0
    For Each wsh In Worksheets
        If wsh.Name <> "Invoerblad" And wsh.Name <> "Totaal" And wsh.Name <> "Grafieken" Then
            somf3 = somf3 + wsh.Range("F3")
            somg3 = somg3 + wsh.Range("G3")
        End If
    Next
    Range("F3") = somf3
    Range("G3") = somg3
End Sub
 
Hmmm deze manier had ik ook bedacht, maar leek me wat complex, omdat ik het voor iets van 100 cellen wil doen. Is dit de enige manier??

Ook vraag ik me af wat dat Dim somf3 as Long inhoudt... Als ik dit namelijk weghaal, maakt dit geen verschil!
 
Laatst bewerkt:
Ik zal er een nieuwe functie voor schrijven die je overal in je file kan gebruiken. Vanavond hopelijk.
 
Misschien is bijgaand voorbeeld wat.

Voor deel1 van je vraag heb ik een blad genaamd eind ingevoegd achter al je werkbladen. Met de functie =SOM(Almere:eind!D6) tel ik nu de som van alle cellen D6 op de bladen van almere t/m eind. Eind is een leeg blad dus altijd nul.

Een nieuw blad moet je dan wel invoegen na het blad 'Almere' deze wordt dan vanzelf meegenomen in de som op blad 'totaal'. Als dit een probleem is zou je een blad 'begin' voor het tabblad Almere moeten maken, de formule op totaal wordt dan:
=SOM(begin:eind!D6).


Voor deel 2 zijn diverse oplossingen, als je dit forum doorleest zul je de gekozen oplossing ook wel ergens tegenkomen.
 

Bijlagen

  • Voorbeeldje voor Helpmij.zip
    26,5 KB · Weergaven: 26
Laatst bewerkt:
Hans123 zei:
Misschien is bijgaand voorbeeld wat.

Voor deel1 van je vraag heb ik een blad genaamd eind ingevoegd achter al je werkbladen. Met de functie =SOM(Almere:eind!D6) tel ik nu de som van alle cellen D6 op de bladen van almere t/m eind. Eind is een leeg blad dus altijd nul.

Een nieuw blad moet je dan wel invoegen na het blad 'Almere' deze wordt dan vanzelf meegenomen in de som op blad 'totaal'. Als dit een probleem is zou je een blad 'begin' voor het tabblad Almere moeten maken, de formule op totaal wordt dan:
=SOM(begin:eind!D6).

Voor deel 2 zijn diverse oplossingen, als je dit forum doorleest zul je de gekozen oplossing ook wel ergens tegenkomen.

Mooi zo Hans, dit wist ik niet :thumb:

En ik wou al een nieuwe User Defined Function schrijven :)

Wigi
 
Dankjewel Hans!! Het werkt nu helemaal naar wens! Super!
Wigi uiteraard ook bedankt voor de moeite! Top!

Met vriendelijke groet,

Marco Hoeksma
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan