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

Twee formules in een marco krijgen + Kolom zonder waarde automatisch verbergen

Status
Niet open voor verdere reacties.

mayke89

Gebruiker
Lid geworden
10 dec 2009
Berichten
50
Ik zoek een methode om automatisch regels te verbergen als cellen leeg zijn. Maar ook later nog zichtbaar kunnen te maken, dmv een knop
Wie weet een oplossing?

Uitleg wat mijn bedoeling is voor mijn Excelbestand:
Werkblad: "Balans" en "W&V" heeft meerder kolommen. En daarin wil ik macro knoppen bouwen. Zodat ik met een knop alles netjes heb, en niet handmatig rijen/kolommen dicht hoeft te zetten.

FUNCTIE VAN KNOP 1: mag ook gekoppeld worden met knop 2
Ik wil dat de volgende kolommen met een knop (macro) dicht kunnen gezet worden als in werkblad "gegevens" geen bedrijfsnaam is gevuld in kolom B (verbergen van hele kolommen, als er geen waarde is gevuld bij werkblad gegevens).
G = werkblad gegevens
B/W = werkbladen balans en Winst en verlies

G B6 = Leeg, dan kolommen B/W B dichtzetten
G B7 = Leeg, dan kolommen B/W D dichtzetten
G B8 = Leeg, dan kolommen B/W F dichtzetten
G B9 = Leeg, dan kolommen B/W H dichtzetten
G B10 = Leeg, dan kolommen B/W J dichtzetten
G B11 = Leeg, dan kolommen B/W L dichtzetten
G B12 = Leeg, dan kolommen B/W N dichtzetten
G B13 = Leeg, dan kolommen B/W P dichtzetten
G B14 = Leeg, dan kolommen B/W R dichtzetten
G B15 = Leeg, dan kolommen B/W T dichtzetten

FUNCTIE KNOP 2:
In werkblad "balans" en in werkblad "W&V" wil ik de regels verbergen als geen waarde in cellen X en Z. Als bijvoorbeeld X10 is gevuld en Z10 niet mag het niet verborgen worden. Mag alleen verborgen worden als beide cellen leeg zijn. Bouwen van een Marco met 1 formule is me gelukt. Alleen krijg ik geen twee formules in een Marco gebouwd. Want nu kijkt de Marco naar een kolom maar moet in totaal naar twee kolommen kijken.

PS. Met het openen/opslaan krijg ik een melding. Hoe krijg ik deze eruit, zonder dat ik formules/instellingen kwijt raak?

Wie o Wie, kan mij hieruit helpen? GRAAG!!
Ben al via internet opzoek gegaan naar oplossingen per functieknop. Maar kom er niet meer uit:(

Bestand:

Alvast bedankt!!

Groetjes Mayke
 

Bijlagen

  • Consolidatie standaard model.xls
    106 KB · Weergaven: 56
Laatst bewerkt:
Wanneer wordt er wat in G6, G7 etc gezet? Zo te zien is deze kolom (net als kolom E, K etc) bedoeld om witruimte te creëren tussen je werkelijk gebruikte kolommen. Nog afgezien van de vraag of dat een slim idee is (de vraag stellen is 'm beantwoorden, lijkt me) zie ik geen formules die deze kolom ergens mee vullen.
 
Beste OctaFish,

Dat klopt. Alleen in mijn vraagstelling staat G voor werkblad Gegevens, B/W staat voor werkblad Balans en Werkblad W&V

Werkblad gegevens, heb je in kolom B 6 tm B15 blauwe cellen. Deze worden gevuld met een naam. Deze cel is gelinkt met de andere twee werkbladen. Niet alle cellen zullen gevuld worden. Ooit blijven de laatste cellen leeg. Daarom wil doormiddel van een knop alle kolommen in werkblad balans en werkblad w&v verbergen (indien niet gebruikt wordt)

Hopelijk is het nu een beetje duidelijker omschreven door mij.
 
Laatst bewerkt:
Probeer deze eens

Code:
Sub VenA()
Application.ScreenUpdating = False
ar = Sheets("Gegevens").Range("B6:B15")
    For j = 1 To UBound(ar)
        If ar(j, 1) = vbNullString Then
            Sheets("Balans").Columns(j * 2).Hidden = True
            Sheets("W&V").Columns(j * 2).Hidden = True
          Else
            Sheets("Balans").Columns(j * 2).Hidden = False
            Sheets("W&V").Columns(j * 2).Hidden = False
        End If
     Next j
End Sub
 
Laatst bewerkt:
Dankjewel voor je snelle reactie!

Marco werkt redelijk. Ik heb nog een verzoekje meer voor deze Marco. De lege kolommen gaan nu niet mee dicht, dit wil ik wel heel graag. Is het mogelijk dit zo te bouwen, dat ook de lege kolom achter de kolom mee dicht gaat. Bijvoorbeeld kolom B gaat dicht + lege kolom C. Kolom D gaat dicht + lege kolom E. etc.?


Is het ook om mogelijk om de bovenstaande marco uit te bereiden met het dichtzetten van de lege regels? Deze heb ik nu op een aparte knop gezet. Het mooiste is een knop voor alles dichtzetten (volgens eisen) en alles open zetten. Tevens die knop die ik heb gemaakt is helaas nog niet volledig. Zie ook mijn vraag voor uitgebreide uitleg.
 
Om de onnodige kolommen (zie ook de opmerking in #2) ook te verbergen.

Code:
Sub VenA()
Application.ScreenUpdating = False
ar = Sheets("Gegevens").Range("B6:B15")
    For j = 1 To UBound(ar)
        If ar(j, 1) = vbNullString Then
            Sheets("Balans").Columns(j * 2).Resize(, 2).Hidden = True
            Sheets("W&V").Columns(j * 2).Resize(, 2).Hidden = True
          Else
            Sheets("Balans").Columns(j * 2).Resize(, 2).Hidden = False
            Sheets("W&V").Columns(j * 2).Resize(, 2).Hidden = False
        End If
     Next j
End Sub

Alles zichtbaar
Code:
Sub VenA1()
Sheets("Balans").Columns.Hidden = False
Sheets("W&V").Columns.Hidden = False
End Sub

Welke rijen je wil verbergen kan ik uit de vraag niet opmaken.
 
Laatst bewerkt:
Werkblad w&v, geen waarde boven de 0 in zowel kolom z en x dan rij verbergen.
 
test deze maar eens.

Code:
Sub VenA()
Application.ScreenUpdating = False
For Each cl In Sheets("W&V").Columns(24).SpecialCells(-4123)
    If cl = 0 And cl.Offset(, 2) = 0 Then cl.Rows.Hidden = True
Next cl
End Sub
 
Bedankt voor jullie hulp.

De twee werken nu afzonderlijk van elkaar. Kunnen we nu ook de formule maken, zodat het een Marco wordt?

Dichtzetten rijen:
Sub VenA()
Application.ScreenUpdating = False
For Each cl In Sheets("W&V").Columns(24).SpecialCells(-4123)
If cl = 0 And cl.Offset(, 2) = 0 Then cl.Rows.Hidden = True
Next cl
End Sub

dichtzetten kolommen:
Sub VenA()
Application.ScreenUpdating = False
ar = Sheets("Gegevens").Range("B6:B15")
For j = 1 To UBound(ar)
If ar(j, 1) = vbNullString Then
Sheets("Balans").Columns(j * 2).Resize(, 2).Hidden = True
Sheets("W&V").Columns(j * 2).Resize(, 2).Hidden = True
Else
Sheets("Balans").Columns(j * 2).Resize(, 2).Hidden = False
Sheets("W&V").Columns(j * 2).Resize(, 2).Hidden = False
End If
Next j
End Sub
 
Is het mogelijk om deze twee macro's ook als één macro te bouwen? Zodat ik één knop eraan kan koppelen? Of wil ik nu teveel;)
 
Haal bij de eerste macro End Sub weg en bij de tweede macro Sub VenA() weg.
Dit moet je doen als ze onderelkaar staan.

Test of het dan nog steeds goed werkt.
Suc6
 
Dankjulliewel!! Het me eindelijke gelukt!. Mijn dank ik groot!!

Ik heb een cursus gevolgd alleen heb ik in deze cursus macro's via opnemen geleerd. Heeft iemand een tip waar ik het bouwen van marco's kan leren (bijv. via internet site)?
 
De code kan wat een eenvoudiger.
Verbergen

Code:
Sub VenA()
Application.ScreenUpdating = False
ar = Sheets("Gegevens").Range("B6:B15")
For Each sh In Sheets(Array("Balans", "W&V"))
    For j = 1 To UBound(ar)
        If ar(j, 1) = vbNullString Then sh.Columns(j * 2).Resize(, 2).Hidden = True
    Next j
    If sh.Name = "W&V" Then
        For Each cl In sh.Columns(24).SpecialCells(-4123)
            If cl = 0 And cl.Offset(, 2) = 0 Then cl.Rows.Hidden = True
        Next cl
    End If
Next sh
End Sub

Zichtbaar maken
Code:
Sub VenA1()
For Each sh In Sheets(Array("Balans", "W&V"))
    sh.Columns.Hidden = False
    If sh.Name = "W&V" Then sh.Rows.Hidden = False
Next sh
End Sub
 
Daar ben ik weer;).

Gister dacht ik dat het bestand uitstekend werkte. Na mijn test vandaag kwam ik erachter dat niet alleen naar X en Z gekeken moet worden, maar V,X,Z (rijen dichtzetten).

Sub VenA()
Application.ScreenUpdating = False
For Each cl In Sheets("W&V").Columns(24).SpecialCells(-4123)
If cl = 0 And cl.Offset(, 2) = 0 Then cl.Rows.Hidden = True
Next cl
End Sub

Wie kan mijn helpen. Ik dacht zelf dat ik bij Columns(24), 24 in 22 moest wijzigen. Maar waarschijnlijk heb ik het mis, want het werkte bij mij niet.
 
If cl = 0 And cl.Offset(, 2) = 0 And cl.Offset(, -2) = 0 zal het waarschijnlijk doen.
 
Da's mooi:thumb: Wil je vraag nog wel even op opgelost zetten?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan