Compter le nombre de fois ou le caractère apparait dans différentes cbo

Bonjour, je cherche à compter le nombre de fois ou les valeurs C et NC ont été sélectionnées dans 10 combobox différentes avec des noms différents : cbo1diam, cbo2diam, etc cbo10diam (ici Ctrl Diamètre)

Je cherche à rentrer le nombre de C et de NC compter dans un tableau.

Mon code actuel est le suivant : ActiveCell.Offset(0, 11) = Application.WorksheetsFunction.CountIf(("cbo1diam.Value"), "=C")

Merci d'avance de votre aide.

image

Bonjour,

un essai à adapter

    Dim Cbx As Object
    For Each Cbx In ActiveSheet.OLEObjects 'pour chaque oleobject dans la feuille
            If Cbx.progID = "Forms.ComboBox.1" Then  'si c'est une combobox
                If Cbx.Name Like "*diam" Then  's'il s'agit d'une combobox diam
                    If Cbx.Object.Value = "C" Then Cells(12, 9).Value = Cells(12, 9).Value + 1
                    If Cbx.Object.Value = "NC" Then Cells(13, 9).Value = Cells(13, 9).Value + 1
                End If
                If Cbx.Name Like "*diel" Then  's'il s'agit d'une combobox diel
                    If Cbx.Object.Value = "C" Then Cells(12, 11).Value = Cells(12, 11).Value + 1
                    If Cbx.Object.Value = "NC" Then Cells(13, 11).Value = Cells(13, 11).Value + 1
                End If
            End If
    Next

A+

Bonjour,

sans utiliser de macro, mais par formules

et en définissant les propriétés des Cbo (je ne sais pas si tu utilises des objets issus de la BO Form ou ActiveX, donc j'ai mis les deux cas)

Bonne lecture

26combo-onglet.xlsx (24.39 Ko)

Bonjour à tous et merci pour vos réponses. Je souhaiterais vraiment utiliser une macro pour simplifier mes différentes fiches Excel.

J'ai essayé le code suivant :

Dim Cbx As Control
Dim i As Byte
Dim j As Byte
Dim k As Byte
Dim m As Byte
For Each Cbx In UserForm1.Controls 'pour chaque combobox de l'userform
If TypeName(Cbx) = "Combobox" Then
If Cbx.Name Like "*diam" Then 's'il s'agit d'une combobox diam
If Cbx.Object.Value = "C" Then i = i + 1
If Cbx.Object.Value = "NC" Then j = j + 1
End If

If Cbx.Name Like "*diel" Then 's'il s'agit d'une combobox diel
If Cbx.Object.Value = "" Then k = k + 1
If Cbx.Object.Value = "NC" Then m = m + 1
End If
End If
Next
MsgBox (i)
MsgBox (j)
MsgBox (k)
MsgBox (m)

Malheureusement, chaque MsgBox me renvoie la valeur 0.

Merci d'avance de votre aide.

Bonjour…

Attention pour comparer des parties de texte avec Like, bien situer les * sans en oublier !

Dim i As Byte, j As Byte, k As Byte, l As Byte
For Each Ct In Me.Controls
  If Ct.Name Like "*dia*" Then
    If Ct = "C" Then i = i + 1
    If Ct = "NC" Then j = j + 1
  End If
  If Ct.Name Like "*die*" Then
    If Ct = "C" Then k = k + 1
    If Ct = "NC" Then l = l + 1
  End If
Next
MsgBox i & " C diam " & j & " NC diam " & vbLf & k & " C die " & l & " NC die "

Super ca fonctionne, merci infiniment !!!!!!!!

Rechercher des sujets similaires à "compter nombre fois caractere apparait differentes cbo"