Compter les occurences d'un mot
Clem
-
Clem -
Clem -
Bonjour,
Je butte depuis un certains temps sur le problème suivant:
je possède plusieurs tableaux sur une même feuille (pour des raisons pratiques), et je veux compter dans chacun de ces tableaux le nombre de fois ou un mot apparait. Je ne peux malheureusement pas passer par une formule classique, étant donnée que ma plage va être amenée à changer régulièrement.
Prenons l'exemple suivant:
Marc
Paul
Marc
Marc
Case vide
Paul
Paul
Marc
Marc
Je veux être capable de compter le nombre de fois où "Marc" apparait avant la case vide, celle-ci pouvant apparaitre à des lignes variables suivan l'ajout ou nom de données.
J'ai déja le code suivant:
Public Function compteur(name As String)
Application.Volatile
compteur = 0
Range("C5").Activate
While (ActiveCell.Value <> "")
If ActiveCell.Value = name Then
compteur = compteur + 1
End If
ActiveCell.Offset(1, 0).Select
Wend
End Function
Poutant, quoique je tape, impossible d'obtenir le résultat..
Merci
Je butte depuis un certains temps sur le problème suivant:
je possède plusieurs tableaux sur une même feuille (pour des raisons pratiques), et je veux compter dans chacun de ces tableaux le nombre de fois ou un mot apparait. Je ne peux malheureusement pas passer par une formule classique, étant donnée que ma plage va être amenée à changer régulièrement.
Prenons l'exemple suivant:
Marc
Paul
Marc
Marc
Case vide
Paul
Paul
Marc
Marc
Je veux être capable de compter le nombre de fois où "Marc" apparait avant la case vide, celle-ci pouvant apparaitre à des lignes variables suivan l'ajout ou nom de données.
J'ai déja le code suivant:
Public Function compteur(name As String)
Application.Volatile
compteur = 0
Range("C5").Activate
While (ActiveCell.Value <> "")
If ActiveCell.Value = name Then
compteur = compteur + 1
End If
ActiveCell.Offset(1, 0).Select
Wend
End Function
Poutant, quoique je tape, impossible d'obtenir le résultat..
Merci
A voir également:
- Compter les occurences d'un mot
- Trousseau mot de passe iphone - Guide
- Créer un compte google - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Mettre un mot de passe sur un dossier - Guide
8 réponses
Bonjour,
Essaye qqch comme ca :
Public Function compteur(name as string, colonne, ligne)
Application.Volatile
compteur = 0
Range(colonne & cellule).Activate
While (ActiveCell.Value <> "")
If ActiveCell.Value = name Then
compteur = compteur + 1
End If
ligne = ligne + 1
Wend
End Function
Cordialement,
Essaye qqch comme ca :
Public Function compteur(name as string, colonne, ligne)
Application.Volatile
compteur = 0
Range(colonne & cellule).Activate
While (ActiveCell.Value <> "")
If ActiveCell.Value = name Then
compteur = compteur + 1
End If
ligne = ligne + 1
Wend
End Function
Cordialement,
Ca marche pour le premier tableau merci :)
Mais ca ne va pas marcher pour le deuxième, comme la ligne de début va varier si on rajoute des données dans le premier tableau. Je vais essayer d'adapter ta méthode, ca ne devrait pas etre bien compliqué.
Encore merci!
Je reposterais en cas de gros soucis.
Salut!
Mais ca ne va pas marcher pour le deuxième, comme la ligne de début va varier si on rajoute des données dans le premier tableau. Je vais essayer d'adapter ta méthode, ca ne devrait pas etre bien compliqué.
Encore merci!
Je reposterais en cas de gros soucis.
Salut!
Function compteur(name As String, cel) 'cel : tu clique sur la cellule ou tu veu que ca commence
b = Left(cel.Address, 2)
c = cel.Row
Do While (b & c <> "")
Range(cel.Address).Select
If Range(b & c).Value = name Then
compteur = compteur + 1
End If
c = c + 1
If Range(b & c).Value = "" Then Exit Function
Loop
End Function
b = Left(cel.Address, 2)
c = cel.Row
Do While (b & c <> "")
Range(cel.Address).Select
If Range(b & c).Value = name Then
compteur = compteur + 1
End If
c = c + 1
If Range(b & c).Value = "" Then Exit Function
Loop
End Function
Le soucis c'est que c'est destiné à des personnes qui ne connaissent pas vraiment et ne veulent pas connaitre excel... Donc je voulais faire un truc automatique, en donnant un nom à chaque cellule de début de tableau, les données étant obligatoirement ajoutées à sa suite, comme ca tout s'actualise facilement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je vais commencer a être un peu lourd et je m'en excuse...
Ca marche très bien, je t'en remercie vivement!
Mais (désolé :( ) je cherche à appliquer cette formule dans une feuille différente de celle ou le tableau est mis.
J'ai essayer d'ajouter un argument à ma fonction, Sheet as Worksheet, et de mettre Sheet.Select mais aucune modification..
Désolé je suis vraiment débutant
Ca marche très bien, je t'en remercie vivement!
Mais (désolé :( ) je cherche à appliquer cette formule dans une feuille différente de celle ou le tableau est mis.
J'ai essayer d'ajouter un argument à ma fonction, Sheet as Worksheet, et de mettre Sheet.Select mais aucune modification..
Désolé je suis vraiment débutant
Essaye ca :
Par contre, la formule sera composé comme ca : =compter("valuer";cellule;"Feuille")
Si tu ne renseigne pas la "feuille", la formule marche pas.
Function compteur(name As String, cel, feuille) 'cel : tu clique sur la cellule ou tu veu que ca commence If feuille = "" Or IsNull(feuille) Then feuil = ActiveSheet.name Else feuil = feuille End If b = Left(cel.Address, 2) c = cel.Row Do While (b & c <> "") Sheets(feuil).Range(cel.Address).Select If Sheets(feuil).Range(b & c).Value = name Then compteur = compteur + 1 End If c = c + 1 If Sheets(feuil).Range(b & c).Value = "" Then Exit Function Loop End Function
Par contre, la formule sera composé comme ca : =compter("valuer";cellule;"Feuille")
Si tu ne renseigne pas la "feuille", la formule marche pas.
Bonjour
essaies
essaies
Function compter_occurence(mot As String, cell_dep As Range) As Integer
Dim lig_dep As Integer, col As Integer, der_lig As Integer
lig_dep = cell_dep.Row
col = cell_dep.Column
der_lig = cell_dep.End(xlDown).Row
compter_occurence = Application.CountIf(Range(Cells(lig_dep), Cells(der_lig, col)), mot)
End Function
avec le parametre autre feuille
Ta formule semble marcher pour le premier tableau, pas pour le deuxième :$
j'avais testé, imagine toi et j'avais signalé que je n'avais tout lu , faute d'avoir rafraichi
Merci pour le temps passé
Function compter_occurence(onglet As String, mot As String, cell_dep As Range) As Integer
Dim lig_dep As Integer, col As Integer, der_lig As Integer
onglet = Left(onglet, Len(onglet) - 1)
lig_dep = cell_dep.Row
col = cell_dep.Column
der_lig = cell_dep.End(xlDown).Row
With Sheets(onglet)
compter_occurence = Application.CountIf(.Range(.Cells(lig_dep), .Cells(der_lig, col)), mot)
End With
End Function
Ta formule semble marcher pour le premier tableau, pas pour le deuxième :$
j'avais testé, imagine toi et j'avais signalé que je n'avais tout lu , faute d'avoir rafraichi
Merci pour le temps passé