A voir également:
- Excel - Classeur étant le filtre d'un autre
- Liste déroulante excel - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
25 réponses
Quand tu veux un exemple, tu veux un fichier Excel joint ?
Pour les feuilles référents, il faudrait en tout cas que ce soit dans un classeur autre que celui de la base de données, mais on pourrait avoir un classeur pour tous les référents avec une feuille par référent.
Pour les feuilles référents, il faudrait en tout cas que ce soit dans un classeur autre que celui de la base de données, mais on pourrait avoir un classeur pour tous les référents avec une feuille par référent.
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
5 déc. 2011 à 21:42
5 déc. 2011 à 21:42
Bonjour,
Oui c'est tout à fait possible via fonction Excel ou procédure VBA.
Question ; est-ce obligatoire d'avoir un classeur par référent ou est-il possible sur le même classeur par feuille ?
Pour en dire plus un exemple serait souhaitable.
Oui c'est tout à fait possible via fonction Excel ou procédure VBA.
Question ; est-ce obligatoire d'avoir un classeur par référent ou est-il possible sur le même classeur par feuille ?
Pour en dire plus un exemple serait souhaitable.
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
6 déc. 2011 à 15:04
6 déc. 2011 à 15:04
Bonjour,
Je ne vous impose rien, par contre, s'il vous est possible de mettre un exemple sur un fichier Excel avec une petite explication directement sur le fichier se sera plus parlant.
Fichier sur https://www.cjoint.com/ et poster le lien.
Je ne vous impose rien, par contre, s'il vous est possible de mettre un exemple sur un fichier Excel avec une petite explication directement sur le fichier se sera plus parlant.
Fichier sur https://www.cjoint.com/ et poster le lien.
Voici le fichier joint :
http://cjoint.com/?ALgqKJSP1xb
J'espère que mes explications sont claires (pas gagné).
http://cjoint.com/?ALgqKJSP1xb
J'espère que mes explications sont claires (pas gagné).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
6 déc. 2011 à 21:47
6 déc. 2011 à 21:47
Bonjour,
Merci pour l'information, c'est parfait.
Demain vous aurez une proposition.
Juste une question, quel est le nombre approximatif des référents ?
Merci pour l'information, c'est parfait.
Demain vous aurez une proposition.
Juste une question, quel est le nombre approximatif des référents ?
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
7 déc. 2011 à 10:51
7 déc. 2011 à 10:51
Bonjour,
Merci pour l'information.
Voici ma proposition : https://www.cjoint.com/?3LhkYHEwBid
Note : les 2 classeurs doivent se trouver dans le même répertoire. Le nom du classeur des référents doit être inscrit dans la plage réservé du classeur de données.
Vous devez lancer la mise à jour selon vos besoins par clic sur le bouton de commande et la procédure fera son travail.
Si vous avez un nouveau référent, il suffit de copier une des feuilles présentent dans le classeur y relatif et de prendre soin de renommer la feuille avec le nom du référent (doit être identique à celui du classeur de base). Pas oublier d'enregistrer... !
Merci pour l'information.
Voici ma proposition : https://www.cjoint.com/?3LhkYHEwBid
Note : les 2 classeurs doivent se trouver dans le même répertoire. Le nom du classeur des référents doit être inscrit dans la plage réservé du classeur de données.
Vous devez lancer la mise à jour selon vos besoins par clic sur le bouton de commande et la procédure fera son travail.
Si vous avez un nouveau référent, il suffit de copier une des feuilles présentent dans le classeur y relatif et de prendre soin de renommer la feuille avec le nom du référent (doit être identique à celui du classeur de base). Pas oublier d'enregistrer... !
Bonjour,
J'essaie de l'adapter à mon fichier, mais ça bug encore. Par contre, comme le fichier "Référent" ne reprend pas automatiquement les informations de la base, mais qu'il est modifié par un bouton, il faudrait plutôt y avoir un bouton sur chaque feuille de référent.
En effet, le but de crée des pages liés aux référents est que chaque référent aille voir sa feuille (soit dans un classeur commun, soit dans des classeurs séparés) sans passer par la base de données, qui est gérée par une autre personne.
Donc, il faudrait que chaque référent puisse voir sur sa feuille à lui la situation au moment où il va dessus et pas au moment où le gestionnaire de la base de données a remis à jour pour la dernière fois.
J'essaie de l'adapter à mon fichier, mais ça bug encore. Par contre, comme le fichier "Référent" ne reprend pas automatiquement les informations de la base, mais qu'il est modifié par un bouton, il faudrait plutôt y avoir un bouton sur chaque feuille de référent.
En effet, le but de crée des pages liés aux référents est que chaque référent aille voir sa feuille (soit dans un classeur commun, soit dans des classeurs séparés) sans passer par la base de données, qui est gérée par une autre personne.
Donc, il faudrait que chaque référent puisse voir sur sa feuille à lui la situation au moment où il va dessus et pas au moment où le gestionnaire de la base de données a remis à jour pour la dernière fois.
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
7 déc. 2011 à 13:44
7 déc. 2011 à 13:44
Bonjour Caveman,
Eh bien dans ma proposition se base sur le gestionnaire qui est le seul à gérer le classeur de base, donc chaque référent peut voir sa feuille selon ces besoins du moment.
Pour quel raison ce sont les référents qui changeraient les données ?
En plus elle s'adressais à flo8 .
Salutations.
Le Pingou
Eh bien dans ma proposition se base sur le gestionnaire qui est le seul à gérer le classeur de base, donc chaque référent peut voir sa feuille selon ces besoins du moment.
Pour quel raison ce sont les référents qui changeraient les données ?
En plus elle s'adressais à flo8 .
Salutations.
Le Pingou
Purée, c'est un collègue qui s'incruste où il doit pas :(
Faut que le rappelle à l'ordre...
Ceci dit, il soulève un point auquel je n'avais pas pensé. La base de données est géré par un homme qui est censé être le seul à y accéder. Les référents ne sont pas censés toucher à cette base de données. Par contre, ils ont chacun une feuille, soit sur un classeur commun (comme dans ta proposition), soit dans des classeurs différents. Qu'ils ne peuvent normalement pas modifier.
Cependant, il pourrait être intéressant pour le référent, quand il consulte son dossier, d'avoir un bouton sur sa feuille qui remette à jour plutôt que de devoir passer par le gestionnaire de la base de données (qui ne remettrait pas forcément à jour chaque fois qu'il modifie la base).
C'est ça l'idée...
Faut que le rappelle à l'ordre...
Ceci dit, il soulève un point auquel je n'avais pas pensé. La base de données est géré par un homme qui est censé être le seul à y accéder. Les référents ne sont pas censés toucher à cette base de données. Par contre, ils ont chacun une feuille, soit sur un classeur commun (comme dans ta proposition), soit dans des classeurs différents. Qu'ils ne peuvent normalement pas modifier.
Cependant, il pourrait être intéressant pour le référent, quand il consulte son dossier, d'avoir un bouton sur sa feuille qui remette à jour plutôt que de devoir passer par le gestionnaire de la base de données (qui ne remettrait pas forcément à jour chaque fois qu'il modifie la base).
C'est ça l'idée...
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
7 déc. 2011 à 15:07
7 déc. 2011 à 15:07
Bonjour flo8,
Merci pour l'information.
Je vous conseille de ne pas inverser les rôles.
Toutefois si vous pensez que le gestionnaire peux oublier de mettre à jour son travail alors il est possible de le faire via la procédure.
Merci pour l'information.
Je vous conseille de ne pas inverser les rôles.
Toutefois si vous pensez que le gestionnaire peux oublier de mettre à jour son travail alors il est possible de le faire via la procédure.
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
Modifié par Le Pingou le 7/12/2011 à 15:54
Modifié par Le Pingou le 7/12/2011 à 15:54
Bonjour flo8,
Si vous dites ceci : Les référents ne sont pas censés toucher à cette base de données Donc le référent reçoit un fichier mis à jour par le gestionnaire.
Note, bien entendu que c'est à vous de décider quelle méthode vous voulez adopter.
Salutations.
Le Pingou
Si vous dites ceci : Les référents ne sont pas censés toucher à cette base de données Donc le référent reçoit un fichier mis à jour par le gestionnaire.
Note, bien entendu que c'est à vous de décider quelle méthode vous voulez adopter.
Salutations.
Le Pingou
Effectivement, les référents ne sont pas censés toucher à la base de données. C'est le gestionnaire qui la met à jour. Mais pour envoyer les mises à jour, le gestionnaire doit cliquer sur le bouton. Ca ne se fait pas automatiquement. Donc, est-ce qu'il le fera systématiquement ?
L'idée est donc que, depuis sa feuille, le référent puisse aussi avoir la possibilité d'appeler cette mise à jour afin d'être sûr qu'il a bien la dernière version.
L'idée est donc que, depuis sa feuille, le référent puisse aussi avoir la possibilité d'appeler cette mise à jour afin d'être sûr qu'il a bien la dernière version.
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
7 déc. 2011 à 17:14
7 déc. 2011 à 17:14
Bonjour flo8,
J'ai juste une question ; avez-vous déjà essayé le fichier pour voir ce qui se passe ?
Remarque : il est possible de forcer la mise à jour dès la fermeture du fichier de base, ce qui rendra inutile toute manipulation de la part des référents.
Dans ce cas vous avez tout en main, vous devez mettre la même procédure dans le classeur référent en mentionnant le nom du classeur de base.
J'ai juste une question ; avez-vous déjà essayé le fichier pour voir ce qui se passe ?
Remarque : il est possible de forcer la mise à jour dès la fermeture du fichier de base, ce qui rendra inutile toute manipulation de la part des référents.
Dans ce cas vous avez tout en main, vous devez mettre la même procédure dans le classeur référent en mentionnant le nom du classeur de base.
De retour au turbin...
Alors, j'ai essayé l'exemple, mais je n'ai encore fini. Il bogur au niveau de l'expression suivante :
Range("MesData").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("AA1:AA2"), _
CopyToRange:=wbcible.Sheets(ref.Name).Range("A2:C2"), Unique:=False
Je pense que je dois changer quelque chose, mais quoi ?
Alors, j'ai essayé l'exemple, mais je n'ai encore fini. Il bogur au niveau de l'expression suivante :
Range("MesData").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("AA1:AA2"), _
CopyToRange:=wbcible.Sheets(ref.Name).Range("A2:C2"), Unique:=False
Je pense que je dois changer quelque chose, mais quoi ?
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
Modifié par Le Pingou le 9/12/2011 à 23:31
Modifié par Le Pingou le 9/12/2011 à 23:31
Bonjour,
Cela m'étonne que mon exemple ne fonctionne pas correctement.
Qu'elle est le message d'erreur ?
Vous pouvez réaliser une copie d'écran lors du message d'erreur et ensuite une deuxième sur le débogage du code. Mettre les 2 copies d'écran sur un fichier Word et le placer sur https://www.cjoint.com/ et poster le lien !
Salutations.
Le Pingou
Cela m'étonne que mon exemple ne fonctionne pas correctement.
Qu'elle est le message d'erreur ?
Vous pouvez réaliser une copie d'écran lors du message d'erreur et ensuite une deuxième sur le débogage du code. Mettre les 2 copies d'écran sur un fichier Word et le placer sur https://www.cjoint.com/ et poster le lien !
Salutations.
Le Pingou
Oups, mon message est incomplet. J'ai oublié une phrase entre la première et la deuxième.
L'exemple marche très bien. J'essaie d'adapter dans mon fichier et ça bug. Il y a des éléments que je dois changer, mais j'ai de la peine à voir lesquels. Et en plus, ce matin. ça bug à un autre endroit où ça passait vendredi.
Voici les deux captures d'écran du premier bug actuel :
http://cjoint.com/?ALmiD31j1EG
L'exemple marche très bien. J'essaie d'adapter dans mon fichier et ça bug. Il y a des éléments que je dois changer, mais j'ai de la peine à voir lesquels. Et en plus, ce matin. ça bug à un autre endroit où ça passait vendredi.
Voici les deux captures d'écran du premier bug actuel :
http://cjoint.com/?ALmiD31j1EG
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
12 déc. 2011 à 16:03
12 déc. 2011 à 16:03
Bonjour,
Selon les copies d'écran c'est effectivement le nom du classeur du référent qui est mal orthographié ou il n'est pas dans le même répertoire de votre fichier de base (« Cordinations.xl..)
Salutations.
Le Pingou
Selon les copies d'écran c'est effectivement le nom du classeur du référent qui est mal orthographié ou il n'est pas dans le même répertoire de votre fichier de base (« Cordinations.xl..)
Salutations.
Le Pingou
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
13 déc. 2011 à 14:07
13 déc. 2011 à 14:07
Bonjour,
Son extension doit aussi faire partie du nom !
Salutations.
Le Pingou
Son extension doit aussi faire partie du nom !
Salutations.
Le Pingou
Et allez, je refais un essai et c'est un autre bug qui apparaît. Je te mets aussi les captures d'écran :
http://cjoint.com/?ALmiWe2XjtK
http://cjoint.com/?ALmiWe2XjtK
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
Modifié par Le Pingou le 12/12/2011 à 16:23
Modifié par Le Pingou le 12/12/2011 à 16:23
Bonjour,
Concernant le deuxième cas, il y a 2 possibilités d'erreur.
La première : [Range("MesData")] ou [Mesdata] représente le nom de la plage des données à filtrer
Dans mon exemple le nom MesData fait référence :
La deuxième : [Range("A2:C2")] c'est la plage des titres des colonnes que vous voulez récupérer sur le classeur [AC]
Salutations.
Le Pingou
Concernant le deuxième cas, il y a 2 possibilités d'erreur.
La première : [Range("MesData")] ou [Mesdata] représente le nom de la plage des données à filtrer
Dans mon exemple le nom MesData fait référence :
=DECALER('Base de données'!$A$1:$D$1;;;NBVAL('Base de données'!$A:$A))Cette formule permet de réagir dynamiquement à l'augmentation ou diminutions du nombre des enregistrements (lignes...)
La deuxième : [Range("A2:C2")] c'est la plage des titres des colonnes que vous voulez récupérer sur le classeur [AC]
Salutations.
Le Pingou
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
13 déc. 2011 à 14:35
13 déc. 2011 à 14:35
Bonjour,
Et pourtant vous avez l'exemple sur ma proposition [flo8_ccm_Base.xlsm].
Alors vous devez définir un nom pour votre plage de données, dans la boite de dialogue [Nouveau nom], sous [NOM :] indiqué par exemple [MesData] et sous [Fait référence à :] dans votre cas la formule :
Salutations.
Le Pingou
Et pourtant vous avez l'exemple sur ma proposition [flo8_ccm_Base.xlsm].
Alors vous devez définir un nom pour votre plage de données, dans la boite de dialogue [Nouveau nom], sous [NOM :] indiqué par exemple [MesData] et sous [Fait référence à :] dans votre cas la formule :
=DECALER('Participants'!$A$1:$H$1;;;NBVAL('Participants'!$A:$A))Note : adapté $A$1:$H$1 selon les colonnes de votre choix.
Salutations.
Le Pingou
MesData est défini dans la macro ? Voilà le texte que j'ai :
Option Explicit
Sub FiltreAutreClasseur()
Dim wbbase As String, nomclaref As String
Dim wbcible As Workbook
Dim ref As Variant
Range("AA1") = "Référent"
nomclaref = Range("claref")
wbbase = ActiveWorkbook.Name
ChDir ActiveWorkbook.Path
Application.DisplayAlerts = False
Workbooks.Open (nomclaref)
Set wbcible = ActiveWorkbook
Windows(wbbase).Activate
' boucle sur les référent (nom des feuilles
For Each ref In wbcible.Worksheets
Range("AA2") = ref.Name
Range("MesData").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("AA1:AA2"), _
CopyToRange:=wbcible.Sheets(ref.Name).Range("A2:C2"), Unique:=False
Next ref
Range("miajo") = "Le " & Format(Date, "dd.mm.yyyy") & " à " & Format(Time, "h:mm:ss")
MsgBox "La mise à jour est terminée."
End Sub
Option Explicit
Sub FiltreAutreClasseur()
Dim wbbase As String, nomclaref As String
Dim wbcible As Workbook
Dim ref As Variant
Range("AA1") = "Référent"
nomclaref = Range("claref")
wbbase = ActiveWorkbook.Name
ChDir ActiveWorkbook.Path
Application.DisplayAlerts = False
Workbooks.Open (nomclaref)
Set wbcible = ActiveWorkbook
Windows(wbbase).Activate
' boucle sur les référent (nom des feuilles
For Each ref In wbcible.Worksheets
Range("AA2") = ref.Name
Range("MesData").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("AA1:AA2"), _
CopyToRange:=wbcible.Sheets(ref.Name).Range("A2:C2"), Unique:=False
Next ref
Range("miajo") = "Le " & Format(Date, "dd.mm.yyyy") & " à " & Format(Time, "h:mm:ss")
MsgBox "La mise à jour est terminée."
End Sub
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
13 déc. 2011 à 16:23
13 déc. 2011 à 16:23
Bonjour,
Alors vous m'expliquez ou c'est ?
Et ceci vous en faites quoi :
Alors vous devez définir un nom pour votre plage de données, dans la boite de dialogue [Nouveau nom], sous [NOM :] indiqué par exemple [MesData] et sous [Fait référence à :] dans votre cas la formule :
=DECALER('Participants'!$A$1:$H$1;;;NBVAL('Participants'!$A:$A))
Note : adapté $A$1:$H$1 selon les colonnes de votre choix.
Alors vous m'expliquez ou c'est ?
Et ceci vous en faites quoi :
Alors vous devez définir un nom pour votre plage de données, dans la boite de dialogue [Nouveau nom], sous [NOM :] indiqué par exemple [MesData] et sous [Fait référence à :] dans votre cas la formule :
=DECALER('Participants'!$A$1:$H$1;;;NBVAL('Participants'!$A:$A))
Note : adapté $A$1:$H$1 selon les colonnes de votre choix.
D'accord. Donc, ce n'était pas dans la macro qu'il fallait modifier ça.
Donc, j'ai crée le nom de la plage avec la formule précédente adaptée au nombre de colonnes et... ça bugue toujours. Avec le même message qu'auparavant.
Donc, en dehors des deux problèmes possibles précédents, il doit y en avoir un troisième. Ou alors j'ai mal adapté les formules
Donc, j'ai crée le nom de la plage avec la formule précédente adaptée au nombre de colonnes et... ça bugue toujours. Avec le même message qu'auparavant.
Donc, en dehors des deux problèmes possibles précédents, il doit y en avoir un troisième. Ou alors j'ai mal adapté les formules
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
13 déc. 2011 à 22:07
13 déc. 2011 à 22:07
Bonjour,
Est-il possible de voir ce que vous avez réalisé...?
Et par la même occasion la structure du classeur [AC.xlsm] ?
Salutations.
Le Pingou
Est-il possible de voir ce que vous avez réalisé...?
Et par la même occasion la structure du classeur [AC.xlsm] ?
Salutations.
Le Pingou
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
14 déc. 2011 à 10:47
14 déc. 2011 à 10:47
Bonjour,
Merci pour les fichiers.
Dans la procédure j'ai ajouté une commande pour désactiver les événements qui déclenchent des procédures événementielles. En plus la plage de données dans la procédure est [MesData] donc vous devez avoir le même nom dans le gestionnaire des noms (MesDatas était donc incorrect, le [s] est de trop.)
Dans le classeur [AC.xlsm] vous n'aviez pas les titres des colonnes que vous vouliez obtenir. En plus, le nom de la feuille [Macquat] n'était pas correct par rapport au nom du fichier d'origine.
Vos fichiers : https://www.cjoint.com/?3LokU4BJKHy
Salutations.
Le Pingou
Merci pour les fichiers.
Dans la procédure j'ai ajouté une commande pour désactiver les événements qui déclenchent des procédures événementielles. En plus la plage de données dans la procédure est [MesData] donc vous devez avoir le même nom dans le gestionnaire des noms (MesDatas était donc incorrect, le [s] est de trop.)
Dans le classeur [AC.xlsm] vous n'aviez pas les titres des colonnes que vous vouliez obtenir. En plus, le nom de la feuille [Macquat] n'était pas correct par rapport au nom du fichier d'origine.
Vos fichiers : https://www.cjoint.com/?3LokU4BJKHy
Salutations.
Le Pingou
Les fichiers que tu me renvoient fonctionnent très bien. Par contre, quand je les copie dans le dossier où ils sont censés être, ça re-bugue. D'où ma question : est-ce que la méthode utilisée peut avoir des problèmes si les fichiers sont sur un serveur et non sur un disque local ?
Le Pingou
Messages postés
12229
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
9 janvier 2025
1 454
16 déc. 2011 à 11:49
16 déc. 2011 à 11:49
Bonjour,
Eh bien en principe cela devrait marcher sans autre, peut être un caprice jurassien... !
Cependant pouvez-vous me donner la valeur que prend l'expression [ActiveWorkbook.Path] de la procédure ?
Eh bien en principe cela devrait marcher sans autre, peut être un caprice jurassien... !
Cependant pouvez-vous me donner la valeur que prend l'expression [ActiveWorkbook.Path] de la procédure ?