Syntaxe fonction

Bonjour,

Je souhaiterais réutiliser le bout de code si dessous sur une plage discontinue mais je n'y parviens pas.

If WorksheetFunction.CountIfs(Feuil1.Range(Range("Etiq_A_D")(X), Range("Etiq_A_F")(X)), "X") = i

Le code actuel passe en revu toutes les cellules situées sur la ligne X entre les colonnes Etiq_A_D ("K:K") et Etiq_A_F ("T:T"). Maintenant je souhaiterais le faire uniquement pour les cellules des colonnes ("A:A"), ("C:C"), ("E:E") et ("J:J) sans prendre en compte les colonnes situées entre comme ("B:B"), ("D:D")....

Par avance merci,

Nooby74.

bonjour

à tester

with feuil1
set plage=union(.range("A" & x),.range("c" & x),.range("e" & x),.range("j" & x))
end with
If WorksheetFunction.CountIfs(plage, "X") = i

Bonjour h2so4,

Merci pour ta réponse.

Je viens de tester le code suivant avec tes indications et j'ai le message suivant qui apparaît : Erreur 1004 : impossible de lire la propriété countifs de la classe WorksheetFunction. De quoi provient cette erreur?

Private Sub UserForm_Initialize()
Range("A2").Select
X = ActiveCell.Row

With Feuil1
Set plage = Union(.Range("EPI_Lunettes")(X), .Range("EPI_Chaussure")(X), .Range("EPI_Gants")(X), .Range("EPI_Visière")(X), .Range("EPI_Masque_aéro")(X), .Range("EPI_Masque_gaz")(X), .Range("EPI_Vêtement")(X))

For i = 1 To 7
If WorksheetFunction.CountIfs(plage, "X") = i Then
With Fproduit
cadre5.Width = 348 - i * 65
End With
End If

Next i
End With
End Sub

Je vous joins également mon fichier exemple.

cdlt,

Nooby74

4exemple-v0.xlsm (53.60 Ko)

Bonjour,

écris déjà ta formule sur la feuille.

Comme tu verras la syntaxe qui ramène bien ce que tu désires.

eric

Je n'ai pas compris ton message. Le code est présent dans l'USF l'a où il devrait être.

je te dis d'écrire ta formule sur ta feuille dans un premier temps.

Comme ça tu verras si ce que tu demandes est valide ou pas (là j'ai un doute), et tu auras la syntaxe.

Ce que je demande est valide, j'utilise cette formule à différent endroit dans mon fichier sur des plages continues et ça marche cependant ici, c'est une plage discontinue. Lorsque j’exécute la macro pas à pas le message apparaît à la ligne suivante :

If Worksheet.Function.CountIfs(plage, "X") = i Then

Je viens de m'apercevoir qu'il y avait un S en trop mais en l'enlevant j'ai toujours le même problème.

Si tu en es sûr alors...

Rechercher des sujets similaires à "syntaxe fonction"