1 pièce(s) jointe(s)
macro vba avec liste de choix
Bonsoir,
j'ai fait un fichier de suivi pour mon travail qui comprend entre autre :
- une feuille 1 qui contiendra le détail du travail de la journée
- une feuille 2 qui contient les taches type à effectuer
la feuille 2 est composée d'un filtre qui me sert à sélectionner le type de tache à faire
je sélectionne manuellement les lignes puis les insert dans la feuille 1 avant la ligne qui contient le texte "ajouter avant"
j'ai déjà un début de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Sub Macro6()
'
' Macro6 Macro
'
'
Sheets("Feuil2").Select
ActiveSheet.Range("$A$1:$A$8").AutoFilter Field:=1, Criteria1:="liasse ECN"
Range("A2:BZ" & Range("A65536").End(xlUp).Row).Copy
Sheets("Feuil1").Select
Cells.Find(What:="ajouter avant").Activate
Rows(ActiveCell.Row).Select
Selection.Insert Shift:=xlDown
'Range("R1:BZ60000").ClearContents
End Sub |
je joints le fichier test
ce que j'aimerais, c'est lancer soit une input box pour rentrer le ou les critères de choix moi-même ; soit déclencher la liste déroulante pour sélection moi-même le filtre à appliquer
car pour le moment, je suis obligé de créer autant de macro que j'ai de tache
merci d'avance pour votre aide (pour info je suis débutant en vba, j'ai créé ce morceaux de codes en cumulant ifférente action par enregistrement de macro)
macro vba avec liste de choix
Bonjour,
merci pour ta réponse rapide et très bien commenté
j'ai pu adapter mon code avec les informations qu'il me manquait
maintenant je dois adapter dans le vrai fichier et je te tiens au courant si ça fonctionne bien comme je le souhaite
j'aurais surement de nouvelles demandes car j'utilise aussi de la mise en forme conditionnel et j'aurai peut-être besoin de pouvoir sélectionner plusieurs critère dans le filtre
mais ton code me fait déjà beaucoup avancer merci beaucoup
macro vba avec liste de choix
Rebonjour,
dans ton code la liste de choix est sur la même page
dans mon fichier final la liste de choix est sur une autre feuille qui est différente des deux autres donc feuill3
il faudrait donc adapter la formule Fam = f1.Cells(f1.[A5], "S") en indiquant que la colonne S est feuill 3
j'ai ajouté dans le code la définition de la variable f3 pour feuill3
Code:
1 2 3 4 5 6 7
| Dim Fam As String
Dim f1 As Worksheet, f2 As Worksheet, f3 As Worksheet
Dim DerLig As Long, NewLig As Long, NbCol As Long
Set f1 = Sheets("FEUILL1")
Set f2 = Sheets("FEUILL2")
Set f3 = Sheets("FEUILL3")
Fam = f1.Cells(f1.[A5], "S") |
comment je peux modifier la dernière ligne pour lui dire que la colonne S et dans f3?
j'ai essayé bêtement "f3.S" ma ça aurait été trop simple :P ; j'ai essayé de chercher de mon côté mais je n'ai pas trouvé
merci d'avance encore pour ton aide
macro vba avec liste de choix
ok j'ai bien compris la fonction maintenant
pour que ça fonctionne il faut que la liste commence à la 1ère ligne de la colonne sinon quand on exécute la macro, si on choisi dans la liste il traite avec un décalage, exemple :
si dans ma liste j'ai test, test1, test2 par exemple et que ma liste commence en s2 dans mon cas, si je choisi test1, la macro va filtrer avec test 2 (décalage d'une ligne)
est-il possible dans la formule, de supprimer ce décalage? (au pire j'ai modifié mon fichier pour commencer en ligne 1)
autre question après je penses que ça ira pour la fonction souhaité : quand j’exécute la macro, il ne conserve pas la mise en forme de la feuill2 vers la feuill1 ; est-il possible de conserver cette mise en forme? (comme quand on fait un copier d'une cellule avec un clique droit dans une autre où on copie la mise en forme?
après ces 2 points je pourrais mettre en résolu (sauf si pour le dernier point je dois créer un autre topic?)