Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

lancer une macro sur modif de cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Bonjour à tous,
Je butte encore sur VBA.
Je souhaite que dans mon fichier joint, ma macri1 se lance automatiquement à chaque fois que l'une des cellules : C10:C30 est modifiée.
Evidemment, je ne sais comment faire.
Pourriez-vous m'aider ?
Je vous remercie par avance,
Amicalement,
Lionel,
 

Pièces jointes

Re : lancer une macro sur modif de cellule

Bonjour à tous

ce code fonctionne chez moi...
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Not Intersect(Target, Range("C10:C500")) Is Nothing Then
    Application.EnableEvents = False
    Macro1
    Application.EnableEvents = True
End If
End Sub

"macro1" n'est pas lancée en cas de suppression / insertion de ligne ....

bonne journée
@+
 
Re : lancer une macro sur modif de cellule

Bonsoir,
Vraiment curieux. J'ai vérifié et j'avais déjà recopié la même.
Je l'ai encore recopié à partir de la votre et...... toujours le même résultat.
Ce n'est pas très gênant mais pour la "beaut" du geste" cela aurait été mieux.
Un grand merci à vous tous,
Amicalement,
Lionel,
 
Re : lancer une macro sur modif de cellule

Bonsoir JM,
Oui, la macro est bien dans la feuille > Visualiser le code > et la macro.
Mon fichier est un peut gros ( 300 ko ), je vous l'envoie.
Amicalement,
Lionel,
 

Pièces jointes

Re : lancer une macro sur modif de cellule

Bonjour.
Tout marche alors maintenant chez vous aussi je suppose.
Votre macro Présence pourrait s'écrire un peu plus court et plus rapide :
VB:
Sub Présence()
With Feuil1.Range("D10:AH500")
   .FormulaR1C1 = "=IF(OR(RC1="""",R7C=""sam"",R7C=""dim"",RC3>R8C),"""",""x"")"
   .Value = .Value
   End With
End Sub
Cordialement.
 
Re : lancer une macro sur modif de cellule

Bonsoir,
Malheureusement, chez moi, la macro se lance quand j'insère une ligne car ensuite je fais les actions suivantes :

- copier/coller de la ligne qui suit,
- effacer le contenu des colonnes A B et C ligne 10

je pense que c'est à cause de la cellule C10 qui se trouve ainsi modifée et qui fait partie de ma sélection dans cette macro (Target, Range("C10:C500"))

Est-il possible d'empêcher cela UNIQUEMENT à l'insertion d'une ligne ?

Merci d'avance de votre aide,
Amicalement,
Lionel,
 
Dernière édition:
Re : lancer une macro sur modif de cellule

Bonsoir.
Si vous faites souvent cette dernière manœuvre, vous pourriez écrire une macro qui la fait.
Pour que cela ne déclenche aucune exécution de procédure évènement, il suffirait de mettre Application.EnableEvents à False avant,
puis à True après.
Cordialement.
 
Re : lancer une macro sur modif de cellule

Bonjour à tous,
le code qui m'a été donné fonctionne très bien..... trop même, je le rappelle ci-dessous !
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Not Intersect(Target, Range("C10:C500")) Is Nothing Then
Application.EnableEvents = False
Présence
Application.EnableEvents = True
End If
End Sub

L'inconvénient, c'est qu'il s'active toujours à chaque ajout ou suppression de lignes ou à chaque exécution des autres macros lancées.

Il y a une solution pour empêcher cela ?

Merci de votre aide,
Amicalement,
Lionel,
 
Re : lancer une macro sur modif de cellule

Bonjour à tous

L'inconvénient, c'est qu'il s'active toujours à chaque ajout ou suppression de lignes ou à chaque exécution des autres macros lancées.

Il y a une solution pour empêcher cela ?

C'est normal, puisqu'il s'agit d'une procédure sur un évènement (ici Worksheet_Change). Sinon, tu peux l'actionner sur un bouton en le lançant dans une macro d'un module classique.
 
Re : lancer une macro sur modif de cellule

Je ne sais pas moi. À chaque fois qu'une modification de cellule est effectuée depuis une macro il est possible d'empêcher l'exécution de la Worksheet_Change qui s'en suivrait en mettant Application.EnableEvents = False devant.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…