Comment créer un tableau en lien avec différentes feuilles?
Résolupetiteféereveuse Messages postés 47 Statut Membre -
J'ai besoin d'aide.
Je suis en train de référencer des clients (1 client par feuille) et souhaiterais établir un tableau (dans la toute première feuille de mon fichier) qui reprendrais automatiquement toutes les infos que je saisis dans mes feuilles un à un, est-ce possible ?
Quelles formules dois-je utiliser ?
Pouvez-vous m'aider ?
Afin de mieux pouvoir comprendre, voici le fichier concerné : http://www.cjoint.com/c/FInpKxok7JJ
Merci par avance. =)
4 réponses
La problématique consiste à alimenter automatiquement une feuille récap sur une première page à partir des informations saisies sur chaque feuille client, afin d'obtenir un aperçu consolidé des données. Plusieurs méthodes existent, notamment l'utilisation d'une feuille Modèle copiée pour chaque nouveau client et l'emploi d'une macro qui recopie les champs essentiels (société, code postal, ville, téléphone, mail) dans la récap. Pour accélérer l'accès, des liens hypertextes vers chaque feuille peuvent être générés, ou un tableau récapitulatif liste les noms des feuilles et permet d'ouvrir rapidement la fiche correspondante. Par ailleurs, certaines solutions proposent d'exclure la feuille récap du parcours de consolidation et d'ajouter des fonctions de mise à jour sélective pour éviter les doublons lors de l'ajout de nouveaux clients.
-
Bonjour.
Oui, c'est très possible et d'ailleurs très souvent pratiqué ; il suffit d'utiliser la fonction INDIRECT pour cibler la bonne feuille. Simplement tu as oublié le principal : une première colonne avec le nom des clients (donc des feuilles).
Mais si tu veux que la première feuille se mette à jour toute seule quand tu crées une nouvelle feuille client, alors ça change tout : il faut passer en VBA et écrire une macro !
-
Bonjour,
C'est tout à fait ça, comme énuméré en seconde solution, je souhaite que la première feuille se mette à jour toute seule lorsque je crée une nouvelle feuille client.
Mais comment faire pour passer en VBA et écrire une macro?
Je ne l'ai jamais fait, est-ce possible de m'aiguiller ?
Concernant ma 1ère colonne avec le nom des clients sur mon tableau, elle est indiquée en seconde colonne. Elle est nommé "Société" ;)
Merci par avance. =)
-
-
Bonjour,
Voici un exemple:
http://www.cjoint.com/c/FIoiWrFYDUQ
-
Bonjour,
Voici une proposition avec une macro qui réalise le récapitulatif de toutes les feuilles (à l'exception de la feuille récap).
Cette façon de procéder permet la prise en compte d'une éventuelle modification de fiche.
Le lancement de la procédure est effectué avec un bouton de commande.
https://www.cjoint.com/c/FIojigCM5Y2
Rq : Perso, j'aurais plutôt opté pour une gestion avec une fiche de données regroupant toutes les données clients et une seule fiche client pour la présentation. Les opérations entre ces 2 feuilles pouvant être réalisées avec un Userform. Par contre, cela implique de s'investir dans la programmation VBA.
A+-
-
Pour voir la macro :
- appuyer sur alt + F11 pour ouvrir l'éditeur,
- appuyer sur ctrl + R pour ouvrir l'explorateur de projets,
- cliquer sur Modules/Module1 pour visualiser le code.
Voici le code commenté :Sub Recap()
Dim Ws As Worksheet
Dim LigneC As Long
'Première ligne à renseigner dans la feuille récap
LigneC = 4
With Worksheets("RECAP CLIENTS")
'On efface les données de la feuille récap
.Range("A4", .Range("A4").End(xlDown)).EntireRow.ClearContents
'ON balaye chaque feuille du classeur
For Each Ws In Worksheets
'à l'exception de la feuille "RECAP CLIENTS"
If Ws.Name <> .Name Then
'On renseigne les champs
.Range("A" & LigneC).Value = Ws.Range("F7").Value 'Domaine d'activité
.Range("B" & LigneC).Value = Ws.Range("B3").Value 'SOCIÉTÉ
.Range("C" & LigneC).Value = Ws.Range("B10").Value 'CP
.Range("D" & LigneC).Value = Ws.Range("D10").Value 'VILLE
.Range("E" & LigneC).Value = Ws.Range("B12").Value 'TELEPHONE
.Range("F" & LigneC).Value = Ws.Range("D12").Value 'MAIL
'On incrémente la ligne récap
LigneC = LigneC + 1
End If
Next Ws
End With
End Sub
A+ -
-
Tu peux utiliser des liens hypertextes :
Sub Recap()
Dim Ws As Worksheet
Dim LigneC As Long
'Première ligne à renseigner dans la feuille récap
LigneC = 4
With Worksheets("RECAP CLIENTS")
'On efface les données de la feuille récap
.Range("A4", .Range("A4").End(xlDown)).EntireRow.ClearContents
'ON balaye chaque feuille du classeur
For Each Ws In Worksheets
'à l'exception de la feuille "RECAP CLIENTS"
If Ws.Name <> .Name Then
'On renseigne les champs
.Range("A" & LigneC).Value = Ws.Range("F7").Value 'Domaine d'activité
.Hyperlinks.Add Anchor:=.Range("B" & LigneC), Address:="", _
SubAddress:=Ws.Name & "!A1", TextToDisplay:=Ws.Range("B3").Value 'SOCIÉTÉ
.Range("C" & LigneC).Value = Ws.Range("B10").Value 'CP
.Range("D" & LigneC).Value = Ws.Range("D10").Value 'VILLE
.Range("E" & LigneC).Value = Ws.Range("B12").Value 'TELEPHONE
.Range("F" & LigneC).Value = Ws.Range("D12").Value 'MAIL
'On incrémente la ligne récap
LigneC = LigneC + 1
End If
Next Ws
End With
End Sub
A+ -
-
-
Bien !
Si tu veux un peu moins rêver, un peu moins courir après des macros que tu ne maîtriseras pas, et avoir quand même un fichier qui fonctionne, je te conseille vivement de suivre mon conseil du post #1 :
Tu insères en A une colonne avec les noms des clients, donc des feuilles.
Tu saisis en ligne 2 la référence des cellules des feuilles nominatives correspondant aux infos recherchées (ligne où tu pourras mettre la même couleur pour la police et le remplissage)
Tu saisis dans les cellules B4 à G30 la même formule
=SIERREUR(INDIRECT($A4&"!"&$2:$2);"°")
et ton problème est réglé en beauté ...
https://www.cjoint.com/c/FIrbdROWLes
Cordialement.