Bonjour,
J'ai une macro dans un module et j'aimerais pouvoir la lancer à partir de n'importe quel onglet mais qu'elle s'execute uniquement dans un onglet défini
quelqu'un a-t-il une idée ?
Bonjour,
J'ai une macro dans un module et j'aimerais pouvoir la lancer à partir de n'importe quel onglet mais qu'elle s'execute uniquement dans un onglet défini
quelqu'un a-t-il une idée ?
Bonjour,
Je ne suis pas sur de comprendre :
Tu veux déclencher une macro lorsque tu active un onglet ou bien que ta macro ne traite des données que dans un onglet ?mais qu'elle s'execute uniquement dans un onglet défini
Par rapport à ce qui est écrit je penche plutôt pour la deuxième solution.
Il te suffit donc de faire référence à ton onglet pour ne travailler que sur celui-ci
Ce qui serait bien c'est que tu donnes un bout de code pour que l'on puisse t'aider concrètement. En attendant un exemple qui je l'espère répondra a ta question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub Exemple Dim Maplage As Range Dim F1 As Worksheet Set F1 = Sheets("Feuil1") F1.Visible = True Set Maplage = F1.Range("A10:A35") ' Ici tu peux travailler sur test cellule par exemple en parcourant toute la 'plage : Dim Macellule As Range For Each Macellule In Maplage ... Next end sub
Salut nono1712 et le forum
Explications insuffisantes
Quelle macro ? Quel module ?
Pour aider on doit avoir un minimum de données!
A+
Pour être plus complet, j'ai une macro dans Module 1 qui devrait se lancer automatiquement grâce à un code contenu dans rhis Workbook,
j'aimerais ajouter une ligne à la macro contenue dans le module pour qu'elle réalise ce pourquoi elle est concue dans un onglet dénini (sheet21) mais pas dans un autre
je pense qu'il faudrait uniquement rajouter une ligne en faisant référence à la feuille souhaitée mais je ne sais pas le faire,
pour info voici le code actuel de la macro dans le module :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub report() Dim cell As Range ToDay = Date 'Défini la date du jour For Each cell In Range("a:a") 'ballaie la plge mentionnée If cell.Value = ToDay Then cell.EntireRow.Copy cell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End If Next End Sub
Dans ce cas l'exemple que je t'ai fourni devrait te convenir en remplacantdans un onglet dénini (sheet21)
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set F1 = Sheets("Feuil1")
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set F1 = Sheets("sheet21")
Salut nono1712 et le forumIl existe plusieurs solutions :Pour être plus complet, j'ai une macro dans Module 1 qui devrait se lancer automatiquement grâce à un code contenu dansTrhisWorkbook
- Soit dans la macro automatique de ThisWorkBook (??? laquelle ?) tu introduis un test qui ne lance la macro que si la feuille concernée est la bonne
- Soit tu fais le test dans ta macroA+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub report() Dim cell As Range if ucase(activesheet.name)<>ucase("sheet21") ToDay = Date 'Défini la date du jour For Each cell In Range("a:a") 'ballaie la plge mentionnée If cell.Value = ToDay Then cell.EntireRow.Copy cell.PasteSpecial Paste:=xlPasteValues End If Next Application.CutCopyMode = False End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager