Compter occurences - VBA

Bonjour tout le monde

J'espère que vous allez bien !

Petite question du jours (et surtout problème du mien )

J'ai une colonne où l'on retrouve plusieurs petit texte (chacun représente un attribut manquant), j'aimerais être capable de compter le nombre d’occurrences manquantes.

A savoir cette colonne est une extraction d'une base de donnée, elle sortira donc toujours de cette façon, ce que je remarque c'est qu'il y a toujours des "-" devant chaque occurrence manquante, je me suis donc dit : "le mieux c'est de compter le nombre de "-" dans une cellule", mais impossible de trouver la bonne formule.

J'ai aussi penser à séparer puis compter le nombre de colonnes créées mais je pense que ça sera plus long et complexe ... Je suis un peu perdu

J'aimerais que cela ce fasse via du VBA car je suis en train de tout rendre automatique, et je transfère la majorité des informations sur un autre onglet/fichier.

Ci-joint le fichier j'espère que cela vous aidera à mieux comprendre mon besoin

Merci d'avance à vous et bonne journée !

Bonjour Kinders59

Un exemple de ce qu'on peut faire

Sub NbOccurence()
  Dim DLig As Long, Lig As Long
  Dim TabLig() As String
  Dim NbOc As Long
  ' Dernière ligne de la feuille
  DLig = Range("A" & Rows.Count).End(xlUp).Row
  ' Initialiser le comptage
  NbOc = 0
  ' Pour chaque ligne
  For Lig = 2 To DLig
    ' Récupérer le tableau des tirets
    TabLig = Split(Range("A" & Lig), "-")
    ' Additionner l enombre d'index du tableau
    NbOc = NbOc + UBound(TabLig)
  Next Lig
  MsgBox "Vous avez au total : " & NbOc & " attribut(s) manquant(s)"
End Sub

A+

Bonjour Kinders59

Un exemple de ce qu'on peut faire

Sub NbOccurence()
  Dim DLig As Long, Lig As Long
  Dim TabLig() As String
  Dim NbOc As Long
  ' Dernière ligne de la feuille
  DLig = Range("A" & Rows.Count).End(xlUp).Row
  ' Initialiser le comptage
  NbOc = 0
  ' Pour chaque ligne
  For Lig = 2 To DLig
    ' Récupérer le tableau des tirets
    TabLig = Split(Range("A" & Lig), "-")
    ' Additionner l enombre d'index du tableau
    NbOc = NbOc + UBound(TabLig)
  Next Lig
  MsgBox "Vous avez au total : " & NbOc & " attribut(s) manquant(s)"
End Sub

A+

Hello,

Tout d'abord merci de la réponse

Est-il possible d'afficher par ligne le nombre d'attributs manquants ? (pour chaque ligne. Exemple mettre en colonne B2 6 attributs manquants (par rapport à A2))

Merci d'avance à toi !

Cordialement,

Re,

C'est encore "plus simple"

Sub NbOccurence()
  Dim DLig As Long, Lig As Long
  Dim TabLig() As String
  ' Dernière ligne de la feuille
  DLig = Range("A" & Rows.Count).End(xlUp).Row
  ' Pour chaque ligne
  For Lig = 2 To DLig
    ' Récupérer le tableau des tirets
    TabLig = Split(Range("A" & Lig), "-")
    ' Inscrire le nombre d'attributs manquants
    Range("B" & Lig).value = UBound(TabLig) & " attribut(s) manquant(s)"
  Next Lig
End Sub

A+

Re,

C'est encore "plus simple"

Sub NbOccurence()
  Dim DLig As Long, Lig As Long
  Dim TabLig() As String
  ' Dernière ligne de la feuille
  DLig = Range("A" & Rows.Count).End(xlUp).Row
  ' Pour chaque ligne
  For Lig = 2 To DLig
    ' Récupérer le tableau des tirets
    TabLig = Split(Range("A" & Lig), "-")
    ' Inscrire le nombre d'attributs manquants
    Range("B" & Lig).value = UBound(TabLig) & " attribut(s) manquant(s)"
  Next Lig
End Sub

A+

Wow c'est puissant !

Merci je vais regarder comment elle fonctionne en détail, car ma maîtrise du VBA est très très basique j'en suis pas encore à cette facilité de raccourci

Encore un énorme merci à toi !

Bonne journée !

Rechercher des sujets similaires à "compter occurences vba"