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

Activer une macro à l'introduction de données dans une 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 !

luke3300

XLDnaute Impliqué
Bonjour à tous,

je reviens de nouveau vers vous car j'aimerais obtenir une macro qui s'activera lorsque j'entrerai une date dans une cellule.
Dans le fichier exemple que je vous mets, c'est expliqué ...
Mais si en entrant une date dans la cellule D9 par exemple, j'aimerais qu’automatiquement, une copie de l'onglet "à duppliquer" soit créée à la suite de celui-ci et renommée en la valeur qui est à la même ligne en colonne C.

Merci d'avance pour votre aide précieuse et bon dimanche 🙂
 

Pièces jointes

Re : Activer une macro à l'introduction de données dans une cellule

Bonjour à tous,

Dans le module de la feuille concernée :

Code:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("D8:D10"), Target) Is Nothing Then
Feuil2.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Target.Offset(, -1)
End If
End Sub

A+ à tous
 
Re : Activer une macro à l'introduction de données dans une cellule

Hello JCGL et camarchepas,

Merci pour votre aide et votre rapidité 🙂

Ton code fonctionne nickel JCGL. Par contre le tiens camarchepas active le débogueur lorsque j'entre une date en D10 ...

Pour l'optimisation du fichier, serait-il possible que les onglets ajoutés se classent dans l'ordre chronologique des dates entrées?

Bon dimanche surtout.
 
Re : Activer une macro à l'introduction de données dans une cellule

Bonjour à tous,

La feuille copiée se place en dernier donc, il me semble, que l'ordre chronologique est respecté...

Si tu souhaites que la feuille copiée soit après la feuille "A Dupliquer" :

Code:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("D8:D20"), Target) Is Nothing  Then
'Feuil2.Copy After:=Sheets(Sheets.Count)
On Error Resume Next
Feuil2.Copy After:=Sheets(2)
ActiveSheet.Name = Target.Offset(, -1)
End If
End Sub

A+ à tous
 
Re : Activer une macro à l'introduction de données dans une cellule

Re,

Par ordre chronologique, j'entendais par ordre croissant des dates introduites en colonne D ... désolé JCGL, je me suis mal exprimé :-(
 
Re : Activer une macro à l'introduction de données dans une cellule

Est-il possible aussi d'allonger ou de diminuer le nombre de cellules de référence? Par exemple si je décide de faire de la D2 à la D100? Toujours en tenant compte bien sur du nom entré en colonne C de la même ligne. Et (je suis certainement sciant, désolé) si pour la beauté du fichier, je décidais de masquer l'onglet de base "à dupliquer" ... serait-ce encore possible?
Merci d'avance et bon appétit 🙂
 
Re : Activer une macro à l'introduction de données dans une cellule

Bonjour à tous,

Que faut-il faire si la feuille existe déjà ?

Pas de problème pour masquer la feuille "A Dupliquer"
Code:
Feuil2.Visible = xlSheetVisible
Feuil2.Copy After:=Sheets(2)
ActiveSheet.Name = Target.Offset(, -1)
Feuil2.Visible = xlSheetHidden
Pas de problème pour augmenter la plage
Code:
If Not Intersect(Range("D8:D100"), Target) Is Nothing And IsDate(Target) Then


A+ à tous
 
Re : Activer une macro à l'introduction de données dans une cellule

Merci JCGL, cela fonctionne nickel! 😀

Et pour le classement des feuilles ajoutées par ordre croissant de la date introduite?

Thank you
 
Re : Activer une macro à l'introduction de données dans une cellule

Merci mapomme, avec le mix de ton code et de celui de JCGL, ça devrait fonctionner nickel! 🙂
Où dois-je mettre dans le tiens la partie code qui gardera masqué en permanence l'onglet "à dupliquer"?
Que puis-je faire également pour qu'après avoir créé un nouveau classeur, on revienne automatiquement sur "Feuil1"

Merci d'avance.
 
Re : Activer une macro à l'introduction de données dans une cellule

Bonsoir à luke3300,
à JCGL 🙂, camarchepas 🙂,

Une v2 qui tient compte des remarques du post précédents et du code du post #8 de JCCL 😱.
Quelques commentaires ont été ajoutés.
 

Pièces jointes

Re : Activer une macro à l'introduction de données dans une cellule

Bonsoir à vous tous 😀

Merci beaucoup à tous trois, ça marche nickel ;-)

Ceci dit, je risque fortement de revenir vers vous prochainement car j'ai toujours tendance à perfectionner mes fichiers pour plus de facilité.
Très bonne soirée à tous et encore merci mapomme, JCGL et camarchepas. C'est vraiment gentil de votre part.
 
Re : Activer une macro à l'introduction de données dans une cellule

Bonjour le forum, JCGL, camarchepas et mapomme, 🙂

Voilà, je n'aurais pas tardé ... serait-il possible de faire en sorte que la date correspondante à l'onglet créé s'affiche en cellule A1 de ce nouveau classeur? En plus du commentaire déjà bien utile. Cette date va me servir de référence pour le contenu du classeur créé.
Merci d'avance et bon début de semaine à tous.
 
Re : Activer une macro à l'introduction de données dans une cellule

Bonjour ,
juste aprés le bout de code ajouter :

Code:
      ' ajout du commentaire
      ActiveSheet.Range("A1").AddComment s
      ActiveSheet.Range("A1").Comment.Visible = True

'Ici ajouter :
      ActiveSheet.Range("A1")=Format(Target, "dd/mm/yyyy")
 
- 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…