Macro qui copie automatique vers une autre feuille selon ce que contient la cellule

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

Styks

XLDnaute Nouveau
Bonjour a tous,

Je suis nouveau sur ce forum et j'ai malheureusement déjà besoin d'aide.

Vous trouverez ci-joint mon fichier Excel (enfin ... je l'espère)

Donc en fait il s'agit d'un fichier qui sera utilisé pour répertorier et suivre les projets d'un groupe d'apprentis

Sur la page "Tous les projets" se trouve donc la liste générale des projets (j'en ai mis 2 fictifs comme exemple).

Vous verrez aussi la colonne "Apprenti responsable du projet" (que j'ai fait ressortir en rose fluo). Il s'agit là des cellules les plus importantes, ce sont elles qui vont permettre le tri.

Et ce que je cherche à faire, c'est que lorsque nous cliquerons sur les boutons de la première page "Menu" sur lesquels sont inscrit le nom d'un apprenti, Excel reporte sur un autre fichier ou sur une autre page tous les projets auxquels l'apprenti participe.

Voilà, en espérant que quelqu’un puisse m’aider.

Merci
 

Pièces jointes

Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro qui copie automatique vers une autre feuille selon ce que contient la cell

Bonjour Styks, et bienvenue sur le forum

ton fichier est absent
pour le joindre, clique sur "Aller en mode avancé" ( en bas et à droite de ta réponse)

en suite tu descends dans la page et clique sur "Gérer les pièces jointes"

à+
Philippe
 

job75

XLDnaute Barbatruc
Re : Macro qui copie automatique vers une autre feuille selon ce que contient la cell

Bonjour Styks, Philippe, Robert, Dranreb,

Oui un filtre, comme le dit Dranreb, mais un filtre assez particulier...

Les macros dans le code de la feuille Menu (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("B2,D2")) Is Nothing Then Exit Sub
Cancel = True
Filtre Target
End Sub

Sub Filtre(Target As Range)
Dim F1 As Worksheet, F2 As Worksheet, plage As Range
Set F1 = Sheets("Tous les projets")
Set F2 = Sheets("Projets apprenti")
On Error Resume Next 'si le nom n'est pas trouvé
F1.[B:D].Replace Target, 1, LookAt:=xlWhole
Set plage = F1.[B:D].SpecialCells(xlCellTypeConstants, 1)
F1.Cells.Copy F2.Cells 'pour les dimensions des colonnes
F2.Cells.Clear
Union(F1.Rows(1), plage.EntireRow).Copy F2.[A1]
F2.[B2:D65536].SpecialCells(xlCellTypeConstants, 2).ClearContents
F2.[B:D].Replace 1, Target
F1.[B:D].Replace 1, Target
F2.Activate 'facultatif
End Sub
On pourrait imaginer une autre présentation dans la feuille de restitution. A voir...

A+
 

Pièces jointes

Dernière édition:

Styks

XLDnaute Nouveau
Re : Macro qui copie automatique vers une autre feuille selon ce que contient la cell

Rebonjour à tous,

Maintenant que je peux vous montrer mon fichier, ça va surement être plus facile.

Donc le voici : Cijoint.fr - Service gratuit de dépôt de fichiers

En fait j'avais fait un onglet contenant le tableau principal par apprenti, ce qui rendait le fichier trop lourd, donc je les ai supprimé et selon la méthode que nous choisirons, ils ne seront pas nécessaire.

job75, penses tu qu'il est possible de faire ce que tu as fait sur ce fichier ?

Merci à tous !
 

job75

XLDnaute Barbatruc
Re : Macro qui copie automatique vers une autre feuille selon ce que contient la cell

Bonjour Styks, le fil,

Bon maintenant vous utilisez des boutons dans la feuille Menu. Pas de problème :)

Il faut leur affecter cette macro (dans Module1) :

Code:
Sub Filtre()
Dim F1 As Worksheet, F2 As Worksheet
Dim Target As String, plage As Range
Set F1 = Sheets("Tous les projets")
Set F2 = Sheets("Projets apprenti")
Target = Sheets("Menu").DrawingObjects(Application.Caller).Text
On Error Resume Next 'si le nom n'est pas trouvé
F1.[E:G].Replace Target, 1, LookAt:=xlWhole
Set plage = F1.[E:G].SpecialCells(xlCellTypeConstants, 1)
F1.Cells.Copy F2.Cells 'pour les dimensions des colonnes
F2.Cells.Clear
F2.DrawingObjects.Delete 'suppression des objets
Union(F1.Range("1:4"), plage.EntireRow).Copy F2.[A1]
F2.[E5:G65536].SpecialCells(xlCellTypeConstants, 2).ClearContents
F2.[E:G].Replace 1, Target
F1.[E:G].Replace 1, Target
F2.Activate 'facultatif
End Sub

J'ai fait un gros ménage dans votre fichier (dernières cellules, boutons dans la 2ème feuille...).

Maintenant on peut le déposer sur le fil :rolleyes:

A+
 

Pièces jointes

Styks

XLDnaute Nouveau
Re : Macro qui copie automatique vers une autre feuille selon ce que contient la cell

Voilà,

je viens de présenter le tableau à ma responsable. Elle l'a beaucoup apprécié ainsi que l'aide et l'attention que vous m'avez fait part.

Mais elle aimerai quand même ajouter un petit truc (et oui .... :( ) (Nous avons quand meme essayé pendant 20 minutes mais sans succès ^^)

Donc en fait il s'agit d'ajouter dans la formule le fait que :

Si aucun projet n'est attribué à un apprenti, une boite de dialogue indiquant la phrase suivante:"Aucun projet n'est attribué à cet apprenti" s'ouvre

Et qu'à la fermeture de cette boite de dialogue, l'on reste sur la première feuille (Menu)

Voyez-vous de quoi je parle ? :D
 

Styks

XLDnaute Nouveau
Re : Macro qui copie automatique vers une autre feuille selon ce que contient la cell

Alors là, je ne sais pas comment vous remercier job75 ^^

C'est vraiment super

Et si je peux vous être d'une quelconque aide, n'hésitez pas !

:D
 

Styks

XLDnaute Nouveau
Re : Macro qui copie automatique vers une autre feuille selon ce que contient la cell

Rebonjour à tous,

Pouvez-vous me donner un derniers petit coups de main ?

Il s'agit du même fichier (Et oui encore !!! ^^)

En fait il s'agirai de protéger la dernière feuille (Projets apprenti).

Donc demander au début de la macro de déverrouiller la feuille "Projets apprenti"

et à la fin de la macro de la reverrouiller.

Enfin je pense que ça doit ressembler à ça, mais j'y arrive pas :P

Merci, j'espère que j'ai été précis ^^
 

job75

XLDnaute Barbatruc
Re : Macro qui copie automatique vers une autre feuille selon ce que contient la cell

Bonjour Styks,

Code:
F2.Unprotect "mdp" 'votre mot de passe
'-----
F2.Protect "mdp"
Même en n'y connaissant rien en VBA faut pas 2 heures pour trouver la solution :rolleyes:

A+
 

Discussions similaires

Statistiques des forums

Discussions
315 293
Messages
2 118 130
Membres
113 435
dernier inscrit
Max80