Nombre de participation à une manifestation

  • Initiateur de la discussion Initiateur de la discussion parcchasseral
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

parcchasseral

Guest
Bonjour,

J'organise une petite course pédestre et je voudrais réaliser dans un fichier excel avec la liste de l'ensemble des participants et de leur nombre de particiaption.
Voir mon fichier joint. C'est le fichier de base.

J'ai fait qqs essais avec mais pas très concluant car j'aimerais automatiser la chose.
Je m'explique : la liste des courreurs 2006 va être ajoutée dans la colonne G.
Ainsi de suite pour les années suivantes.
Je voudrais que dans une feuille, la liste des participants apparaissent dans un colonne et que dans une autre colonne ce soit leur nombre de participation et que ce tableau change si une nouvelle personne s'est inscrite ou qu'un "ancien" coureur a une nouvelle fois participé.

Merci d'avance pour les conseils.

Guillaume
 

Pièces jointes

Re : Nombre de participation à une manifestation

Bonjour,
en supposant que tu mettes un nom dans la cellule A3 d'une nouvelle feuille pour les inscrits 2006, tu mets en B3
=NB.SI('table de base'!A:F;A3)
Cette formule te donnera le nombre de participations du concurrent.
A recopier vers le bas...
A+
 
Re : Nombre de participation à une manifestation

bonjour guillaume, gruick 🙂

une solution en vba en pièce jointe.

code utilisé :

PHP:
Sub Bouton1_QuandClic()
Dim plage As Range
Dim tablonom, el
Dim tablo()

ReDim tablo(1 To 2, 1 To 1)

With Sheets("table de base").Range("a1").CurrentRegion
    Set plage = .Offset(2, 0).Resize(.Rows.Count - 3, .Columns.Count)
End With

tablonom = plage

For Each el In tablonom
    If Not el = "" Then
        If IsError(Application.Match(el, tablo, 0)) Then 'd'apres un code de Jacques Boisgontier
            tablo(1, UBound(tablo, 2)) = el
            tablo(2, UBound(tablo, 2)) = Application.CountIf(plage, el)
            ReDim Preserve tablo(1 To 2, 1 To UBound(tablo, 2) + 1)
        End If
    End If
Next el

With Sheets("resultat")
    .Cells.ClearContents
    .Range("a1").Resize(UBound(tablo, 2), UBound(tablo, 1)) = Application.Transpose(tablo)
End With

End Sub
renvoi en feuille résultat des noms sans doublons et du nombre de participations.

salut
 

Pièces jointes

Re : Nombre de participation à une manifestation

Merci pour cette solution...Génial !
En fait les doublons ne sont pas effacés car dans la feuille résultats si on fait un tri decroissant colonne B et croissant colonne A..il y a plusieurs fois les noms de ceux qui ont participé 2, 3, 4, 5 ou 6 fois qui apparaissent !

Est ce possible de remedier à cela en même temps pour qu'ils apparaissent une seul fois avec en face leur nombre de participation ?

Pendant que j'y suis, c'est aussi possible de tout classé directement par ordre decroissant colonne B et croissant colonne A quand on clique sur le bouton même si ajoute des nouveaux noms dans le fichier de base ?

Mille mercis.

Il va vraiment falloir que je mette au macros

Guillaume
 
Re : Nombre de participation à une manifestation

re


je ne te fournis que le code :

PHP:
Sub Bouton1_QuandClic()
Dim plage As Range
Dim tablonom, el
Dim tablo()
Dim data As New Collection
Dim i As Integer

ReDim tablo(1 To 2, 1 To 1)

With Sheets("table de base").Range("a1").CurrentRegion
    Set plage = .Offset(2, 0).Resize(.Rows.Count - 3, .Columns.Count)
End With

tablonom = plage

For Each el In tablonom
    If Not el = "" Then
        On Error Resume Next
            data.Add el, CStr(el)
        On Error GoTo 0
    End If
Next el

ReDim tablo(1 To data.Count, 1 To 2)

For i = 1 To data.Count
    tablo(i, 1) = data(i)
    tablo(i, 2) = Application.CountIf(plage, data(i))
Next i

With Sheets("resultat")
    .Cells.ClearContents
    .Range("a1").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
    .Columns("A:B").Sort Key1:=.Range("B1"), Order1:=xlDescending, Key2:=.Range("A1") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal
End With

End Sub
salut
 
Re : Nombre de participation à une manifestation

Merci beaucoup...

Y-a-t-il des sites Internet efficaces qui expliquent les macros, leur utilisation, les termes à utiliser enfin pour je me plonge dedans ?

Guillaume
 
Re : Nombre de participation à une manifestation

re

oui, ICI 🙂

je te placerai des commentaires dans le code que je t'ai fournis pour t'aider.

sinon, commence par des codes simples du style range("a1")="toto"

lis les pages wiki de MichelXLd, essaye de repondre aux questions, regarde les codes proposés sur le forum

utilise l'enregistreur de macro pour faire tes premiers codes, analyse le résultat de ces enregistrements.

et abuse sans fin de la touche F1 (l'aide VBA d'excel est ton meilleur ami)

salut
 
Re : Nombre de participation à une manifestation

Moi je m'y suis mise en mars en stage
et en fait grâce à l'enregistreur ca permet de comprendre comment ca fonctionne

ensuite faut savoir poser les questions à l'aide VBA d'excel :d

sinon j'ai gardé mes macros utilisées en stage, pour avoir quelques syntaxes
si tu veux :
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour