Transfert de données colonnes
Bonjour,
Voici ce que j'essaie de faire (je vais essayer d'être la plus claire possible).
Contexte :
Sur les feuilles 1, 2 & 3, j'ai un tableau composé de plusieurs colonnes dont une étant la colonne "Tasks" et l'autre "Pilot)". Dans "pilot" est inscrit la personnes se chargeant de la tâche indiquée en colonne "tasks".
Souhait :
Je voudrais, sur une feuille différente, récupérer toutes les tâches (et infos correspondantes, dans les autres colonnes) qui incombent à Eléonore (moi).
y a-t-il une formule pour ça ?
Ci-joint, un fichier exemple (la feuille 3 étant celle où je voudrais compiler les informations des précédentes feuilles).
Merci de votre aide !
Eléonore
Bonjour,
Un essai par macro avec bouton sur ta feuille 3.
Cordialement,
Merci de cette information, cependant je ne sais pas créer de macro... Pourriez-vous m'expliquer ?
Eléonore
Alors voici la marche à suivre :
Tout d'abord, vérifies que tu possède bien un onglet "Developpeur" en haut dans Excel (après les onglets Révision et Affichage en général), si ce n'est pas le cas, voici la démarche à suivre pour l'afficher sous Excel 2007 :
https://www.excel-pratique.com/fr/vba/introduction
Une fois que tu as l'onglet Développeur, tu vas dedans, tu dois avoir une icône "Insérer" tu click dessus, et tu choisis Bouton (dans les contrôles de formulaires).
Ton curseur de souris devrais changer et te permettre de dessiner le bouton sur ta feuille. Fais le de la taille que tu veux, et lorsque tu vas relacher ta souris, une fenêtre "Affecter une macro" va s'ouvrir.
Dans Nom de la macro : tu mets ce que tu veux
Macro dans : tu choisis "Ce classeur"
Et ensuite tu click sur le bouton "Nouvelle".
Cela va t'ouvrir l'environnement VBA ou se situe les macros (que tu peux afficher directement par ALT + F11 quand tu es sous Excel sinon) avec une fenêtre ou sera écris
Sub NomMacroChoisi()
End SubEntre ces deux lignes, tu colles le code de macro suivant :
Dim i As Integer, j As Integer, Derligne As Integer 'on déclare les variables de la macro
Application.ScreenUpdating = False 'on désactive la mise à jour de l'écran pour éviter tous les changements d'écrans à cause
'des copier/coller
For i = 1 To 2 'De la feuille 1 à 2
For j = 2 To 16 'De la ligne 2 à 16
If Worksheets(i).Range("C" & j) = "Eléonore" Then 'Si la valeur de la colonne C de la ligne en cours = Eléonore
Derligne = Worksheets("Feuil3").Range("A65365").End(xlUp).Row + 1 'On trouve la première ligne vide dans la feuille 3
Worksheets(i).Range("B" & j & ":G" & j).Copy 'On copie la ligne en cours du tableau
Worksheets("Feuil3").Range("A" & Derligne).Activate 'On se place sur la ligne vide de la feuille 3 que l'on a trouvé au-dessus
ActiveSheet.Paste 'On colle la ligne du tableau de tasks
Application.CutCopyMode = False 'On désactive le mode copier/coller
End If
Next j 'on passe à la ligne suivante
Next i 'on passe à la feuille suivante
Worksheets("Feuil3").Activate 'lorsque c'est fini on se replace sur la feuille3
Application.ScreenUpdating = True 'on réactive la mise à jour de l'écranEnsuite tu peux fermer le tout et revenir sur ta feuille Excel, tu fais un click droit sur ton bouton => modifier le texte et tu écris ce que tu veux qu'il soit inscris dessus.
Et voilà.
Enfin la c'est l'explication minimum en partant du principe que la mise en page de ton fichier réel est exactement la même que ton fichier exemple, sinon il y a bien entendu des adaptations à faire, si c'est le cas, n'hésites pas à la dire.
Sinon je ne peux que te conseiller si tu as le temps, de jeter un oeil aux cours VBA situer sur le site, qui te feront une bonne introduction sur le sujet des macros.
Si tout cela te parait un peu compliqué, c'est normal si tu n'as jamais touché à celles-ci, mais pour du basique cela viens assez vite, sinon si vraiment cela te donne des boutons, peut-être que quelqu'un aura une solution par formule à te proposer
Cordialement,
Bonjour,
Je reviens à la charge ahah ! Bon, après une bonne nuit de sommeil, je me suis attaquée à cette fameuse macro. Et, bien que je ne comprenne pas tout, je vois en gros où on veut en venir ! Merci d'ailleurs pour tes explications en face de chaque ligne, ça m'aide énormément à comprendre ce que je fais.
Evidemment, si ça avait marché du premier coup, ç'aurait été trop beau...
En PJ, le message d'erreur.
Merci beaucoup !
Eléonore
Bonjour,
Alors c'est tout simple :
C'est vrai que j'ai dit que tu pouvais choisir le nom que tu voulais pour la macro SAUF qu'en fait il y a quelques exceptions ^^
Voici ce qui ne marche pas ou qui est déconseillé :
Pas d'espaces dans les noms de macros
Pas deux macros ne peuvent porter le même nom
Un module ou une macro ne peut pas porter le même nom qu'une instruction VBA telle que ActiveCell, Range, Sub...
Il est aussi très nettement déconseillé de donner des noms de macros ou de modules tels que Sheet, Sheet1, Workbook, Excel, VBA, Classeur, ou tout nom qui pourraitprêter à confusion.
Je vous déconseille également les accents et tout caractère spécial tel que *, ç, %, ?, etc.
Même le trait de soulignement est interdit au début d'une macro ou d'un module.
Une macro ou un module ne peut pas commencer par un chiffre, mais peut se terminer par un chiffre Dans ton cas, renomme ta macro en EDTASKS par exemple et cela devrait enlever ce message d'erreur.
Cordialement,
Ça y est ! Tout fonctionne !
Merci encore !
Eléonore
De rien,
Bonne fin de journée et bon week-end.