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

voorwaardelijke opmaak via vba ?

Status
Niet open voor verdere reacties.

ikselle

Gebruiker
Lid geworden
25 mei 2009
Berichten
198
In bijlage een bestandje waarin ik tracht telkens wanneer een gegeven ingevoerd wordt binnen de gekleurde zones te evalueren wat er moet gebeuren. Dacht dit te doen met het change event maar ben aan het sukkelen. Kan iemand hier eens naar kijken en de vinger op de wond leggen? Alvast bedankt !
 

Bijlagen

  • vba_voorwaardelijk.xlsm
    18,5 KB · Weergaven: 40
Gebruik geen Selection_change maar Change.

Volgens mij spreken je voorwaarden elkaar tegen maar hier kan je wel verder op borduren.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("B2:F5,J2:M5")) Is Nothing Or Target.Count > 1 Then Exit Sub
  Application.EnableEvents = False
  Select Case Target.Column
    Case Is < 7
      b = IsNumeric(Application.Match(Target, Array("d", "h", "r"), 0)) + IsNumeric(Target)
      If Not b Then
        MsgBox "Mag niet"
        Application.Undo
       Else
        If IsNumeric(Target) And Target > 0 And Target.Offset(, 7) = 0 Then Target.Offset(, 7).Interior.Color = vbRed
      End If
    Case Else
      If Not IsNumeric(Target) Then
        MsgBox "mag niet"
        Application.Undo
       Else
        If Target > 0 And Target.Offset(, -7) = "" Then Target.Offset(, -7).Interior.Color = vbRed
      End If
  End Select
  Application.EnableEvents = True
End Sub
 
Beste VenA bedankt dat je me ter hulp wil zijn maar
a) welke voorwaarden spreken elkaar tegen? Misschien was ik niet erg duidelijk.
-De bedoeling is dat zowel in de groene als de blauwe zone getallen ingevoerd worden. Als bijv in D2 een getal ingevoerd wordt dan dient het vakje K2 rood te worden tot dit ook ingevuld is met een getal dat groter is dan dat in D2 en vice versa. Het rode vak moet de gebruiker er attent op maken dat er een gegeven ontbreekt.
-ENKEL in de groene zone kunnen bepaalde letters ingevoerd worden (bijv r,d of h). In dat geval worden er geen vakjes rood in de blauwe zone. Het zou dan wel mooi zijn indien per letter het vakje een andere kleur krijgt in de groene zone.

b) ik heb jouw procedure in het bestand gebracht maar er wordt helemaal niets getriggerd na een change.
Enig idee waarom of doet hij het bij jou wel? Sorry werkt nu wel bij mij bij invoer van getal. Ik tracht de rest aan te passen.
Mvg
 

Bijlagen

  • vba_voorwaardelijk2.xlsm
    17,5 KB · Weergaven: 21
Laatst bewerkt:
Type in het venster immediate (direct?) eens ?application.EnableEvents en druk op <Enter> Als de waarde False is dan moet je de events weer even aanzetten.
 
Van harte bedankt VenA. Dit is het geworden. Het kan misschien mooier en korter maar het werkt.:thumb:
 

Bijlagen

  • vba_voorwaardelijk3.xlsm
    21,2 KB · Weergaven: 30
daar is toch geen vba voor nodig?


Van harte bedankt VenA. Dit is het geworden. Het kan misschien mooier en korter maar het werkt.

en enkel getallen in blauw?
 

Bijlagen

  • vba_voorwaardelijk (1).xlsx
    10,1 KB · Weergaven: 24
Laatst bewerkt:
@emields Bedankt voor je interesse. Inderdaad tot nu toe heb ik dit ook zonder vba gedaan maar wanneer derden beginnen te kopieren en plakken ... en je kijkt na verloop van tijd naar de regels voor de voorwaardelijke opmaak dan worden er volgens mij veel te veel regels dubbel geschreven. Ik denk ook dat het met vba flexibeler is en makkelijker te controleren. Ik vind de invoer van die regels in de voorwaardelijke opmaak niet altijd makkelijk ; '"' verdwijnt door tussenkomst systeem e.d..
Bovendien vraag ik me af - daar ben ik nog niet uit - welke methode het snelst werkt (lees: minder belastend). Dit is maar een voorbeeldbestandje. In werkelijkheid gaat het over veel meer cellen.
Daarbij komt dat ik deze oefening wel eens voor mezelf wou doen.
En als de waarde in de blauwe zone groter is dan die in de groene zone is het OK.
Groeten
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan