• 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 één verhogen

Status
Niet open voor verdere reacties.

JanOdb

Gebruiker
Lid geworden
16 okt 2017
Berichten
50
De volgende code verhoogt de waarde van een cel telkens met één:

Sub Voegeentoe()
Range("A1").Value = Range("A1") + 1
End Sub

Ik maak een cel aanklikbaar, waardoor deze code wordt uitgevoerd.

Maar: ik wil dit doen met verschillende cellen. Moet ik nu telkens die code gebruiken (met aangepaste celcoördinaten), of bestaat er een manier om met één code verschillende cellen te 'bedienen'.
 
Laatst bewerkt:
Wat is nu echt de bedoeling?

Post eens een bestandje.
 
Je kan dat met meerdere cellen doen zelfs met dubbele klik in een van de cellen,post eens een voorbeeld
 
Dit achter je werkblad:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Select Case Target.Address
        Case "$A$1", "$B$1", "$C$1" [COLOR="#008000"]'<- de cellen waarop dit moet werken[/COLOR]
            Target.Value = Target.Value + 1
    End Select
End Sub
 
Laatst bewerkt:
Ik heb hier nog een vraagje bij: ik ben nog maar recent bezig met VBA, dus ik ken er nog niet veel van. Nu vind ik ergens dat mijn code moet zijn: Public Sub ...(enz).
Nu staat er bij edmoor 'Private'. Zijn die 'private' en 'public' nodig, én wanneer het ene en wanneer het andere?
 
Private en Public hebben te maken met de bereikbaarheid van de betreffende Sub of Function vanuit andere modules/secties.
 
Vraagje aan edmoor: als ik nu de code wil toepassen op een aaneengesloten reeks cellen, moet ik ze dan allemaal afzonderlijk opgeven, of kan ik ook een bereik opgeven?
 
Een bereik opgeven kan ook, maar dan gaat de code er anders uit zien.
Dat kan dus niet zondermeer in m'n voorbeeld.
Je kan dan beter met INTERSECT gaan werken.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:K1")) Is Nothing Then
        Target.Value = Target.Value + 1
    End If
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan