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

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("DX3:DX10") '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("DX3:DX10") '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é
Sub Compte()
Compteurv = 0
Dim Macellule As Object 'Déclaration d'une variable
For Each Macellule In Range("DX3:DX10") 'Boucle dans la plage
If Macellule > 9 Then Compteurv = Compteurv + 1

If Macellule > 9 Then
MsgBox "Il y a " & CStr(Compteurv) & " Agents(s)avec plus de 9 jours de congé paternité colonne DX"


Macellule.Interior.ColorIndex = 4
Else
Macellule.Interior.ColorIndex = 0
End If

Next Macellule
End Sub
 

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

Statistiques des forums

Discussions
314 611
Messages
2 111 147
Membres
111 051
dernier inscrit
MANUREVALAND