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

Lege cellen in een range vullen

Status
Niet open voor verdere reacties.

N12047

Gebruiker
Lid geworden
27 aug 2015
Berichten
56
Beste,

Graag zou ik jullie hulp willen inroepen voor het volgende.

Achter mijn sheet hangt een macro die in een bepaalde range alle lege cellen opvult met nullen.
(Zelf gemaakt en daar ben ik best wel een beetje trots op).
Hier ben ik erg tevreden mee maar tijdens het maken van grafieken heb ik daar problemen mee.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Vul al vast een waarde 0 in
    On Error Resume Next
    For Each c In Range("C10:E25").Cells
        If c = "" Then c.Value = "0"
    Next
    If Target.Cells = ActiveCell And Target.Cells = "0" Then
        ActiveCell.ClearContents
    End If
End Sub

Ik zou graag deze macro gewijzigd willen hebben in het volgende:

Vul alle lege cellen in deze range met nullen TOT AAN de laatste ingevulde cel.
Alle cellen na de laatste ingevulde cel mogen niet ingevuld worden en moeten leeg blijven.

Zie ook bijgevoegd bestandje.

Wie zou mij hier mee kunnen helpen?
 

Bijlagen

Waar staat in werkelijkheid jouw gegevensrange? Is de laatste rij van de drie kolommen wel altijd hetzelfde? Ik zou het onder een knop zetten ipv bij elke verplaatsing de code aan te roepen.

Probeer deze eens.
Code:
Sub VenA()
With Range("C10:E" & Cells(Cells.Rows.Count, "C").End(xlUp).Row).SpecialCells(4)
    .Value = 0
    .Font.Color = vbRed
End With
End Sub
 

Bijlagen

Hallo VenA,

Dank voor je oplossing. In werkelijkheid staat alles op de plaats zoals ik aangegeven heb.
Ik hoefde alleen maar copy + paste jou code in mijn werkblad te doen.
En met een knop... werkt inderdaad mooier.

Mijn trendlijn in de grafiek wordt nu op de juiste manier weergegeven.

Ondertussen ben ik zelf ook aan het werk geweest en kwam tot de onderstaande oplossing.
Het werkt, maar is niet zo mooi als jou oplossing.
Maar... het helpt misschien een volgend persoon weer.

Code:
Private Sub Worksheet_Activate()
'Vul al vast een waarde 0 in
    On Error Resume Next
    For Each c In Range("C10:E25").Cells
        If c = "" Then c.Value = "#N/A"
    Next
    If Target.Cells = ActiveCell And Target.Cells = "#N/A" Then
        ActiveCell.ClearContents
    End If
End Sub

Bedankt voor de geboden oplossing.
 
Altijd goed om er zelf mee te experimenteren. :thumb: Het If gedeelte en de On Error kan je er nog uithalen.

Deze werkt iets sneller
Code:
Private Sub Worksheet_Activate()
    On Error GoTo einde
    Range("C10:E25").SpecialCells(4).Value = "#N/A"
einde:
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan