Variable dans une Macro

Broch002

XLDnaute Occasionnel
Bonjour,

je n'ai aucune connaissance en VBA et je construis des macro via l'enregistreur ExceL

J'ai un fichier qui gère des références (2000) par des macros.j''ai donc créé une macro de filtre pour traiter chaque référence, que j'ai dupliqué autant de foi qu'il y a de référence.
Existe-il un moyen de modifier ces macros automatiquement pour tout changement de référence. une liste de référence se trouvant dans une autre feuille servant de base de données, exemple.

Sub Macro_ref1 ()
Sheets("Feuil1").Select
ActiveSheet.Range("$A$1:$M$50000").AutoFilter Field:=6, Criteria1:=Array( _
"Ref1"), Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$M$50000").AutoFilter Field:=8
Puis suite de la macro

Sub Macro_ref2 ()
Sheets("Feuil1").Select
ActiveSheet.Range("$A$1:$M$50000").AutoFilter Field:=6, Criteria1:=Array( _
"Ref2"), Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$M$50000").AutoFilter Field:=8
puis suite de la macro

La "Réf1" ce trouvant dans la cellule "A1" de la "feuil2", la "Ref2" dans la "A2" etc.

Lorsque je changerai les références dans la feuil2, toutes les macros se mettraient à jour.

un rêve utopique, ou cela est-il réalisable?

Merci de votre collaboration, les références sont changeantes en permanence, vous comprenez mon problème
:confused:
 
G

Guest

Guest
Re : Variable dans une Macro

Bonjour,

Avec un fichier exemple c'eût été mieux et plus facile pour les tests.

quelque chose comme ça:
Code:
Sub filtrer(strValeur As String)
Sheets("Feuil1").Range("$A$1:$M$50000").AutoFilter Field:=6, Criteria1:=Array(strValeur), Operator:=xlFilterValues
 
'.....suite de la macro
End Sub

A appeler comme ceci:

filtrer "REF1"
filtrer "REF2"

Les références pouvant être récupérer par une boucle ou autre.

Voir un tutoriel sur la façon de passer des paramètres à une sub.

A+
 

Broch002

XLDnaute Occasionnel
Re : Variable dans une Macro

Bonjour,

Avec un fichier exemple c'eût été mieux et plus facile pour les tests.

quelque chose comme ça:
Code:
Sub filtrer(strValeur As String)
Sheets("Feuil1").Range("$A$1:$M$50000").AutoFilter Field:=6, Criteria1:=Array(strValeur), Operator:=xlFilterValues
 
'.....suite de la macro
End Sub

A appeler comme ceci:

filtrer "REF1"
filtrer "REF2"

Les références pouvant être récupérer par une boucle ou autre.

Voir un tutoriel sur la façon de passer des paramètres à une sub.

A+

Bonjour,

Je ne peux pas joindre le fichier il est énorme.

Par contre je n'ai pas compris les boucles ou autre. Avez vous un lien ou cela s'explique.
Egalement comment appeler les références dans mes macros?

Je dois vous paraître ignare, mais je le suis.

Merci de votre aide.:eek:
 

Staple1600

XLDnaute Barbatruc
Re : Variable dans une Macro

Bonsoir à tous, Hasco ;)

Ce ne sont pas les bases, Monsieur Hasco !
La Base c'est elle -> f1-key.png

Comment avez-vous pu l'oublier !!!
Vous, qui comme moi l'avez tant caressée (enfin pas en même temps et pas sur le même clavier)



PS: Hasco connait mon thon, ne vous inquiéter pas pour lui ;)

EDITION: Que viens-je de lire! RhhhhhooooooooHascoooooo ;)
Je savais bien que toi aussi tu aimes la caresser ;)
 
Dernière édition:
G

Guest

Guest
Re : Variable dans une Macro

Re,

Eh oui mon brave compagnon excelien, le F1:D. Tu sais bien que mon neurone s'y est usé au point de l'oublier.

J'ai failli le suggérer mais le papier (euh le travail) mâché est tellement plus digeste semble-t-il ; même s'il n'a pas les qualités gustatives, explosives et nourrissante que notre vieil F1 .

Alors bénis soient F1, et l'ami Staple:D

P.S. l'esprit un tantinet ironique et plein de gentillesse de Staple, contre-balance à mes mauvaises humeurs. Un grand plus pour notre site préféré.

A+ à tous
 

Staple1600

XLDnaute Barbatruc
Re : Variable dans une Macro

Re , Hasco ;) (On vit une époque formidable avec cette nouvelle génération, hein ?)

Je ne peux pas joindre le fichier il est énorme.
1) Il ne devrait pas.

2) On ne joint jamais de fichier ORIGINAL sur le forum. C'est interdit par l'intersyndicale des F.S.VBulletin

3) On crée un fichier exemple (tout fluet) avec le minimum , juste le minimum (merci Jacques H.)
Et c'est ce fichier exemple (qui résume le problème) que l'on joint sur le forum.
 

Broch002

XLDnaute Occasionnel
Re : Variable dans une Macro

Re , Hasco ;) (On vit une époque formidable avec cette nouvelle génération, hein ?)


1) Il ne devrait pas.

2) On ne joint jamais de fichier ORIGINAL sur le forum. C'est interdit par l'intersyndicale des F.S.VBulletin

3) On crée un fichier exemple (tout fluet) avec le minimum , juste le minimum (merci Jacques H.)
Et c'est ce fichier exemple (qui résume le problème) que l'on joint sur le forum.

Bonjour,

Voici le fichier (tout fluet) détaillant ce que je cherche. J'ai suivi le lien de Hasco, c'est certaine compréhensible mais je ne rattache pas ces codes à mon cas.

Fichier Test:
La feuil1, les stats,
la feuil2 le tableau de compilation,
la feuille BD, les données.

Dans l'exemple joint, j'ai mis des couleurs , mais j'ai 2000 références qui évoluent très souvent.

Ce que j'aimerai pouvoir faire, pour me simplifier la tache, c'est de modifier en feuil BD:
BLEU en VERT et que la Macro1 prenne en compte cette modification.
ROUGE en JAUNE et que la macro2 idem
Etc...

Est-ce seulement possible :confused:

Merci d'avance et bonnes fêtes de Noël a tous.
 

Pièces jointes

  • Test.xlsm
    19.2 KB · Affichages: 53
  • Test.xlsm
    19.2 KB · Affichages: 56
  • Test.xlsm
    19.2 KB · Affichages: 52
Dernière édition:

Broch002

XLDnaute Occasionnel
Re : Variable dans une Macro

Bonsoir à tous


En serait-ce une?
Regarde la pièce jointe 206913

Bonjour,

Non je ne crois pas, ce qu'il faut dans ce fichier c'est que la modification d'une référence dans la feuil BD, bleu en vert par exemple change automatiquement dans la macro1, exemple pour le trie:

Sub MACRO1() (original)

Sheets("Feuil1").Range("$A$5:$H$50000").AutoFilter Field:=1, Criteria1:= _
"BLEU", Operator:=xlAnd
Sheets("Feuil2").Range("A2").FormulaR1C1 = "BLEU"
End Sub

Sub MACRO1() (Devienne)

Sheets("Feuil1").Range("$A$5:$H$50000").AutoFilter Field:=1, Criteria1:= _
"VERT", Operator:=xlAnd
Sheets("Feuil2").Range("A2").FormulaR1C1 = "VERT"
End Sub

merci et bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 471
Membres
103 553
dernier inscrit
jhnm