• 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 voor kolommen verbergen tot vandaag

Status
Niet open voor verdere reacties.

drkrimson

Gebruiker
Lid geworden
25 feb 2016
Berichten
17
Goede middag,

Ik wil een deel van de kolommen verbergen. Vanaf kolom C tot 5 dagen vóór de kolom met datum "vandaag". Het lukt me wel om een macro te maken met een selectie. Hoe pas ik de macro aan dat ie altijd 5 dagen voor vandaag verbergt?

Alvast bedankt.
 

Bijlagen

  • verbergen-zichtbaar-vandaag.xlsm
    14,7 KB · Weergaven: 105
Ik heb dit gedaan door eerst de kolom nummer te laten bepalen met de volgende formule:
Code:
=VERGELIJKEN(VANDAAG()-5;4:4;0)
Hier wordt in rij 4 gezocht naar de datum van vandaag -5, vervolgens wordt daarvan de kolomnummer bepaald. Deze formule heb ik dit geval in cel b14 staan.

Dit kolomnummer kan vervolgens ingevoerd worden in de volgende vba regel.
Code:
Range(Columns([COLOR="#FF0000"]3[/COLOR]), Columns([COLOR="#00FF00"]Range("b14")[/COLOR])).EntireColumn.Hidden = True
Hierbij is het groene getal het eerste kolom nummer dat je wil verbergen in dit geval C=3
Het rode gedeelte is de range waar de formule in staat die het kolomnummer berekend van vandaag -5.

Zie ook het voorbeeld bestand Bekijk bijlage verbergen-zichtbaar-vandaag Q.xlsm


Daarnaast nog een Tip voor de macro's die jij hebt gemaakt. Probeer zoveel mogelijk het selecteren van cellen te vermijden, dit doet de snelheid van de macro geen goed. Zo kan het rode gedeelte in jou macro verwijderd worden.
Code:
Sub ZICHTBAAR()
'
' ZICHTBAAR Macro
'

'
    Cells.[COLOR="#FF0000"]Select
    Selection.[/COLOR]EntireColumn.Hidden = False
    Range("A9").Select
End Sub
 
Laatst bewerkt:
Zonder formule in het werkblad.

Code:
Sub VenA()
Dim f As Range
  Set f = Rows(4).Find(Format(Date - 5, "d-mmm"), , xlValues)
  If Not f Is Nothing Then Columns(2).Resize(1, f.Column).Hidden = True
End Sub
 
Bedankt VenA,

Ik had nog geprobeerd om dat in VBA te krijgen maar het lukte met niet. Nu weet ik ook weer hoe dat moet:thumb:
 
Laatst bewerkt:
Quiby en VenA,

Bedankt voor de hulp.

Ik heb de code van VenA ingevoerd in mijn originele bestand, maar krijg hem niet werkend. Ik heb de Rows en Columns aangepast naar mijn situatie, maar de macro werkt niet meer. In het testbestandje ging het aanpassen wel goed. Waar gaat het mis?
 

Bijlagen

  • Planning_2016test2.xlsx
    226,4 KB · Weergaven: 121
Als je een bestand opslaat als een bestand dat geen macro's mag bevatten .xlsx gaat het immer mis.

en ik zou deze code gebruiken:

Code:
Private Sub Worksheet_Activate()
    Columns.Hidden = False
    Columns(12).Resize(, Date - Cells(24, 12) - 4).Hidden = True
End Sub

of nog simpeler:

Code:
Private Sub Worksheet_Activate()
    Application.Goto Cells(25, 12 + Date - Cells(24, 12) - 4)
End Sub
 
Laatst bewerkt:
snb,

Ik knip-plak de code in mijn macro. NA het afsluiten van VBA zie ik echter geen macro's meer in mijn bestand (ALT + F8) Waar gat het mis? Hoe voer ik de macro uit?
 
2016-06-21_120157.png

De code van snb moet achter uw werkblad komen.
 
Aan alle,

het is gelukt! Ik heb hem nu zo ingesteld dat de macro bij het openen van het bestand geactiveerd wordt.

Dank!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan