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

activeren cel in macro

Status
Niet open voor verdere reacties.

brandernl

Gebruiker
Lid geworden
19 okt 2004
Berichten
445
Ik heb (als zovelen) een roosterapplicatie gebouwd in Excel. Voor controle van "overtredingen" laat ik een macro uitvoeren.
Een msgbox laat zien in welke regel de overtreding staat, maar ik zou graag willen dat de msgbox verschijnt en de cel van de overtreding geactiveerd wordt.
Ik kom er niet uit. Graag jullie hulp

Code:
Sub Controleer()

    Dim rCell As Range
    Dim rRange As Range
    Dim LastRow As Integer
    LastRow = Range("A65536").End(xlUp).Row
    Range("E14").Activate
    Set rRange = Range("E14:AF" & LastRow)

    For Each rCell In rRange
        If UCase(rCell.Value) = "D9" And UCase(rCell.Offset(0, 1).Value) = "A6" _
           Then MsgBox "Vroege na nachtdienst in regel " & rCell.Row
        If UCase(rCell.Value) = "D9" And UCase(rCell.Offset(0, 1).Value) = "C2" _
           Then MsgBox "Late na nachtdienst in regel " & rCell.Row
    Next
End Sub
 
Als ik de vraag goed begrijp en je de cel geselecteerd " wilt achterlaten" na de code voor de gebruiker kun je dat als volgt doen

Als rcell de de cel is waar de overtreding is staat gebruik je.
rCell.select een het einde van de sub (na de messagebox)


mvg leo
 
Laatst bewerkt:
Ik had dat al geprobeerd, maar het vreemde is dat de macro dan niet altijd de goede selecteert.

D9D9C2 gaat goed, selecteert de tweede D9,
maar D9D9A6 selecteert de eerste D9 en mijns inziens klopt dat niet met de voorwaarde in de macro.
Vandaar dat ik er niet uitkwam. Enig idee?
 
Even snel gekeken,
Mogelijk dat er dan nog een next uitgevoerd wordt.
Door exit for na de msgbox op te nemen en na next de cel te selecteren zou het goed moeten gaan.
 
zo iets en dan ook voor de andere regel.

If UCase(rCell.Value) = "D9" And UCase(rCell.Offset(0, 1).Value) = "A6" Then
MsgBox "Vroege na nachtdienst in regel " & rCell.Row
exit for
end if

De macro stopt dan wel gelijk. Er wordt maar één "overtreding" gezien.
Mogelijk helpt en voorbeeld bestandje.
Je kunt overwegen de cellen of tekst te kleuren
of dat met voorwaardelijke opmaak doen.
 
Het rooster ziet er in het echt natuurlijk veel mooier uit ;), maar omwille van de grootte....
 

Bijlagen

Tuurlijk dat snappen we:)


mi kun je kiezen tussen alle diensten in één keer controleren met een macro, achter een knop b.v.
dan zou ik gaan voor het kleuren van de tekst van de "foute" cellen
met font.colourindex=3 stel je in dat de tekst rood wordt. Zo zie je alles in een oog opslag.

Ook kun je onmiddellijk waarschuwen na het intypen van een dienst door je criteria te controleren in het worksheet_change event
Fout ingevoerde dienst > waarschuwing en dienst weer selecteren (en/of deleten) .
De laatste heeft de meest directe feedback
Welke je voorkeur heeft is een persoonlijke zaak.

Is het afdrukbereik trouwens altijd het bereik van de hele dienstlijst?
 
Goedemorgen Leo,
Thuis ligt m'n Internet plat, daarom de late reactie.
Kleurtje heb ik ook aan gedacht, zal ik doen

Ik heb het worksheet_change event expres niet gebruikt, omdat in mijn ervaring Excel dan aanmerkelijk trager wordt. De mensen plannen zelf en de verantwoordelijke controleert daarna, met de macro.

Het afdrukbereik is niet altijd de hele lijst, ligt er aan welke variant men gebruikt
4 week of 13 weeks
1 of meer teams
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan