Affecter automatiquement une maccro
Résolu
LeoTaba
-
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
bonjour,
j'ai une maccro qui permet créer une nouvelle feuille automatiquement lorsque je complete la cellule B1 :
------------------------------------------------------------------------------------
Sub Nouveau_Mois()
Application.ScreenUpdating = False
'confirmer sélection feuille / copier
Sheets("Base de données").Select
Cells.Select
Selection.Copy
'créer une nouvelle feuille / coller le type mois base
Sheets.Add after:=ActiveSheet
Cells.Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
'nommer la feuille
ActiveSheet.Name = Range("B1").Value
'ajouter dans le sommaire
Range("B1").Copy Destination:=Sheets("Sommaire").Range("B1").End(xlDown).Offset(1, 0)
'effacer le'entrée dans mois base de données
Sheets("Base de données").Activate
'retour au sommaire
Sheets("Sommaire").Select
Application.ScreenUpdating = True
End Sub
--------------------------------------
J'aurais aimé que quand cette maccro est executée, et donc qu'une nouvelle feuille est crée, elle soit codée par ca automatiquement (de la meme maniere que si j'avais fait onglet > visualiser le code > coller) :
-------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target _
As Range, Cancel As Boolean)
If Not Intersect(Target, Range("a1")) Is Nothing Then
Call Reset_C
End If
If Not Intersect(Target, Range("b1")) Is Nothing Then
Call Reset_AF
End If
End Sub
----------------------------------
Merci à vous d'avance, LeoTaba.
j'ai une maccro qui permet créer une nouvelle feuille automatiquement lorsque je complete la cellule B1 :
------------------------------------------------------------------------------------
Sub Nouveau_Mois()
Application.ScreenUpdating = False
'confirmer sélection feuille / copier
Sheets("Base de données").Select
Cells.Select
Selection.Copy
'créer une nouvelle feuille / coller le type mois base
Sheets.Add after:=ActiveSheet
Cells.Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
'nommer la feuille
ActiveSheet.Name = Range("B1").Value
'ajouter dans le sommaire
Range("B1").Copy Destination:=Sheets("Sommaire").Range("B1").End(xlDown).Offset(1, 0)
'effacer le'entrée dans mois base de données
Sheets("Base de données").Activate
'retour au sommaire
Sheets("Sommaire").Select
Application.ScreenUpdating = True
End Sub
--------------------------------------
J'aurais aimé que quand cette maccro est executée, et donc qu'une nouvelle feuille est crée, elle soit codée par ca automatiquement (de la meme maniere que si j'avais fait onglet > visualiser le code > coller) :
-------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target _
As Range, Cancel As Boolean)
If Not Intersect(Target, Range("a1")) Is Nothing Then
Call Reset_C
End If
If Not Intersect(Target, Range("b1")) Is Nothing Then
Call Reset_AF
End If
End Sub
----------------------------------
Merci à vous d'avance, LeoTaba.
A voir également:
- Affecter automatiquement une maccro
- Automatiquement - Guide
- Logiciel pour trier les photos automatiquement - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Renommer automatiquement des fichiers - Guide
- Formule permettant de remplir automatiquement un tableau excel ✓ - Forum Excel
24 réponses
Tu peux dire merci à eriiic que je salue. Avec son code et ton code, on arrive a ce que tu voulais!
http://www.cjoint.com/c/GBxqPMioZiQ
http://www.cjoint.com/c/GBxqPMioZiQ
Ok bah merci les amis c'est good, enfin, c'est un bon compromis qui permet de garder en sureté le code de la BDD MAIS qui permet quand meme aux prochaines pages crées par le module d'être concernées par la maccro du double-clique. Dommage si mes collègues décident de créer des pages autres qu'avec le module, je les laisse se demerder pour ajouter ces feuilles dans This Workbook.
Merci cs_Le Pivert et eriiic, bonne continuation à vous !
Merci cs_Le Pivert et eriiic, bonne continuation à vous !
C'est pas chinois quand même ce que je dis rassurez moi x) ?
Si
Mais le code d'eriiic fait exactement la même chose que si tu avais le code dans le module de la feuille. Je ne vois pas ce que cela te donne en plus de l'avoir dans la feuille!
Ou alors il y a un truc que tu nous a pas dit: par exemple un exercice a faire!
Si
Mais le code d'eriiic fait exactement la même chose que si tu avais le code dans le module de la feuille. Je ne vois pas ce que cela te donne en plus de l'avoir dans la feuille!
Ou alors il y a un truc que tu nous a pas dit: par exemple un exercice a faire!
Non mais c'est bon le pivert je m'en contenterai ^^
Si tu pouvais mettre résolu STP, je ne vois pas le bouton o_O
PS: avoir le code seulement dans les feuilles crées évite de lancer la maccro en cas de missclic si on est sur une feuille non concernée
Si tu pouvais mettre résolu STP, je ne vois pas le bouton o_O
PS: avoir le code seulement dans les feuilles crées évite de lancer la maccro en cas de missclic si on est sur une feuille non concernée
Avec ce code, cela fonctionne sur la 1ère feuille créée ensuite pour les suivantes cela crée les feuilles, mais ajoute le code sur la 1ère feuille créée. Je ne comprends pas!
Fais des essais là-dessus, tu trouveras peut-être la solution. Je continue les recherches. Surveille ton post. Si tu t'inscrivais en tant que membre tu serais averti en cas de réponse.
https://forums.commentcamarche.net/forum/affich-34360824-affecter-automatiquement-une-maccro#21
en même temps que j'écrivais j'ai trouvé le problème. L'écriture du code se faisait sur la dernière feuille alors qu'elle se trouvait en 3ème position. voilà donc le code:
Il faudra faire un code pour éviter de choisir la même date
@+ Le Pivert
Fais des essais là-dessus, tu trouveras peut-être la solution. Je continue les recherches. Surveille ton post. Si tu t'inscrivais en tant que membre tu serais averti en cas de réponse.
https://forums.commentcamarche.net/forum/affich-34360824-affecter-automatiquement-une-maccro#21
en même temps que j'écrivais j'ai trouvé le problème. L'écriture du code se faisait sur la dernière feuille alors qu'elle se trouvait en 3ème position. voilà donc le code:
Option Explicit Sub Nouveau_Mois() Dim Code$, NextLine& Application.ScreenUpdating = False 'confirmer sélection feuille / copier Sheets("Base de données").Select Cells.Select Selection.Copy 'créer une nouvelle feuille / coller le type mois base Sheets.Add After:=ActiveSheet On Error Resume Next ' Comment ajouter le code. Code = "Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" & vbCrLf Code = Code & "If Not Intersect(Target, Range(""a1"")) Is Nothing Then" & vbCrLf Code = Code & "Call Reset_C" & vbCrLf Code = Code & "End If" & vbCrLf Code = Code & "If Not Intersect(Target, Range(""b1"")) Is Nothing Then" & vbCrLf Code = Code & "Call Reset_AF" & vbCrLf Code = Code & "End If" & vbCrLf Code = Code & "End Sub" ' Ecriture du code dans le module de la feuille (fs) With ActiveWorkbook.VBProject.VBComponents(Sheets(3).CodeName).CodeModule 'c'était ici que se trouvait le problème NextLine = .CountOfLines + 1 .InsertLines NextLine, Code End With Cells.Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False 'nommer la feuille ActiveSheet.Name = Range("B1").Value 'ajouter dans le sommaire Range("B1").Copy Destination:=Sheets("Sommaire").Range("B1").End(xlDown).Offset(1, 0) 'effacer le'entrée dans mois base Sheets("Base de données").Activate Range("B1").ClearContents Range("C5:an5").ClearContents Range("C7:an7").ClearContents Range("C9:an9").ClearContents Range("C11:an11").ClearContents Range("C13:an13").ClearContents Range("C15:an15").ClearContents Range("C17:an17").ClearContents Range("C19:an19").ClearContents Range("C21:an21").ClearContents Range("C23:an23").ClearContents Range("C25:an25").ClearContents Range("C27:an27").ClearContents Range("C29:an29").ClearContents Range("C31:an31").ClearContents Range("C33:an33").ClearContents Range("C35:an35").ClearContents Range("C37:an37").ClearContents Range("C39:an39").ClearContents Range("C41:an41").ClearContents Range("C43:an43").ClearContents Range("C45:an45").ClearContents Range("C47:an47").ClearContents Range("C49:an49").ClearContents Range("C51:An51").ClearContents Range("C53:An53").ClearContents Range("C55:An55").ClearContents Range("C57:An57").ClearContents Range("C59:An59").ClearContents Range("C61:An61").ClearContents Range("C63:An63").ClearContents Range("C65:An65").ClearContents Range("C67:An67").ClearContents Range("C69:an69").ClearContents Range("C71:an71").ClearContents Range("C73:an73").ClearContents Range("C75:an75").ClearContents Range("C77:An77").ClearContents Range("C79:An79").ClearContents Range("C81:An81").ClearContents Range("C83:An85").ClearContents Range("C87:An87").ClearContents Range("C89:An90").ClearContents Range("C92:An92").ClearContents Range("C94:An94").ClearContents Range("C96:AN96").ClearContents Range("C98:An98").ClearContents Range("C100:An101").ClearContents Range("C103:an104").ClearContents Range("C106:an108").ClearContents Range("C110:An147").ClearContents Range("C149:An151").ClearContents Range("C153:An156").ClearContents Range("C158:An173").ClearContents Range("C180:AN184").ClearContents 'retour au sommaire Sheets("Sommaire").Select Application.ScreenUpdating = True End Sub
Il faudra faire un code pour éviter de choisir la même date
@+ Le Pivert