Je cherche à créer une feuille qui contiendrait , en colonne 'A' le nom des
personnes contenues dans plusieurs autres feuilles est le nombre de fois
qu'elles y figurent en colonne 'B'
Sachant que dans chaque feuilles le même nom peut apparaître plusieurs fois
et que le nombre de feuille peut aller jusqu'a 54
exemple
A B
Nom Nombre de présence
Martin Jules. XXX fois
Gaston Emile YYY fois
-----
Etc
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Jacky,
Tu ajoutes une feuille nommé "LesNoms" dans la colonne "A" Tu renseignes dans la procédure la plage de cellules où sont inscrits les noms
'------------------------------- Sub CompterLesNoms()
Dim LeNom As String Dim Sh As Worksheet, C As Range Dim Compte As Long
For Each C In Worksheets("LesNoms").Range("A1") 'à définir LeNom = C For Each Sh In Worksheets If Sh.Name <> "LesNoms" Then Compte = Compte + Application.CountIf( _ Sh.UsedRange, "=" & LeNom) End If Next Sh B = B + 1 Worksheets("LesNoms").Range("B" & B) = Compte Compte = 0 Next
End Sub '-------------------------------
Salutations!
"Jacky" a écrit dans le message de news: Bonjour à tous
Je cherche à créer une feuille qui contiendrait , en colonne 'A' le nom des personnes contenues dans plusieurs autres feuilles est le nombre de fois qu'elles y figurent en colonne 'B' Sachant que dans chaque feuilles le même nom peut apparaître plusieurs fois et que le nombre de feuille peut aller jusqu'a 54
exemple A B Nom Nombre de présence
Martin Jules. XXX fois Gaston Emile YYY fois ----- Etc
Bonne soirée JJ
Bonjour Jacky,
Tu ajoutes une feuille nommé "LesNoms" dans la colonne "A"
Tu renseignes dans la procédure la plage de cellules où sont inscrits les noms
'-------------------------------
Sub CompterLesNoms()
Dim LeNom As String
Dim Sh As Worksheet, C As Range
Dim Compte As Long
For Each C In Worksheets("LesNoms").Range("A1") 'à définir
LeNom = C
For Each Sh In Worksheets
If Sh.Name <> "LesNoms" Then
Compte = Compte + Application.CountIf( _
Sh.UsedRange, "=" & LeNom)
End If
Next Sh
B = B + 1
Worksheets("LesNoms").Range("B" & B) = Compte
Compte = 0
Next
End Sub
'-------------------------------
Salutations!
"Jacky" <jacky.jaeg_enlevez@wanadoo.fr> a écrit dans le message de news:eypVt3qPEHA.3456@TK2MSFTNGP11.phx.gbl...
Bonjour à tous
Je cherche à créer une feuille qui contiendrait , en colonne 'A' le nom des
personnes contenues dans plusieurs autres feuilles est le nombre de fois
qu'elles y figurent en colonne 'B'
Sachant que dans chaque feuilles le même nom peut apparaître plusieurs fois
et que le nombre de feuille peut aller jusqu'a 54
exemple
A B
Nom Nombre de présence
Martin Jules. XXX fois
Gaston Emile YYY fois
-----
Etc
Tu ajoutes une feuille nommé "LesNoms" dans la colonne "A" Tu renseignes dans la procédure la plage de cellules où sont inscrits les noms
'------------------------------- Sub CompterLesNoms()
Dim LeNom As String Dim Sh As Worksheet, C As Range Dim Compte As Long
For Each C In Worksheets("LesNoms").Range("A1") 'à définir LeNom = C For Each Sh In Worksheets If Sh.Name <> "LesNoms" Then Compte = Compte + Application.CountIf( _ Sh.UsedRange, "=" & LeNom) End If Next Sh B = B + 1 Worksheets("LesNoms").Range("B" & B) = Compte Compte = 0 Next
End Sub '-------------------------------
Salutations!
"Jacky" a écrit dans le message de news: Bonjour à tous
Je cherche à créer une feuille qui contiendrait , en colonne 'A' le nom des personnes contenues dans plusieurs autres feuilles est le nombre de fois qu'elles y figurent en colonne 'B' Sachant que dans chaque feuilles le même nom peut apparaître plusieurs fois et que le nombre de feuille peut aller jusqu'a 54
exemple A B Nom Nombre de présence
Martin Jules. XXX fois Gaston Emile YYY fois ----- Etc
Bonne soirée JJ
Jacky
Bonsoir Denis
Merci d'avoir prêté attention à ma demande
Je me suis sens doute mal exprimé. Avec ton code, la colonne B se remplie de chiffre incorrecte, rien dans la colonne A J'ai adapté ton code de cette manière pour trouver automatiquement les feuilles en question. '---------------------- For i = 1 To Worksheets.Count If Left(Sheets(i).Name, 4) = Left(Year(Now), 4) Then nf = Sheets(i).Name For Each C In Worksheets(nf).Range("c5:t14") 'à redéfinir, car sur 2 plages) LeNom = C x = x + 1 Worksheets("LesNoms").Range("A" & x) = C For Each Sh In Worksheets If Sh.Name <> nf Then Compte = Compte + Application.CountIf(Sh.UsedRange, "=" & LeNom) End If Next Sh B = B + 1 Worksheets("LesNoms").Range("B" & B) = Compte Compte = 0 Next End If Next i '----------------
Mais cela ne fonctionne pas correctement. Si les noms sont trouvés, le passage au nom suivant se produit sans avoir le nombre de fois que ce mon est présent, puis passe au nom suivant et revient sur le précedent pour l'incrémenté, mais sur une autre ligne.
De Plus, J'avais oublié de mentionner que dans chaque feuille les cellules de nom sont sur 2 plages C5:T14 et C18:O27 et que certaines cellules peuvent être vide et ne doivent pas être comptabilisées. Les feuilles ont pour nom '2004 semaine1' , '2004 semaine 2', etc... L'essai que j'ai fait avec ton code était sur une plage, mais n'a pas aboutit.
Ce que je souhaite c'est de récupérer de toutes ces feuilles les noms (sans doublons) inscrit dans ces plages en colonne A et le nombre de fois que ce noms est présent dans les feuilles en colonne B sur une autre feuille (quelconque)
salutations et dodo JJ
"michdenis" a écrit dans le message de news:%
Bonjour Jacky,
Tu ajoutes une feuille nommé "LesNoms" dans la colonne "A" Tu renseignes dans la procédure la plage de cellules où sont inscrits les noms
'------------------------------- Sub CompterLesNoms()
Dim LeNom As String Dim Sh As Worksheet, C As Range Dim Compte As Long
For Each C In Worksheets("LesNoms").Range("A1") 'à définir LeNom = C For Each Sh In Worksheets If Sh.Name <> "LesNoms" Then Compte = Compte + Application.CountIf( _ Sh.UsedRange, "=" & LeNom) End If Next Sh B = B + 1 Worksheets("LesNoms").Range("B" & B) = Compte Compte = 0 Next
End Sub '-------------------------------
Salutations!
"Jacky" a écrit dans le message de news:
Bonjour à tous
Je cherche à créer une feuille qui contiendrait , en colonne 'A' le nom des
personnes contenues dans plusieurs autres feuilles est le nombre de fois qu'elles y figurent en colonne 'B' Sachant que dans chaque feuilles le même nom peut apparaître plusieurs fois
et que le nombre de feuille peut aller jusqu'a 54
exemple A B Nom Nombre de présence
Martin Jules. XXX fois Gaston Emile YYY fois ----- Etc
Bonne soirée JJ
Bonsoir Denis
Merci d'avoir prêté attention à ma demande
Je me suis sens doute mal exprimé.
Avec ton code, la colonne B se remplie de chiffre incorrecte, rien dans la
colonne A
J'ai adapté ton code de cette manière pour trouver automatiquement les
feuilles en question.
'----------------------
For i = 1 To Worksheets.Count
If Left(Sheets(i).Name, 4) = Left(Year(Now), 4) Then
nf = Sheets(i).Name
For Each C In Worksheets(nf).Range("c5:t14") 'à redéfinir, car sur 2 plages)
LeNom = C
x = x + 1
Worksheets("LesNoms").Range("A" & x) = C
For Each Sh In Worksheets
If Sh.Name <> nf Then
Compte = Compte + Application.CountIf(Sh.UsedRange, "=" & LeNom)
End If
Next Sh
B = B + 1
Worksheets("LesNoms").Range("B" & B) = Compte
Compte = 0
Next
End If
Next i
'----------------
Mais cela ne fonctionne pas correctement. Si les noms sont trouvés, le
passage au nom suivant se produit sans avoir le nombre de fois que ce mon
est présent, puis passe au nom suivant et revient sur le précedent pour
l'incrémenté, mais sur une autre ligne.
De Plus, J'avais oublié de mentionner que dans chaque feuille les cellules
de nom sont sur 2 plages C5:T14 et C18:O27 et que certaines cellules peuvent
être vide et ne doivent pas être comptabilisées.
Les feuilles ont pour nom '2004 semaine1' , '2004 semaine 2', etc...
L'essai que j'ai fait avec ton code était sur une plage, mais n'a pas
aboutit.
Ce que je souhaite c'est de récupérer de toutes ces feuilles les noms (sans
doublons) inscrit dans ces plages en colonne A et le nombre de fois que ce
noms est présent dans les feuilles en colonne B sur une autre feuille
(quelconque)
salutations et dodo
JJ
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23v5fnLrPEHA.3456@TK2MSFTNGP11.phx.gbl...
Bonjour Jacky,
Tu ajoutes une feuille nommé "LesNoms" dans la colonne "A"
Tu renseignes dans la procédure la plage de cellules où sont inscrits les
noms
'-------------------------------
Sub CompterLesNoms()
Dim LeNom As String
Dim Sh As Worksheet, C As Range
Dim Compte As Long
For Each C In Worksheets("LesNoms").Range("A1") 'à définir
LeNom = C
For Each Sh In Worksheets
If Sh.Name <> "LesNoms" Then
Compte = Compte + Application.CountIf( _
Sh.UsedRange, "=" & LeNom)
End If
Next Sh
B = B + 1
Worksheets("LesNoms").Range("B" & B) = Compte
Compte = 0
Next
End Sub
'-------------------------------
Salutations!
"Jacky" <jacky.jaeg_enlevez@wanadoo.fr> a écrit dans le message de
news:eypVt3qPEHA.3456@TK2MSFTNGP11.phx.gbl...
Bonjour à tous
Je cherche à créer une feuille qui contiendrait , en colonne 'A' le nom
des
personnes contenues dans plusieurs autres feuilles est le nombre de fois
qu'elles y figurent en colonne 'B'
Sachant que dans chaque feuilles le même nom peut apparaître plusieurs
fois
et que le nombre de feuille peut aller jusqu'a 54
exemple
A B
Nom Nombre de présence
Martin Jules. XXX fois
Gaston Emile YYY fois
-----
Etc
Je me suis sens doute mal exprimé. Avec ton code, la colonne B se remplie de chiffre incorrecte, rien dans la colonne A J'ai adapté ton code de cette manière pour trouver automatiquement les feuilles en question. '---------------------- For i = 1 To Worksheets.Count If Left(Sheets(i).Name, 4) = Left(Year(Now), 4) Then nf = Sheets(i).Name For Each C In Worksheets(nf).Range("c5:t14") 'à redéfinir, car sur 2 plages) LeNom = C x = x + 1 Worksheets("LesNoms").Range("A" & x) = C For Each Sh In Worksheets If Sh.Name <> nf Then Compte = Compte + Application.CountIf(Sh.UsedRange, "=" & LeNom) End If Next Sh B = B + 1 Worksheets("LesNoms").Range("B" & B) = Compte Compte = 0 Next End If Next i '----------------
Mais cela ne fonctionne pas correctement. Si les noms sont trouvés, le passage au nom suivant se produit sans avoir le nombre de fois que ce mon est présent, puis passe au nom suivant et revient sur le précedent pour l'incrémenté, mais sur une autre ligne.
De Plus, J'avais oublié de mentionner que dans chaque feuille les cellules de nom sont sur 2 plages C5:T14 et C18:O27 et que certaines cellules peuvent être vide et ne doivent pas être comptabilisées. Les feuilles ont pour nom '2004 semaine1' , '2004 semaine 2', etc... L'essai que j'ai fait avec ton code était sur une plage, mais n'a pas aboutit.
Ce que je souhaite c'est de récupérer de toutes ces feuilles les noms (sans doublons) inscrit dans ces plages en colonne A et le nombre de fois que ce noms est présent dans les feuilles en colonne B sur une autre feuille (quelconque)
salutations et dodo JJ
"michdenis" a écrit dans le message de news:%
Bonjour Jacky,
Tu ajoutes une feuille nommé "LesNoms" dans la colonne "A" Tu renseignes dans la procédure la plage de cellules où sont inscrits les noms
'------------------------------- Sub CompterLesNoms()
Dim LeNom As String Dim Sh As Worksheet, C As Range Dim Compte As Long
For Each C In Worksheets("LesNoms").Range("A1") 'à définir LeNom = C For Each Sh In Worksheets If Sh.Name <> "LesNoms" Then Compte = Compte + Application.CountIf( _ Sh.UsedRange, "=" & LeNom) End If Next Sh B = B + 1 Worksheets("LesNoms").Range("B" & B) = Compte Compte = 0 Next
End Sub '-------------------------------
Salutations!
"Jacky" a écrit dans le message de news:
Bonjour à tous
Je cherche à créer une feuille qui contiendrait , en colonne 'A' le nom des
personnes contenues dans plusieurs autres feuilles est le nombre de fois qu'elles y figurent en colonne 'B' Sachant que dans chaque feuilles le même nom peut apparaître plusieurs fois
et que le nombre de feuille peut aller jusqu'a 54
exemple A B Nom Nombre de présence
Martin Jules. XXX fois Gaston Emile YYY fois ----- Etc