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

  • Initiateur de la discussion Initiateur de la discussion jopont
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Re : tester les valeurs d'une plage en VBA

Re,

Désolé, je ne vois pas le rapport avec ceci :

"En cellule BV4 je récupère via une formule un nombre de jour ( NB SI .....)
Cette formule est recopiée de BV4 à BV65.
Le chiffre n'est pas saisi par l'utilisateur.
Simplement je veux qu'il soit averti.

Si je met vos différents code vba en this workbook ou sur la feuille, je n'ai pas de résultat concluant"

Pas de formule.... BV4 à BV65 vide... ?

Peut-être que je n'ai rien compris ???
 
Re : tester les valeurs d'une plage en VBA

RE
Je t'ai remis le nouveau fichier ((( que j'ai zippé car il est évident que les fichiers zippés c'est bcp mieux)))au dessus dans mon dernier message
A++
 
Re : tester les valeurs d'une plage en VBA

Re,

bonsoir roro69,

pour le fichier de 19h04, ceci fonctionne (sélectionne la plage auparavant):

Code:
Sub test()
For Each Cellule In Selection
  If Cellule.Value > 3 Then MsgBox "La cellule " & Cellule.Address(0, 0) & " est supérieure à 3."
Next
End Sub
 
Re : tester les valeurs d'une plage en VBA

Bonsoir Jean-Pierre;skoobi et Jopont
Je me verse un petit jura;je vous en verse chacun un et je trinque à votre santé; car là je n'arrive plus à suivre le fil Glou glou.
 
Re : tester les valeurs d'une plage en VBA

Bon et bien ça marche dans ton fichier lorsque je change les valeurs de G2 à G8.

Par contre dans mon fichier lorsque que les valeurs de BV4 à BV8 changent rien ne se passe

Tu as ajouté un intersect ?

Si oui comment cumuler des intersect pour une feuille, car j'ai deja un procédure intersect sur la feuille
 
Dernière édition:
Re : tester les valeurs d'une plage en VBA

Re,

roro, tu n'ai pas le seul...
tchin! 😀

Plus sérieusement jopont, ok, mais si tu ne peux arriver à nous envoyer un bout de ton fichier, on va tourner en rond logtemps comme ça (plus vite après quelque verre hi hi😛)
 
Re : tester les valeurs d'une plage en VBA

Re,

Je viens de changer G6, enfin sur ton fichier joint... (situation inédite) (et à part roro69 qui a bien analysé la chose), il ne se passe rien...

Normal si tu ne retranscris pas ce qui t'est donné avant.... Ce n'est donc pas la peine de redéposer un fichier vierge de tous les conseils donnés... cela polue
 
Re : tester les valeurs d'une plage en VBA

Bonjour
1° Skoobi Comme le dit ton épitaphe on en apprend tous les jours...
Jopont tu dit que c'est en colonne BV et dans ta macro tu met 1 alors que bv c'est la colonne 74. Donc:
If Cells(i, 74).Value > 3 Then

A+ François
 
Re : tester les valeurs d'une plage en VBA

Bonjour
Je reviens sur mon sujet, désolé mais je débute en VBA.


Dans un module j'ai donc mis le code suivant qui fonctionne lorsque je fais du pas à pas détaillé dans VB éditeur.

Sub Nbjoursup3()
Dim Nblignes As Integer, Nbjoursup3 As Integer
Dim j As Integer, i As Integer
Dim plageNbjours As Range
Set plageNbjours = Range("BV4:BV10")
Nblignes = plageNbjours.Rows.Count
Nbjoursup3 = 0
For i = 1 To Nblignes
If plageNbjours.Cells(i, 1) > 3 Then
Nbjoursup3 = Nbjoursup3 + 1
End If
Next
MsgBox "Attention il y a " & Nbjoursup3 & " cellule avec un nombre de jours de congé naissance > 3"

End Sub

Seulement maintenant j'aimerais faire appel à cette procédure lorsqu'il y a un changement dans la plage BV4:BV10

J'ai essayé le code suivant sur la feuille pour appeler la procédure :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([zones_janv], Target) Is Nothing Then
On Error Resume Next
Target.Interior.ColorIndex = [liste_code].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
End If
Call Nbjoursup3
End Sub

et la ça fonctionne toujours pas et en plus le code qui me permet de récupérer de la couleur ne fonctionne plus.

merci pour votre aide
 
Re : tester les valeurs d'une plage en VBA

je voudrais quelque chose comme ça :

Private Sub Worksheet_Change(ByVal Target As Range)
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
If Not Intersect(Target, Range("BV4:BV10")) Is Nothing Then
Call Nbjoursup3
End If
End If
End Sub

La premiere partie du code avec la récupération de couleur fonctionne.
Par contre l'appel de la procédure ne fonctionne pas

merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
113
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…