• 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 toevoegen voor vernieuwen van sheet bij openen en meer..

Status
Niet open voor verdere reacties.

SanneM

Gebruiker
Lid geworden
20 apr 2010
Berichten
19
Heb een excelbestandje gemaakt (bijlage), loop tegen een aantal zaken aan:

Zodra er een getal in kolom ‘aantal’ op tabblad 1 en/of tabblad 2 ingevuld wordt, wordt deze rij ook zichtbaar in het laatste tabblad “totaal”.
Maar als er niet overal een getal bij aantal ingevuld wordt, komen er lege (witte) regels op het totaalblad. Echter, zodra er wel wat ingevuld wordt bij aantal om een ander werkblad, moet de rij weer tevoorschijn komen. (geel gearceerd in de bijlage) Kan dat verholpen worden met een filter/macro?

Dacht zelf, door een kolom te creëren met de ALS formule. (Indien tekst 1, geen tekst 0 en deze kolom dan verbergen) En daar een filter opzetten, maar dit werkt niet helemaal perfect omdat de pagina steeds gerefreshed moet worden en dit dus niet automatisch gebeurd. (Handmatig is geen oplossing). Is het ook mogelijk om zodra je een sheet opent, dat deze automatisch vernieuwd wordt?

Ook wordt in het tabblad totaal de getallen niet meer bij elkaar opgeteld zodra er iets veranderd is. Hoe kan ik dat oplossen?

Of denk ik helemaal in de verkeerde richting met mijn oplossing en kan het anders/beter/makkelijker?

Hoop dat iemand mij hiermee (iig een stuk op weg) kan helpen. Zelf snap ik (nog) niet veel van macro's ed, dus graag jip en janneke uitleg. Alvast bedankt!
 

Bijlagen

Hoi Sanne,

Je kunt ook een code toevoegen die gestart wordt zodra het werkblad geopend wordt. De code maakt alle gele cellen die leeg zijn rijhoogte 0 zodat ze niet zichtbaar zijn.

Klik met de rechter muisknop op het tabje van het werkblad en kies voor Programmacode weergeven.
Plak de onderstaande tekst in de Vba-editor.

Private Sub Worksheet_Activate()
Rows("1:100").RowHeight = Range("A1").RowHeight
For Rij = 1 To 100
If Cells(Rij, 1).Interior.ColorIndex = 6 And Cells(Rij, 1) = "" Then Rows(Rij).RowHeight = 0
Next Rij
End Sub

Wat er gebeurt is dat de rijhoogte eers normaal wordt gemaakt, vervolgens worden alle rijen nagelopen en de lege, gele rijen worden op rijhoogte 0 gezet. Zo blijft het oorspronkelijke werkblad in tact.
Hoop dat je er wat aan hebt,

Jeroen

P.S. Verander =SOM(D5+D6+D7+D8) in =SOM(D5: D8) en =SOM(D10+D18) in =SOM(D10;D18) dat voorkomt vervelende foutmeldingen.
 
Laatst bewerkt:
Bedankt voor je snelle reactie!
Heb het toegevoegd aan mn excelbestand, de eerste keer dat ik wat getallen bij aantal veranderde, werkte het perfect.
Daarna niet meer? Bleef ik dus witte regels zien. Heb wel het gele gearceerde weggehaald, want dat was alleen zodat ik jullie het beter duidelijk kon maken, heeft het daarmee te maken?

Heb het al gevonden/iets aangepast. Het werkt nu, alleen verwijderd hij alle witregels. Het mooiste zou zijn dat ik aan kan geven dat er indien er witregels staan tussen regel 4 en 10 dat hij die op verbergen zet. Is dat mogelijk? (anders plakt hij alle tekst zo onder elkaar).
 
Laatst bewerkt:
Hoi Sanne,

Ja dat heeft er mee te maken.
If Cells(Rij, 1).Interior.ColorIndex = 6 And Cells(Rij, 1) = "" Then Rows(Rij).RowHeight = 0

Controleert of de achtergrond van de cel geel is.
Het weglaten van deze controle zal er voor zorgen dat veel meer regels op 0 gezet worden dat is ook niet de bedoeling.

Is het een oplossing door bijvoorbeeld kolom Z Geel te kleuren?
If Cells(Rij, 26).Interior.ColorIndex = 6 And Cells(Rij, 1) = "" Then Rows(Rij).RowHeight = 0

Andere oplossingen zijn ook mogelijk, maar bewerkelijker. Bijv:
If Cells(Rij, 1).HasFormula = True And Cells(Rij, 1) = "" Then Rows(Rij).RowHeight = 0

Als er in kolom 1 een formule staat en de inhoud is "" dan wordt de rijhoogte op 0 gezet

Groet,

Jeroen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan