Comment exécuter des macros en auto

  • Initiateur de la discussion Tony 21
  • Date de début
T

Tony 21

Guest
Bonjour à tous

J'ai deux macros, une pour le tri alphabétique et l'autre qui sert à renseigner des cellules en fonction d'une donnée, qui ne fonctionnent que lorsque je clique sur le bouton exécuter.

Ma question est : comment les activées automatiquement, car elles sont dans une application.
Quel est la méthode à employer??????

Merci de vos lumières

@ +
Tony 21
 

deudecos

XLDnaute Impliqué
Salut Tony, le forum,

Pas sur d'avoir tout compris, mais je pense qu'au lieu de lier tes macros a des boutons, tu les lies directement a l'ouverture de la feuille ou du classeur.
Du genre Private Sub Worksheet_Activate() ou encore Private Sub Workbook_Activate()

Bonne soiree

Olivier
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Tony, bonjour le forum,

Tu peux utiliser les macros evénementielles dans le module de feuille (l'onglet où sont tes données). Maintenant il est difficile de te conseiller sans voir ton fichier.
L'événement Selection_Change agit chaque fois que tu déplaces la cellule active.
L'événement Change réagit à chaque modification dans l'onglet, comme la saisie dans une cellule par exemple.
L'événement Calculate agit quand une formule et recalculée.

Pour voir par toi même, ouvre Visual Basic Editor ([Alt]+[F11]). Clique sur l'onglet qui t'intéresse (Feuil1(Feuil1) par exemple. Dans le champs Objet (celui de gauche en haut (Général)), choisit l'objet Worksheet. Dans le deuxième champ des Procédures à coté, regarde la liste de tout ce que t'offre VBA.


Édition :

Bonjour Olivier, on s'est croisés.


Message édité par: Robert, à: 09/04/2006 18:43
 
T

Tony 21

Guest
Bonjour

Merci à Robert et deudecos pour les réponses.
Mais je ne suis pas très fort en VBA
:S

je joins une macro (mon fichier est trop importent pour le forum, et jai déjà tenter de le réduire, mais très compréhensible et difficil à expliquer)

Private Sub Worksheet_Change(ByVal Target As Range)
'Tri_Alphabétique Macro
' Macro enregistrée le 01/02/2006 par
'Tri croissant
Sheets('Liste').Select
Range('A3:X350').Select
Selection.Sort Key1:=Range('A3'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Si vous pouviez jeter un oeil (sans le perdre) ;)

@ +
Tony 21
 

deudecos

XLDnaute Impliqué
Re Tony, salut Robert, le forum,

Ca fait un quart d'heure que je tape sur mon clavier pour te repondre, et je viens de m'appercevoir que tu as deja fais tout comme il faut.
Cette macro se met en route a chaque fois que tu change quelque chose a ta feuille.
Si c'est ce que tu voulais, c'est tout bon.

Bonne soiree

Olivier
 
T

Tony 21

Guest
Re

Je n'était pas la de la journée et j'ai eu un mal de chien à récuperer mon message originel

En faite la macro ne se comporte pas comme je le voudrai :(

C'est à l'ouverture de la feuille 'Fiche_individuelle' qu'elle doit s'exécuter

'Fiche_individuelle' est un formulaire pour entré des données et 'Liste' est la base de données donc en principe pas visible.

Comme je lai déjà dit, pas facile à expliquer sans le fichier (=54 ko)

Merci quand même

@ +
Tony 21
 

deudecos

XLDnaute Impliqué
Re Tony, le forum,

Il te suffit d'affilier ta macro a la feuille concernee. Est ce que c'est 'Fiche individuelle' ou 'Liste' qui est concernee ?
Tu selectionne dabord la feuille concernee comme l'a si bien explique Robert et tu lui attribue ta macro telle quelle.
Private Sub Worksheet_Change(ByVal Target As Range)
'Tri_Alphabétique Macro
' Macro enregistrée le 01/02/2006 par
'Tri croissant
Sheets('Liste').Select
Range('A3350').Select
Selection.Sort Key1:=Range('A3'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Un doute me vient maintenant, ce que tu appelle fiche individuelle, ca ne serait pas un UserForm ?
Parce que si tel est le cas, il te suffit de double-cliquer sur l'userform concerne et tout comme pour la feuille, tu va dans le champs en haut a droite et tu selectionne 'Initialize' et la tu y colle ton code...

Bonne soiree

Olivier
 
T

Tony 21

Guest
Bonjour deudecos

En faite 'Fiche_individuelle' n'est pas un UserForm mais une feuille créer pour servir de formulaire, donc je ne peut touver 'Initialize'

Je vais tenter une copie de mon fichier pour qu'il soit à moins de 50 ko.

@ +
Tony 21
 
T

Tony 21

Guest
Bonsoir

Voila mon fichier.

@ +
Tony 21 [file name=Classeur3_20060411190149.zip size=51144]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur3_20060411190149.zip[/file]
 

Pièces jointes

  • Classeur3_20060411190149.zip
    49.9 KB · Affichages: 28

deudecos

XLDnaute Impliqué
Re Tony, le forum,

Desole, mais peu de temps en ce moment.
Regardes le fichier joint juste pour voir si ca peut aller.
Sinon, il va falloir que je decortique ton code parce qu'il y a incompatibilite entre ta macro et le reste du code. Mais ca va me demander un petit peu plus de temps et je n'en ai que peu...

Bonne soiree

Olivier [file name=Classeur_tonyv2.zip size=48975]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur_tonyv2.zip[/file]

Message édité par: deudecos, à: 12/04/2006 21:55
 

Pièces jointes

  • Classeur_tonyv2.zip
    47.8 KB · Affichages: 21
T

Tony 21

Guest
Re

Voila le problème
Pour la Mise en auto du tri alphabétique pas de problème sa marche :)

Pour ma deuxième question
Lorsque je rentre une catégorie (Liste déroulante) je souhaiterai que les colonnes T, U, V, W, X se renseigne automatiquement(Voir macro 'Cat_Arb').

Je te joins également la macro 'Acceuil' pour pouvoir démarrer l'application normalement

Sub Accueil()
'
' Accueil Macro
' Macro enregistrée le 08/11/2005 par RM
Sheets('Fiche_individuelle').Select
msg1 = 'Pour : Ajouter un arbitre, saisissez ces coordonnées et cliquez sur l'icône '' + '' pour l'enregistrer'
msg2 = 'Pour : Modifier un arbitre, sélectionnez-le dans la liste, saisissez les données et cliquez sur le bouton Enregistrer'
msg3 = 'Pour : Annuler un arbitre, sélectionnez-le dans la liste et cliquez sur l'icône '' - ''pour le supprimer'
Msg = msg1 & Chr(13) & Chr(10) & Chr(10) & msg2 & Chr(13) & Chr(10) & Chr(10) & msg3
MsgBox (Msg)
End Sub

Mais prend ton temps

Merci d'avance
@ +
Tony 21
 

deudecos

XLDnaute Impliqué
Salut Tony, le forum,

J'avoue ne pas trop savoir ce que tu veux exactement, alors j'ai essaye quelque chose, mais maintenant, a toi de me dire si ca correspond...

Bonne journee

Olivier [file name=Classeur_tonyv2_20060415072250.zip size=49630]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur_tonyv2_20060415072250.zip[/file]
 

Pièces jointes

  • Classeur_tonyv2_20060415072250.zip
    48.5 KB · Affichages: 32

Discussions similaires

Réponses
2
Affichages
1 K

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal