Lancement automatique d'une macro
seblg29
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaiterais que ma macro se lance automatiquement lorsque toutes les cellules sont remplies par l'utilisateur.
J'ai écris le code suivant après avoir trouvé quelques tuto....
Cependant, celle ci ne se lance pas automatiquement...
Voyez vous ou est le problème sur ce script ?
Vous en remerciant par avance,
Sebastien
Je souhaiterais que ma macro se lance automatiquement lorsque toutes les cellules sont remplies par l'utilisateur.
J'ai écris le code suivant après avoir trouvé quelques tuto....
Private Sub Worksheet_Calculate() Dim Fin As Boolean Fin = True For Each cel In Range("K13:K29") If cel.Value = "" Then Fin = False Next If Fin Then Call Macro1 ' sous-entendu if fin = true End Sub Sub Macro1() ' Mon code ... End sub
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICIMerci d'y penser dans tes prochains messages.Jordane45 |
Cependant, celle ci ne se lance pas automatiquement...
Voyez vous ou est le problème sur ce script ?
Vous en remerciant par avance,
Sebastien
A voir également:
- Lancement automatique d'une macro
- Réponse automatique thunderbird - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Réponse automatique gmail - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir,
moi je commencerais par ajouter
ensuite je mettrais un point d'arrêt sur
moi je commencerais par ajouter
option expliciten début de module, et donc declarer toutes mes variables.
ensuite je mettrais un point d'arrêt sur
Fin = True, puis j'exécuterais le code en pas à pas, pour comprendre ce qui se passe.
Bonjour,
Code à coller dans l'objet "Feuil" correspondant à ton besoin
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Code à coller dans l'objet "Feuil" correspondant à ton besoin
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim nbCel As Integer Dim nbCnonVide As Integer Dim plg As Range Set plg = ActiveSheet.Range("K13:K29") nbCel = plg.Count nbCnonVide = Application.WorksheetFunction.CountA(plg) If nbCel = nbCnonVide Then Call Macro1 End Sub
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Bonjour,
J'ai collé le code dans feuil1, cependant la macro 1 ne s'exécute pas lorsque toutes mes cellules sont remplies.
Y a t'il une action à réaliser pour que celle ci se lance ?
Cordialement,
Sébastien
J'ai collé le code dans feuil1, cependant la macro 1 ne s'exécute pas lorsque toutes mes cellules sont remplies.
Y a t'il une action à réaliser pour que celle ci se lance ?
Cordialement,
Sébastien
As tu essayé de mettre un point d'arrêt dans la macro et de la faire dérouler en mode pas à pas pour voir ce qui se passait ?
Est tu sûr que le code de ta macro1 fait quelquechose ?
Comment les données sont elle remplis ? Manuellement ? Via une autre macro ? Via des formules ????
Sinon...dépose ton fichier sur un site comme cijoint qu'on le regarde ....
Si tu as collé le code que je t'ai donné comme il faut ... ça devrait parfaitement fonctionner.
Au passage.. tu es sur quelle version d'excel (office) ?
Est tu sûr que le code de ta macro1 fait quelquechose ?
Comment les données sont elle remplis ? Manuellement ? Via une autre macro ? Via des formules ????
Sinon...dépose ton fichier sur un site comme cijoint qu'on le regarde ....
Si tu as collé le code que je t'ai donné comme il faut ... ça devrait parfaitement fonctionner.
Au passage.. tu es sur quelle version d'excel (office) ?
TU ne m'as pas répondu concernant les points d'arrêt .
Tu ne nous as toujours pas montré ton fichier non plus. Tu peux le mettre sur le site cijoint https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
Tu ne nous as toujours pas montré ton fichier non plus. Tu peux le mettre sur le site cijoint https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
Bonjour à tous,
tes saisies se font en B19:B20, B21:B22, etc, ce sont donc ces cellules qu'il faut superviser.
Sélectionne tes 16 cellules, nomme la plage saisie_obligatoire et :
tu auras juste à modifier cette plage nommée si ton besoin évolue.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
tes saisies se font en B19:B20, B21:B22, etc, ce sont donc ces cellules qu'il faut superviser.
Sélectionne tes 16 cellules, nomme la plage saisie_obligatoire et :
Private Sub Worksheet_Change(ByVal Target As Range) If Application.CountA([saisie_obligatoire]) = [saisie_obligatoire].Cells.Count Then MsgBox "toutes les saisies sont faites" End If End Sub
tu auras juste à modifier cette plage nommée si ton besoin évolue.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci