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

Met macro zichtbare cellen vullen met waarde

Status
Niet open voor verdere reacties.

Jwitte

Gebruiker
Lid geworden
20 mrt 2019
Berichten
31
Beste allen,

ik wil een macro waarbij ik een vaste waarde (ja) in de zichtbare cellen (van de tweede colom) van een tabel plaats en dat in de derde colom dan automatisch "afgerond" komt te staan.
Zie voorbeeld.

Dit moet ook kunnen plaatsvinden als er een filter op zit. Het moet mogelijk zijn om een enkele cel te selecteren, maar ook meerdere cellen (mits de geselecteerde cellen dus in de tweede colom zijn).

Het gaat dus alleen om de zichtbare cellen.

De code die ik heb is:

If Selection.Column = 2 Then
Selection.SpecialCells(xlCellTypeVisible).Value = "ja"
Selection.SpecialCells(xlCellTypeVisible).Offset(, 1).Value = "afgerond"
End If


Als er geen filter op de tabel zit, doet deze het goed. Als er een filter opzit, doet deze het niet goed!!
Hoe kan ik dit fixen?

Vast bedankt!!
 

Bijlagen

Als er een filter opzit dan zijn de cellen toch niet zichtbaar? Waarom gebruik je dan xlCellTypeVisible?
 
Als er een filter opzit dan zijn de cellen toch niet zichtbaar? Waarom gebruik je dan xlCellTypeVisible?

In kolom 1 staan de maanden (1 tm 12).
Stel, ik filter maand 6 en 7 eruit, dan blijven 1-5 en 8-12 over.
Als ik nu de cellen in kolom B selecteer die staan voor maand 5 en 8, en ik voer de macro uit, dan wordt in kolom B het woord Ja en in kolom C het woord Afgerond in die cellen geplakt. In dit geval slaat hij dus 6 en 7 over. Als ik de filter eraf haal, zijn de cellen 5 en 8 voor kolom B aangepast naar 'ja' en voor kolom naar 'afgerond'.
De code die ik heb geschreven, voert dit ook goed uit, maaaaaar

Als ik de tabel heb gefilterd, en ik selecteer maar 1 maand en ik voer de macro uit, dan loopt mijn excel vast.
 
Laat het specialcells gedeelte dan weg.

Code:
Sub VenA()
  If Selection.Column = 2 Then Selection.Resize(, 2) = Array("ja", "afgerond")
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan