modif d'une ligne vba

  • Initiateur de la discussion Initiateur de la discussion zumye
  • 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 !

zumye

XLDnaute Occasionnel
bonjour le forum

je voudrais faire une petite modif sur cette ligne vb:

If Application.CountIf(Range("AO2:AO" & Range("AO65000").End(xlUp).Row), Doublon) > 1 Then

cette ligne correspond a la plage: Range("AO2:AO" & Range("AO65000")
et je voudrais rajouter a cette ligne une autre plage Range("Ak2:Ak" & Range("Ak65000")
comment assicié ces 2 plages? ex :dans le genre ("ao2:ao10,ak2:ak10") deux plages unifiées

merci
 
Re : modif d'une ligne vba

bonjour zumye

Tu es sur la bonne voie

Teste ceci

Code:
If Application.CountIf(Range("AO2:AO" & Range("AO65000").End(xlUp).Row, "AK2:AK" & Range("AK" & 65536).End(xlUp).Row), doublon) > 1 Then

Edit : Salut Catrice
J'ai testé et ma foi cela semble fonctionner !!!
 
Re : modif d'une ligne vba

Bonsoir PierreJean,

Je confirme COUNTIF ne fonctionne pas sur une zone discontinue.
Ton code fonctionne car en final, la zone que tu adresses est continue.

Pour le verifier essaie :
MsgBox Range("AO2:AO" & Range("AO65000").End(xlUp).Row, "AK2:AK" & Range("AK" & 65536).End(xlUp).Row).Address
ou
Range("AO2:AO" & Range("AO65000").End(xlUp).Row, "AK2:AK" & Range("AK" & 65536).End(xlUp).Row).Select

Dans mon cas il y a des données jusqu'à la ligne 10 ça me selectionne la zone continue : AK2:AO10.

Pour verifier que CountIf ne fonctionne pas en discontinue :
Range("AK2:AK10,AO2:AO10").Select
=> Ca marche
MsgBox Application.CountIf(Range("AK2:AK10,AO2:AO10"), "10")
=> Ca plante
MsgBox Application.CountIf(Range("AK2:AK10"), "10")
=> Ca marche

Enfin, elle ne fonctionne pas en discontinue dans le feuille de calcul 🙁
=> =NB.SI(AK2:AK10;AO2:AO10;"10") ça plante !


Bref, si dans son appli, Zumye a des données entrant dans le critere dans les colonnes AL à AN, le resultat sera faux.
 
Dernière édition:
Re : modif d'une ligne vba

Re,

Je propose la solution :

Sub Test()
doublon = 10
If Application.CountIf(Range("AO2:AO" & Range("AO65000").End(xlUp).Row), doublon) + Application.CountIf(Range("AK2:AK" & Range("AK65000").End(xlUp).Row), doublon) > 1 Then 'Code à effectuer si Vrai
End Sub
 
Re : modif d'une ligne vba

bonsoir Catrice , le forum

Exact Catrice , j'ai mal interpreté l'enregistreur de macro lors d'un test de zone non contigues

pour selecter il faut:

Code:
Range("AO2:AO" & Range("AO65000").End(xlUp).Row [COLOR=blue]& "," &[/COLOR] "AK2:AK" & Range("AK" & 65536).End(xlUp).Row).Select

et non

Code:
Range("AO2:AO" & Range("AO65000").End(xlUp).Row [COLOR=blue],[/COLOR] "AK2:AK" & Range("AK" & 65536).End(xlUp).Row).Select

Dans le second cas le Countif fonctionne mais comme tu le precises sur la plage continue alors que dans le 1er on a une erreur de non conformité

Toutes mes excuses donc à zumye et aux lecteurs du forum
 
- 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
7
Affichages
989
Réponses
17
Affichages
2 K
G
Réponses
7
Affichages
1 K
gfgghbhg
G
E
Réponses
5
Affichages
1 K
erictran
E
G
Réponses
15
Affichages
2 K
Gourbi1986
G
Retour