Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

tester les valeurs d'une plage en VBA

jopont

XLDnaute Impliqué
Bonjour,

J'aimerais tester si une des valeurs d'une plage nommé ( [nb_jour]) est supérieur strictement à 3.
Qu'est ce que cela donne en VBA ?
Le résultat du test étant un msg box?

merci
 

jopont

XLDnaute Impliqué
Re : tester les valeurs d'une plage en VBA

Bonsoir roro,

j'ai mis ça et ça fonctionne à présent :

J'ai mis ça et ça fonctionne à présent.

Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Call Nbjoursup3
Application.EnableEvents = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Range("C3:BL65"), Target) Is Nothing Then
On Error Resume Next
Target.Interior.ColorIndex =[liste_code].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
End If
Application.EnableEvents = True
End Sub


Je vais essayé la mise en couleur de ton exemple à présent
 

jopont

XLDnaute Impliqué
Re : tester les valeurs d'une plage en VBA

Dans ce code comment mettre les cellules > à 9 en rouge

Sub Nbjourpat()
Compteurv = 0
For Each Cellule In Range("DX3X10") 'Boucle dans la plage
If Cellule.Value > 9 Then
Compteurv = Compteurv + 1
MsgBox "Il y a " & CStr(Compteurv) & " Agents(s)avec plus de 9 jours de congé paternité colonne DX"
End If

Next
End Sub
 

roro69

XLDnaute Impliqué
Re : tester les valeurs d'une plage en VBA

RE voici :

A++
 

jopont

XLDnaute Impliqué
Re : tester les valeurs d'une plage en VBA

Merci roro,

La cellule e met bien en rouge mais le problème est qu'il faut que je clique 7 fois ok sur la msgbox pour la faire disparaître.

j'utilise le code ci-dessous

Sub Nbjourpat()
Compteurv = 0
For Each cellule In Range("DX3X10") 'Boucle dans la plage
If cellule.Value > 9 Then Compteurv = Compteurv + 1
If cellule.Value > 9 Then
cellule.Interior.ColorIndex = 3
Else
cellule.Interior.ColorIndex = 0
End If
MsgBox "Il y a " & CStr(Compteurv) & " Agents(s)avec plus de 9 jours de congé paternité colonne DX"
Next
End Sub
 

jopont

XLDnaute Impliqué
Re : tester les valeurs d'une plage en VBA

Ok roro j'ai mis ça et ça fonctionne. Car je veux que la MsgBox apparaisse seulement quand la valeur est supérieure à 9.
Mais j'ai encore un problème, je voudrais que lorsque ça devient inférieur à 9 ma cellule retrouve sa couleur initiale

Sub Nbjourpat()
Compteurv = 0
For Each cellule In Range("DX3X10") 'Boucle dans la plage
If cellule.Value > 9 Then Compteurv = Compteurv + 1
If cellule.Value > 9 Then
MsgBox "Il y a " & CStr(Compteurv) & " Agents(s)avec plus de 9 jours de congé paternité colonne DX"
If cellule.Value > 9 Then
cellule.Interior.ColorIndex = 3
Else
cellule.Interior.ColorIndex = 0
End If
End If
Next
End Sub
 

roro69

XLDnaute Impliqué
Re : tester les valeurs d'une plage en VBA

RE ; remplace ton code par celui ci et çà devrait marché
 

Staple1600

XLDnaute Barbatruc
Re : tester les valeurs d'une plage en VBA

Bonsoir


Pour répondre à la question initiale
Lien supprimé

Code:
Sub compte_sup_trois()
Dim x As Double
x = 3
MsgBox Application.WorksheetFunction.CountIf(Range("nb_jour"), ">" & x)
End Sub

Un peu plus court
Code:
Sub compte_sup_troisBIS()
MsgBox Evaluate("=COUNTIF(nb_jour,"">3"")")
End Sub
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…