Macro pour compter nombre de ligne des groupement

bonsoir, j’ai besoin de votre aide, mon fichier d’excel contient 4 colomn, j’ai fait un regroupement selon la 4éme colomn, maintenant je veux calculer le nombre des lignes de chaque groupe, merci d’avance

Bonsoir,
pour que nous puissions apporter notre aide, il va falloir partager votre fichier mais sans données confidentielles :wink:

test.xlsm (25,9 Ko)

voici mon fichier, c’est en fichier test alors que l’original contint des centaine de lignes
merci d’avance

Si j’ai bien compris, dans la 5ème colonne, il faut le nombre d’enfants rattachés au père pour la même famille ?

Je vous reposte votre fichier, avec plusieurs formules :

sisima05_test.xlsm (32,8 Ko)

bonjour,
oui c’est bien ce que je cherche merci infiniment pour votre aide :slight_smile:
cordialement

1 « J'aime »

bonsoir, desolé mais je dois le faire par macro, donc j’ai reflichi à calculer la distance entre « enfant » mais pour le group suivant c’est pas possible, voici la macro que j’ai utilisé
Sub cnt()
Dim k As Long
k = 0
For i = 3 To Rows.Count
If Cells(i, 1).Value = Cells(i - 1, 1).Value And Cells(i, 4).Value = « enfant » Then
Cells(i + 1, 5).Value = CStr(i - 1) - k
End If
k = CStr(i - 1)
Next i
Exit Sub
End Sub

en faite je veux que k contient la distance et puis l’enlever de la distance suivante comme ceci j’aurais le resultat recherché
je suis ouverte à d’autre fonction il me suffit d’avoir le resultat chérché
merci infiniment

Bonjour
Beaucoup de mal à comprendre ton attente
Un exemple écrit dans ton fichier pour un résultat attendu avec quelques explications sur son obtention permettrait d’y voir plus clair

Si je m’en tiens à cette demande :

« en faite je veux que k contient la distance et puis l’enlever de la distance suivante comme ceci j’aurais le resultat recherché »

Il me semble que cette ligne de code est mal placée :

k = CStr(i - 1)

Je la remonterai dans le code comme ceci :

Sub cnt()
Dim k As Long
k = 0
For i = 3 To Rows.Count
If Cells(i, 1).Value = Cells(i - 1, 1).Value And Cells(i, 4).Value = « enfant » Then
Cells(i + 1, 5).Value = CStr(i - 1) - k

k = CStr(i - 1)

End If
Next i
Exit Sub
End Sub

Autre chose cette ligne de code :

Exit Sub

là où elle est placée fais double emploi avec la ligne de code qui suit :

End Sub

Ces 2 lignes ont le même effet à savoir d’arrêter le traitement donc une seule suffit

J’enlèverai Exit Sub et garderai End Sub indispensable à l’écriture du code

Pour un traitement plus rapide remplace cette ligne de code :

For i = 3 To Rows.Count

Par

For i = 3 To Range(« A » & Rows.Count).End(xlUp).Row

Avec ton code tu traites de la ligne 3 à la dernière ligne de l’onglet (1048576)
Avec cette proposition tu traites de la ligne 3 à la dernière ligne ayant une donnée de la colonne A soit dans ton fichier fourni (10)
Le temps d’exécution s’en porte beaucoup mieux
Testes ce traitement ainsi modifié et dis moi si il répond à ton besoin

bonjours, je vous présente le fichier joint un exemple de mon fichier, ce que je cherche c’est une macro qui me permet de calculer le nombre d’enfant pour chaque pére et le mettre dans la column nbr d’enfant, pour la modification que vs avez fait ça marche mais le resultat n’est pas affiché dans sa place, si vous avez une idée ou est l’erreur je vous remerci
cordialement

test.xlsm (26,3 Ko)

Ci-joint ton fichier avec une nouvelle macro
Attention que le Père soit toujours en dernier par rapport aux enfants et à son écriture colonne D :

père et non pére (l’accent grave est à mettre et non aigu)

Pour les 2 familles j’obtiens 3 enfants mis en colonne E ligne du père

En cliquant sur le bouton « Traitement » fais différents essais

Donnes moi leur résultat

test (2-2).xlsm (28,9 Ko)

Une amélioration de traitement dans cette version ci-jointe
A récupérer en lieu et place de la précédente

test (2-2).xlsm (29,1 Ko)

merci infiniment, c’est ce que je cherchais, si vous pouvez me suggerer une chaine youtube ou un site internet pour m’améliorer en macro vba, je suis déboutante et je trouve des difficulté pour les projets ds le boulot, merci encore

Pas facile de te proposer un tuto sur la programmation
La seule méthode que je connaisse et que j’ai moi même pratiquée c’est de mettre les mains dans le cambouis
Je n’ai jamais suivi de formation de quelle nature que ce soit
Il faut s’approprier la démarche la manière d’obtenir un attendu en fonction d’une situation initiale
Il est inutile d’ingurgiter des lignes de codes juste en comprendre l’approche le déroulement pour obtenir ce que l’on veut
Après pour la mettre en musique s’aider de l’enregistreur de macro des sources inépuisable d’internet de faire appel à des forum au coup par coup comme celui-ci pour obtenir la bonne syntaxe les bonnes instructions la pratique fera le reste
C’est ce que moi même je fais même aujourd’hui et j’apprends tous les jours des uns et des autres
Retrousser les manches et ne pas hésiter et il n’y aura pas un jour sans progresser

A ta disposition pour t’aider dans cet esprit

Bonjour

FFO cela fait plusieurs mois que je te suis sur le forum j ai aussi énormément appris avec toi.En lisant aussi ta réponse sur se former je suis en complète adéquation avec toi ,mais voudrai ajouter avant de se lancer dans le VBA il serait souhaitable de connaitre quelques fonctions le site https://excel-malin.com/cours-vba-excel-gratuit-en-ligne/ est déjà une approche utile pour débuter
Merci pour toute l’aide que tu nous apportes

Orguyrine

Tout le plaisir est pour moi
Me rendre utile
Partager mon savoir
Donner de mon temps au bénéfice du temps de ceux qui le partage
Un bonheur donné c’est le mien qui est assuré
Gagnant gagnant
De te lire en donne tout le sens
Merci

merci beaucoup, c’est ce que je fait en faite, et j’ai réussit à m’améliorer, merci encore une fois
cordialement

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.