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

Code mag alleen werken indien de cursor in een van de volgende cellen staat

Status
Niet open voor verdere reacties.

Humadgen

Gebruiker
Lid geworden
16 aug 2006
Berichten
251
Hallo,

Ik zou graag willen dat een Macro alleen iets doet indien de cursor op een van de onderste Cellen staat en op alle ander cellen niets doet.

Dus als voorbeeld:
De cursor moet 1 omlaag springen indien de cursor op het moment van begin van de Macro in cel D10 of D20 stond, anders mag er niets gebeuren.

Ik zat te denken iets in deze richting:
Als de range = D10 of D20 dan -> voer je de 2e Macro uit, maar anders -> EXIT SUB.
In theorie heb ik het denk ik wel goed, maar hoe schrijf je dat dan weer in VBA.

Ik kwam niet verder dan:

Code:
Sub Macro1()
    If ActiveCell.Range = ("D10") or ActiveCell.Range = ("D20") Then
    Call GOTO_andere_CEL
    Else: Exit Sub

End Sub


Sub GOTO_andere_CEL()
        ActiveCell.Offset(1, 0).Select
End Sub

maaar dat werkt dus niet.

Heeft iemand voormij het antwoord?

Alvast bedankt
Humadgen
 
Probeer het eens met ActiveCell.Address(0, 0)
 
En wijzig die Else: Exit Sub in End If
 
Kan aan mij liggen, maar als ik in een cel sta en "enter" in druk op het toetsenbord, ga ik altijd 1 cel naar onder...
Daar is geen macro voor nodig toch? ;)
 
Allen bedankt voor de input, maar ik kom er niet verder mee.
@ Timshel


Waar moet ik in deze code

Code:
Sub Macro1()
    If ActiveCell.Range = ("D10") Or ActiveCell.Range = ("D20") Then
    Call GOTO_andere_CEL
    Else: Exit Sub
End Sub

Code:
ActiveCell.Address(0, 0)
plaatsen zodat cel D10 en D20 worden geidentificeerd, (even ter verduidelijking uiteindelijk wil ik nog meer cellen identificeren waarbij ALLEEN de Macro mag werken als de cursor op een van die cellen staat.

@ Edmoor
Als ik het vorig antwoord heb begrepen dan kan ik misschien ook de end if toepassen? want die zie ook nu nog niet

@ Ginger,
Tuurlijk heb je gelijk maar het idee is dat een bepaalde Macro ( niet dit voorbeeld ) pas mag gaat lopen als bijvoorbeeld de cursor in cell D10 staat of D20 of D30 en (zo nog een aantal meer)
Als deze op D9 staat worden er dingen verwijdert en dat wil ik beperken door alleen toestemming te geven als een van de vooraf gedefinieerde cellen is geselecteerd.
De 2e Macro was maar een voorbeeldje. uiteindelijk is het een heel ander Macro

Ik hoop dat dat een beetje meer duidelijkheid geeft op de probleem stelling
 
Wat Timshel bedoelt is dat je ActiveCell.Address(0, 0) moet gebruiken in plaats van ActiveCell.Range

En als het om meer cellen gaat dan de 2 in je voorbeeld kan je dat beter zo doen:
Code:
Sub Macro1()
    Select Case ActiveCell.Address(0, 0)
        Case "D10", "D20", "D30"
            Call GOTO_andere_CEL
    End Select
End Sub

Dan is het eenvoudiger uit te breiden met meer cellen.
 
Laatst bewerkt:
@ Edmoor

Helemaal super :thumb::thumb::thumb: net getest en het werkt. (maar dat wist jij natuurlijk allang ):)
Weer wat geleerd.
Thanks

Humadgen
 
Ook aan je manier van uitleggen is nog wel wat te verbeteren.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Range("D10,D20,D30")) Is Nothing Then Target.Offset(5).Select
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan