VBA:Fonction COUNTIF ne fonctionnant pas comme je le souhaite

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 !

zeltron

XLDnaute Occasionnel
Bonjour à tout le forum.

Voici mon problème:

J'ai un tableau de I12 à V18 avec en entête en ligne 11 les différents jours de la semaine.
En colonne A, à partir de la ligne 12 j'ai des codes lambda.
A partir de la ligne 12, de la colonne B (COLONNE 2) à la colonne H 5 colonne 8) j'ai différents jours de semaine indiqué dans chaque cellule de cette zône. Ce qui signifie que les différent codes lambda ( en colonne A) peuvent être concernés par différents jours de la semaines indiqué sur la même ligne de la colonne B à H.
L'idée est de sélectionné dans le tableau les cellules et en cliquant sur un bouton voir dans chaque cellule sélectionnée la valeur de la cellule M2 si le code lambda est concerné par le jour de semaine correspondant ( ligne 11 de la cellule sélectionné).

Pour cela j'ai donc écrit le code suivant ( avec l'aide du forum):

Private Sub CommandButton1_Click()

Dim p As Range
Dim Maplage As Range

Set Maplage = Selection

For Each p In Maplage
If Application.WorksheetFunction.CountIf(Range(Cells(p.Row, 2), Cells(p.Row, 8)), Cells(p.Column, 11)) > 0 Then
p.Value = Range("M2").Value
Else
p.Value = ""
End If

Next p

End Sub

J'utilise comme vous le voyez la fonction countif. Je pensait que cela allait fonctionner mais cela ne donne pas du tout le résultat attendu. Et je ne vois pas du tout en quoi mon code n'est pas bon. Même en regardant le résultat que cela donne je n'arrive pas en déduire comment modifier mon code.

Je vous joint un fichier afin que cela soit beaucoup plus explicite. Tout y est précisé avec le résultat obtenu et le résulat souhaité.

Pouvez vous m'aider?

Merci d'avance pour votre aide

Cordialement

Zeltron
 

Pièces jointes

Re : VBA:Fonction COUNTIF ne fonctionnant pas comme je le souhaite

Merci de t'interresser à mon problème Bebere.

Excuse moi, je ne comprends pas ta solution?

Pourquoi effaces tu la partie de la colonne B à la colonne H.

J'ai dû mal m'exprimé. Je vais essayer d'être plus précis.

En colonne A il y a la liste de différentes machine par exemple.
De la colonne B à H, pour chaque machine en colonne A, on a de la colonne B à H la liste des jours où est peuvent être utilisées Ex:

A B C D E F G H
Cx_001 L Ma J V S D

L'exemple précédent signifie que pour les cellules sélectionnées de cette ligne
la valeur de la cellule M2 s'affichera dans la zône en jaune uniquement si la valeur de la ligne 11 existe sur le range " B:H" .
Pour l'exemple ci dessus: pour les cellule sélectionner correspondant à la machine Cx_001, la valeur de la cellule M2 s'affichera dans les cellules sélectionnées de la zone jaune uniquement pour les cellules sélectionnées correpondant aux L Ma J V S et D.

C'est pourquoi les colonne B à H ne doivent pas être effacées.

En fait ce que j'essaye de dire c'est: pour chaque cellule sélectionnée, tu regarde la valeur de la ligne 11 de la colonne de cette cellule sélectionnée, si la valeur de la ligne 11 de cette colonne apparait dans la zône B à H (d'où le countif>1) de la ligne de cette cellule sélectionnée alors dans cette cellule sélectionnée tu met la valeur de la cellule M2 sinon tu mets rien.

Cela est il plus explicite?

N'hésite pas à me demander des précisions si nécessaire.

Merci encore énormément d'avance pour ton aide

Cordialement


Zeltron
 
Re : VBA:Fonction COUNTIF ne fonctionnant pas comme je le souhaite

Bebere,après avoir réétudier ta solution il s'agissait de la zône effacée qui n'était pas la bonne, une fois rectifeir ta solution fonctionne.

Cependant je n'arrive pas à comprendre ton code!! T'est il possible de m'en détailler le fonctionnement.

De plus je ne comprends pas du tout pourquoi mon code ne fonctionne pas!!!!
En quoi est il incorrect?????
A travers de mon code je dis bien:

Exemple je sélectionne la cellule P14

-Pour la cellule sélectionnée regarde la ligne 11 de la même colonne que cette cellule sélectionnée soit: P11
-si la valeur en P11 apparait dans la zône B14 à H14
-Alors P14 prend la valeur de la cellule M2 sinon ""

En l'occurence P11 = "L" et dans la zône B14 à H14; il y a bien la valeur "L" (précisemment en B14);donc P14=M2 donc P14 ="AAA"

En quoi mon code ne dit pas exactement cela?????????

Private Sub CommandButton1_Click()

Dim p As Range
Dim Maplage As Range

Set Maplage = Selection

For Each p In Maplage
If Application.WorksheetFunction.CountIf(Range(Cells( p.Row, 2), Cells(p.Row, 8)), Cells(p.Column, 11)) > 0 Then
p.Value = Range("M2").Value
Else
p.Value = ""
End If

Next p

End Sub


Quelqu'un peut il me dire ce qui ne va pas dans mon code???

Par avance merci pour votre aide.

Cordialement

Zeltron
 
Re : VBA:Fonction COUNTIF ne fonctionnant pas comme je le souhaite

Merci Bebere, oui je l'avais vu c'est ce que je te disais dans mon 2eme message.

Mais sinon, je ne comprends pas ton code t'est il possible de me l'expliquer?

De plus, je ne comprends vraiment pas pourquoi mon code ne fonctionne pas, je l'ai vu et revu et pour moi il est tout a fait logique!!!

As tu une idée?

Quelqu'un du forum a t il vu ce qui "pêchait" dans mon code?

Merci d'avance pour votre aide

Cordialement

Zeltron
 
Re : VBA:Fonction COUNTIF ne fonctionnant pas comme je le souhaite

Salut zeltron
Bonsoir Bebere
Bonsoir le forum
je pense que le problème de ta procèdure vient du fait que tu as inversé la ligne et la colonne de ta cellule (voir en rouge)
If Application.WorksheetFunction.CountIf(Range(Cells(p.Row, 2), Cells(p.Row, 8)), Cells(11, p.Column)) > 0 Then
et
non Cells( p.column,11)
Bonne soirée
 
Re : VBA:Fonction COUNTIF ne fonctionnant pas comme je le souhaite

bonjour Zeltron

Salut Bebere

@Zeltron

la ligne fautive
If Application.WorksheetFunction.CountIf(Range(Cells(p.Row, 2), Cells(p.Row, 8)), Cells(11, p.Column)) > 0 Then

en rouge la correction
rappel : cells(ligne,colonne) !!

salut chti

j'avais pas rafraichi

toujours heureux de croiser les amis
 
Re : VBA:Fonction COUNTIF ne fonctionnant pas comme je le souhaite

Merci à tous de vous être penché sur mon problème.
J'avais vu et revu mon code sans même avoir vu cette erreur!!

Merci encore Bebere, Piere Jean et Chti160.

Bonne fin de Week End à tous

Cordialement

Zeltron
 
- 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

Retour