Amélioration document excel - Gestion bénévoles (planning/listings)

alex_ub

XLDnaute Nouveau
Bonjour,
Je vais tenter de faire simple pour expliquer mon appel à l'aide !!

Je suis responsable bénévoles dans une association qui organise un évènement sportif prochainement et je dois donc gérer les bases de données et planning des 300 bénévoles.

J'aimerais donc gérer l'ensemble des données [données perso (tel, adresse, etc) + planning général (tous les bénévoles classés par ordre alphabétique avec leur planning) + plannings par commission] dans un même document excel afin que tout soit automatisé (je ne veux pas avoir 4 documents excel où il faut remettre à chaque fois les noms et prénoms.

La difficulté (pour moi) consiste également dans le fait que chaque personne peut appartenir à une ou plusieurs commissions.

Comment pourrais-je procéder pour améliorer mon fonctionnement ??? :confused:

J'ai mis en pièce jointe le document actuel (mais j'y ai ôté les données persos)...

Merci pour votre aide et conseils ! :)
Alex
 

Pièces jointes

  • listing_planning.xlsx
    72.2 KB · Affichages: 604
  • listing_planning.xlsx
    72.2 KB · Affichages: 631
  • listing_planning.xlsx
    72.2 KB · Affichages: 642
Dernière édition:

alex_ub

XLDnaute Nouveau
Re : Amélioration document excel -

Merci phlaurent55 de m'en avertir !
Ça devrait être bon maintenant...
 

Pièces jointes

  • listing_planning.xlsx
    72.2 KB · Affichages: 265
  • listing_planning.xlsx
    72.2 KB · Affichages: 256
  • listing_planning.xlsx
    72.2 KB · Affichages: 266

alex_ub

XLDnaute Nouveau
Re : Amélioration document excel - Gestion bénévoles (planning/listings)

En gros, peut-être n'ai-je pas été suffisamment clair et précis dans mon explication.

J'ai un listing général de tous les bénévoles dans un premier onglet. Ceux-ci sont répartis dans une ou plusieurs commissions, et les onglets suivants (un par commission) sont des listings par commission : ils reprennent les infos de chaque bénévole inscrit dans cette commission.

Pour le moment je le fais manuellement, mais j'aimerais pouvoir automatiser cette répartition dans les onglets des commissions. (exemple : s'il y a une croix dans la colonne accueil du premier onglet, il faut copier/coller les infos de ce bénévole dans l'onglet "Accueil")

Quelqu'un aurait-il une solution SVP ?! :confused::)

J'ai retravaillé mon document excel en créant les onglets des commissions...

Merci, Alex.
 

Pièces jointes

  • listing_planning_V2.xlsx
    85.2 KB · Affichages: 266

CISCO

XLDnaute Barbatruc
Re : Amélioration document excel - Gestion bénévoles (planning/listings)

Bonjour à tous

Ce que tu demandes ne me parait pas trop difficile à obtenir, sauf que, sauf que...
Dans ton premier onglet, tu as plusieurs colonnes accueil. Laquelle correspond à l'onglet accueil ? Cela serait plus simple si les onglets portaient exactement les mêmes noms que les colonnes...

@ plus
 

alex_ub

XLDnaute Nouveau
Re : Amélioration document excel - Gestion bénévoles (planning/listings)

Bonjour Cisco et merci beaucoup d'avoir consulté et répondu à ce post !

J'ai modifié le doc en ajoutant tous les onglets rangés dans l'ordre et renommés de même la façon que les colonnes.
 

Pièces jointes

  • Listing_planning_V3.xlsx
    92.4 KB · Affichages: 246

CISCO

XLDnaute Barbatruc
Re : Amélioration document excel - Gestion bénévoles (planning/listings)

Bonjour

Ci-joint le début du travail.

Je n'ai fait le travail que sur les onglets Sécu course et Sécu rando...

Le principe : Le travail se fait en trois parties,

1) Colonnes A (et B)
Le nom concatenationligne concatene toutes les cellules d'une ligne de C à BF.
CHERCHE va chercher dans concatenationligne un mot clef correspondant à l'onglet en cours.
ESTNUM renvoie un ou des nombres si CHERCHE trouve le mot clef sur une ou plusieurs lignes
LIGNE donne les numéro de ligne
PETITE.VALEUR renvoie le premier numéro de la ligne (non encore citée au dessus) où se trouve le mot clef
INDEX renvoie le contenu de la colonne A sur cette ligne

Même méthode en colonne B (sauf pour la dernière ligne)

Rem : Il faudra définir exactement les mots clefs correspondant à chaque onglet. Par exemple, pour Sécu course, ne doit on utiliser que Signaleur ?

2) Colonnes C à BF
EQUIV recherche la position de nom&prénom dans la plage A3:A200&B3&B200.
INDEX renvoie le contenu correspondant à cette ligne de la colonne en cours

Rem : Il risque d'y avoir des problèmes si il y a des homonymes. Il faudra les différencier par ex en rajoutant un n° derrière le prénom.

Rem : Il y a un problème de forme : La cellule à droite efface la fin du texte contenu dans la cellule à gauche. Pour éviter ce problème, j'ai mis les textes à la verticale.

3) Mise en forme.
Il y a plusieurs mises en forme dans la plage C:BF utilisant la fonction XL4 LIRE.CELLULE(63;cellule) et nommée ici couleur, qui permet d'aller voir la couleur de la cellule sur la ligne contenant le même nom et le même prénom, et de la colonne en cours, de l'onglet Tout.

Rem : Il y a un problème de préparation du fichier :
Il faut trouver tous les nombres correspondant aux diverses couleurs utilisées dans l'onglet Tout.


Et, pour finir, un autre problème, gros à mon avis...
Je n'ai pas trouvé d'astuce pour qu'un nom défini dans un onglet X soit aussi valable pour un onglet W, en relatif par rapport à l'onglet en cours donc.
Cela ne pose pas de problème pour concatenationligne puisque ce nom doit faire appel uniquement qu'à des cellules du fichier Tout.
Par contre, pour le nom couleur, cela ne va pas car ce nom utilise le contenu des cellules des colonnes A et B de l'onglet en cours... Tel que, il faut donc redéfinir ce nom pour chaque onglet... Grrrrrr. Ce que je n'ai pas fait pour l'onglet Sécu rando, espérant trouver une autre méthode plus simple. Par conséquent, je n'ai pas non plus fait les MFC utilisant le nom couleur pour cet onglet.

Bon, je te laisse essayer de comprendre ce travail...

Dis nous si c'est sur la bonne route...

Une macro ou des fonctions personnalisées seraient certainement mieux adaptées...

@ plus

P.S 1 : J'ai fait les formules pour 200 lignes au max dans l'onglet Tout.
P.S 2 : J'ai dû changer l'extension du fichier pour pouvoir travailler avec la fonction LIRE.CELLULE en XL4
 

Pièces jointes

  • Listing_planning_V3(1)simplifié.xlsm
    94.3 KB · Affichages: 453
Dernière édition:

alex_ub

XLDnaute Nouveau
Re : Amélioration document excel - Gestion bénévoles (planning/listings)

Ouaw, Merci beaucoup Sisco pour ce travail. J'ai mis beaucoup de temps à répondre parce qu'étant débutant, il m'a fallu beaucoup de temps pour comprendre ce que tu avais fait ! Quel savoir faire !

J'ai entre temps reçu en message privé (étrange !) une autre proposition qui a l'air d'être intéressante également (macro). Dis moi ce que tu en penses ?

Private Sub CommandButton1_Click()

Dim Ligne
Dim Col
Dim nom As String
Dim temp
Dim ExcluList As Collection
Set ExcluList = New Collection
ExcluList.Add ("fantomas")
Ligne = 3
Total = Worksheets.Count
For i = 3 To Total
Worksheets(3).Delete
Next i


While Worksheets("Tout").Cells(Ligne, 1).Value <> Empty
' nom en maj
Worksheets("Tout").Cells(Ligne, 1).Value = UCase(Worksheets("Tout").Cells(Ligne, 1).Value)
For Col = 3 To 58
If Worksheets("Tout").Cells(Ligne, Col).Value <> Empty Then
nom = Worksheets("Tout").Cells(Ligne, Col).Value

If Len(nom) > 25 Or InStr(nom, "?") <> 0 Then
If vbNo = MsgBox("Ton nom de catégorie est bien trop long (ou tu as mis un caractère interdit) !!! " _
+ vbCrLf + "allez je suis sympa : " + nom + vbCrLf + "Est ce bien une catégorie ??", vbYesNo) Then
ExcluList.Add (nom)

GoTo finCase
Else
GoTo fin
End If
End If
On Error Resume Next
Worksheets(nom).Cells(2, 1).Value = nom ' copie de la catégorie
' Worksheets(nom).Cells(2, 1).Interior.Color = RGB(255, 0, 0)
Worksheets(nom).Cells(2, 1).Font.Bold = True
Worksheets(nom).Cells(2, 1).Font.Size = 22

If Err.Number <> 0 Then ' si on n'a pas l'onglet ça fait une erreur qu'on récuper pour créer le nv onglet
Worksheets.Add(, Sheets(Sheets.Count)).Name = Worksheets("Tout").Cells(Ligne, Col).Value
Worksheets("Tout").Range("A" & 1 & ":EB" & 2).Copy
Worksheets(nom).Range("A" & 3).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
' tant qu'il y a un nom et que ce n'est pas le nom de la personne (pour éviter les doubles inscriptions)
temp = 5
While (Worksheets(nom).Cells(temp, 1).Value <> Empty) And (Worksheets(nom).Cells(temp, 1).Value <> Worksheets("Tout").Cells(Ligne, 1).Value)
temp = temp + 1
Wend
' on a trouvé où coller : on colle !
Worksheets("Tout").Range("A" & Ligne & ":EB" & Ligne).Copy
Worksheets(nom).Range("A" & temp).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets(nom).Range("A" & temp).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
' onpoursuit en cherchant le dernier nom pour compter le nombre
While (Worksheets(nom).Cells(temp, 1).Value <> Empty)
temp = temp + 1
Wend
Worksheets(nom).Cells(2, 8).Value = temp - 5

' For i = 1 To 130
' Worksheets(nom).Cells(temp, i).Value = Worksheets("Tout").Cells(Ligne, i).Value
' Next i

End If
finCase:
Next Col
Ligne = Ligne + 1
Wend

fin:

End Sub

Private Sub CommandButton2_Click()

For i = 2 To Worksheets.Count
Worksheets(i).Range("A" & 3 & ":EB" & 100).Delete


Next i



End Sub
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Amélioration document excel - Gestion bénévoles (planning/listings)

Bonjour

N'y connaissant rien en VBA, je ne peux pas faire de commentaire sur cette macro...

N'importe comment, je pense qu'une macro sera plus pratique pour faire ce dont tu as besoin... Reste plus qu'à poursuivre dans cette voie.

@ plus
 

alex_ub

XLDnaute Nouveau
Re : Amélioration document excel - Gestion bénévoles (planning/listings)

Bonjour,

Juste pour te remercier encore une fois pour tout le travail que tu as fais ! Je vais effectivement poursuivre avec la macro, je pourrais ainsi plus facilement exploiter les onglets...

Bonne continuation
 

Statistiques des forums

Discussions
312 361
Messages
2 087 617
Membres
103 608
dernier inscrit
rawane