Instructions identiques macro
Minimix
-
Zoul67 Messages postés 1959 Date d'inscription Statut Membre Dernière intervention -
Zoul67 Messages postés 1959 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une macro qui me permet de faire des filtres élaborés sur 4 onglets.
Je souhaiterais savoi s'il est possible "raccourcir" la macro.
Les instructions sont 4 fois les mêmes ;
Et ainsi de suite pour les 3 autres onglets.
De plus j'ai rajouter une somme :
La encore 4 fois la même instruction...
Y a t i' un moyen plus adapté ?
Je bidouille depuis peu...
Merci d'avance
J'ai une macro qui me permet de faire des filtres élaborés sur 4 onglets.
Je souhaiterais savoi s'il est possible "raccourcir" la macro.
Les instructions sont 4 fois les mêmes ;
Sheets(1er filter). Sélect Range(A6). Sélect Sheets(BDD).columns(a:i).advancedfilter action:=xlfiltrecopy,_criteriarange=range(a1:c3), copytorange:=range(1er filtre!extraction)_, unique:=false
Et ainsi de suite pour les 3 autres onglets.
De plus j'ai rajouter une somme :
Dim derlig As Long Sheets(1er filtre).select derlig = Range("D65536").End(xlUp).Row Cells(derlig + 1, 4) = Application.Sum(Range("D2:D" & derlig)) End Sub
La encore 4 fois la même instruction...
Y a t i' un moyen plus adapté ?
Je bidouille depuis peu...
Merci d'avance
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Instructions identiques macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
2 réponses
Bonjour,
Envoyé sans copier-coller depuis un iPhone... quel courage !
Il y a peut-être moyen d'utiliser une boucle For sur les rangs des onglets :
Envoyé sans copier-coller depuis un iPhone... quel courage !
Il y a peut-être moyen d'utiliser une boucle For sur les rangs des onglets :
For i = 1 To 4 Sheets(i).Select ... Next i
Bonjour,
Pour parcourir toutes les feuilles voir ceci:
https://silkyroad.developpez.com/vba/boucles/#LII
tu remplaces 1er filter par Ws
@+ Le Pivert
Pour parcourir toutes les feuilles voir ceci:
https://silkyroad.developpez.com/vba/boucles/#LII
Dim Ws As Worksheet 'Boucle sur les feuilles du classeur. For Each Ws In ThisWorkbook.Worksheets ' ' 'mettre le code ici ' Next Ws
tu remplaces 1er filter par Ws
@+ Le Pivert
Je vois quand même une chose dans cette ligne:
il faut mettre le nom de la feuille entre guillemets comme ceci:
et je me pose des questions sur cela aussi!
Et pour finir en haut du module ( là où ce trouve ton code) mets ceci:
@+
Sheets(1er filter). Sélect
il faut mettre le nom de la feuille entre guillemets comme ceci:
Sheets("1er filter"). Sélect
et je me pose des questions sur cela aussi!
range(1er filtre!extraction)
Et pour finir en haut du module ( là où ce trouve ton code) mets ceci:
Option Explicit, cela t'obligera à déclarer toutes tes variables
@+
J'essaye mais étant depuis peu sur vba c'est compliqué !
Il faut mettre (si j'ai compris) ;
for i = 1 to 4
Sheets (i).select
Range(A6). Sélect
Sheets(BDD).columns(a:i).advancedfilter action:=xlfiltrecopy,_criteriarange=range(a1:c3), copytorange:=range(1er filtre!extraction)_, unique:=false
Next i
Dim derlig as long
For i = 1 to 4
Sheets(i).select
derlig = Range("D65536").End(xlUp).Row
Cells(derlig + 1, 4) = Application.Sum(Range("D2:D" & derlig))
Next i
End Sub
ou quelque chose d'approchant