Executer macro en feuille2 pour feuille1

olibelle0101

XLDnaute Occasionnel
Bonsoir,

J'ai réussi à exécuter une macro dans ma feuille "Saisie" pour filtrer dans cette même feuille.
J'aimerai pouvoir exécuter cette macro située dans une autre feuille "Ecart" pour faire toujours le même travail dans ma feuille "Saisie".

Je joint un fichier...

J'ai donc 2 boutons qui marche, dans ma feuille "Saisie" (les déplacer dans la feuille "Ecart")

Bonne soirée à tous...
 

Pièces jointes

  • Filtrecoche.xlsm
    35.5 KB · Affichages: 37
Dernière édition:

Tirou

XLDnaute Occasionnel
Re : Executer macro en feuille2 pour feuille1

Bonjour Olibelle,

Le fait que les macro n'apparaissent pas dans ta liste, c'est parce que je les ai qualifié de privées (cf Private sub au lieu de Private)

Cela permet de limiter la liste utilisateurs aux macros qu'il est censé pouvoir déclencher de manière directe, ce que je ne considère pas être le cas pour des macros par boutons. Libre à toi de changer cela en supprimant le "Private"

Lorsque tu créé une checkbox, repères bien le numéro qui s'affiche de manière automatique : tu aura son nom "en dur" par la même synthaxe qu'utilisé pour l'instant.
 

olibelle0101

XLDnaute Occasionnel
Re : Executer macro en feuille2 pour feuille1

Merci Tirou de tes conseils...

Tout marche bien pour moi...
Seulement, si je veux utiliser plusieurs filtre sur une colonne...

J'ai ce code :
ThisWorkBook.sheets("Ecart").CheckBox1 = 0

Ou je l'insère ???

pour le moment j'ai ceci (je ne peux choisir qu'un choix par colonne) :

Private Sub Custom26() -------(j'en ai plusieurs comme ça)--------------
Application.ScreenUpdating = False
With ThisWorkbook
If .Sheets("Ecart").CheckBoxes("Check Box 41").Value > 0 Then 'selon la checkbox, active ou désactive le filtre dédié
.Sheets("Saisie").Range("A1").AutoFilter Field:=61, Criteria1:=Array("Marseille"), Operator:=xlFilterValues
Else
.Sheets("Saisie").[A1].AutoFilter Field:=61
End If
End With
Call MajTableau
End Sub
----------------------------------------------------------------------------------------------------

Private Sub Filtre()
Application.ScreenUpdating = False

Sheets("Saisie").[A1].AutoFilter 'réinitialise les filtres
With ThisWorkbook.Sheets("Ecart") 'réinitialise les checkbox
For Each box In .CheckBoxes
box.Value = 0
Next box
End With

Call MajTableau
End Sub
 

Tirou

XLDnaute Occasionnel
Re : Executer macro en feuille2 pour feuille1

Je vois que tu en es à 41 checkbox ... tu en veux combien ?

Pour activer plusieurs filtres sur une même colonne, je vois 2 possibilités :
1) si tu as peux de filtres "liés" sur une même colonne, tu peux jouer avec une succession de IF. Exemple :

Code:
if checkbox1=tada then
   if checkbox2 = bidule then
      'instruction si vrai et vrai
   else
      'instruction si vrai et faux
      end if
elseif checkbox3 = trucmuche then
   'instruction si check1 faux et check3 vrai
else
   'instruction si check 1 faux et check3 faux
   end if

Cela peu vite devenir fastidieux si tu comptes multiplier les filtres possibles sur une même colonne.

2) Jouer directement sur le critère de sélection de ton filtre, le fameux Array("Machin", "Truc", "Bidule"). Si tel est le cas, renvoies un peu ton fichier que je me fasse la main. Je ne connais pas les bonnes syntaxes par cœur, et il faudra remanier un peu l’architecture des macros déjà en place.
 

Discussions similaires

Réponses
10
Affichages
467

Statistiques des forums

Discussions
312 777
Messages
2 092 029
Membres
105 156
dernier inscrit
GermainPair