Activer une sub sur toutes les feuilles
Marillies
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Après avoir lu maints et maints topics sur la répétition d'une macro sur toutes les feuilles, je sèche. Ma macro marche bien sur une feuille, mais elle ne veut pas se repeter sur les autres...
C'est du code VBA pour excel.
En gras ce que j'ai rajouté pour la faire boucler sur toutes les feuilles :
Sub Auto_Open()
Dim sh As Worksheet
With ActiveWorkbook
For Each sh In Worksheets
With sh
Dim TODAY As Integer
TODAY = NoSemaineISO(Now)
For Each d In Range("A4:HP5")
If d.Value = TODAY Then
Application.Goto d.Offset(0, 0)
Application.Goto d.Offset(0, 45)
Application.Goto ActiveCell.Offset(2, -45)
End If
Next
End With
Next sh
End With
End Sub
Merci de votre aide
Après avoir lu maints et maints topics sur la répétition d'une macro sur toutes les feuilles, je sèche. Ma macro marche bien sur une feuille, mais elle ne veut pas se repeter sur les autres...
C'est du code VBA pour excel.
En gras ce que j'ai rajouté pour la faire boucler sur toutes les feuilles :
Sub Auto_Open()
Dim sh As Worksheet
With ActiveWorkbook
For Each sh In Worksheets
With sh
Dim TODAY As Integer
TODAY = NoSemaineISO(Now)
For Each d In Range("A4:HP5")
If d.Value = TODAY Then
Application.Goto d.Offset(0, 0)
Application.Goto d.Offset(0, 45)
Application.Goto ActiveCell.Offset(2, -45)
End If
Next
End With
Next sh
End With
End Sub
Merci de votre aide
A voir également:
- Activer une sub sur toutes les feuilles
- Activer chromecast - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Activer office gratuitement - Accueil - Bureautique
- Comment activer notification visite profil facebook - Guide
- Cle pour activer windows 10 gratuitement - Guide
6 réponses
Dans un module, j'ai créé un Public Sub.
Dans chaque feuille, j'ai créé un évènement OnChange et dans le OnChange, j'ai fait un
J'ai essayé en faisant cet appel sur chaque feuille, m'évitant de retaper toute la macro à chaque fois et ça fonctionne.
Dans chaque feuille, j'ai créé un évènement OnChange et dans le OnChange, j'ai fait un
Call FonctionContenueDansModule(Argument)
J'ai essayé en faisant cet appel sur chaque feuille, m'évitant de retaper toute la macro à chaque fois et ça fonctionne.
Bonjour,
1- je ne comprends pas l'utilité de cette procédure...
Application.Goto d.Offset(0, 45) ?????
Mais bon cela ne me regarde pas.
2- Lorsque tu utilises des "With Sheets(1) ... End With", pour agir sur la feuille 1, il faut ajouter un point . devant les objets que tu souhaites manipuler.
Exemple :
Cordialement,
Franck P
1- je ne comprends pas l'utilité de cette procédure...
Application.Goto d.Offset(0, 45) ?????
Mais bon cela ne me regarde pas.
2- Lorsque tu utilises des "With Sheets(1) ... End With", pour agir sur la feuille 1, il faut ajouter un point . devant les objets que tu souhaites manipuler.
Exemple :
Sheets(1).Select 'tu sélectionnes la feuille 1 (select à éviter, c'est juste pour l'exemple)
With Sheets(2)
Range("A10").Value = 100 ' sans le point devant Range, va agir sur la Feuille 1 (feuille sélectionnée préalablement)
.Range("A10").Value = "ABCD" 'va agir sur la feuille 2 (feuille concernée par le with)
End With
Cordialement,
Franck P
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Heremion : Je ne comprend pas. Il faut que je l'écrive dans chaque feuille ?
Pijaku : 1- C'est une bidouille de mon prédécesseur que je n'ai pas l'autorisation de modifier. Cela centre sur le numéro de la semaine en cours.
2- Est ce que tu peux me montrer dans ma macro ou est ce que je dois modifier directement, parce que j'ai essayé de mettre des sh. mais ça bug.
-> Autre question : il faut que je mette le nom de la feuille à chaque fois, ou sh remplace ce nom la ?
-> Je ne suis pas informaticienne de base ^^
Pijaku : 1- C'est une bidouille de mon prédécesseur que je n'ai pas l'autorisation de modifier. Cela centre sur le numéro de la semaine en cours.
2- Est ce que tu peux me montrer dans ma macro ou est ce que je dois modifier directement, parce que j'ai essayé de mettre des sh. mais ça bug.
-> Autre question : il faut que je mette le nom de la feuille à chaque fois, ou sh remplace ce nom la ?
-> Je ne suis pas informaticienne de base ^^
Ta macro modifiée, comme ça devrait fonctionner ... ou pas (non testé) :
Sub Auto_Open()
Dim sh As Worksheet
Dim TODAY As Integer
Dim d As Range
For Each sh In ThisWorkbook.Worksheets
With sh
TODAY = NoSemaineISO(Now)
For Each d In .Range("A4:HP5") 'j'ai ajouté un point devant Range
If d.Value = TODAY Then
Application.Goto d.Offset(0, 0)
Application.Goto d.Offset(0, 45)
Application.Goto ActiveCell.Offset(2, -45)
End If
Next d
End With
Next sh
End Sub
Alors essaye ceci :
Sub Auto_Open()
Dim sh As Worksheet
Dim TODAY As Integer
Dim Cel As Range
For Each sh In ThisWorkbook.Worksheets
With sh
TODAY = NoSemaineISO(Now)
For Each Cel In .Range("A4:HP5") 'j'ai ajouté un point devant Range
If Cel.Value = TODAY Then
Application.Goto Cel.Offset(0, 0)
Application.Goto Cel.Offset(0, 45)
Application.Goto ActiveCell.Offset(2, -45)
End If
Next Cel
End With
Next sh
End Sub
Sub Auto_Open()
Dim sh As Worksheet
Dim TODAY As Integer
Dim Cel As Range
For Each sh In ThisWorkbook.Worksheets
With sh
TODAY = NoSemaineISO(Now)
For Each Cel In .Range("A4:HP5") 'j'ai ajouté un point devant Range
If Cel.Value = TODAY Then
Application.Goto Cel.Offset(0, 0)
Application.Goto Cel.Offset(0, 45)
Application.Goto ActiveCell.Offset(2, -45)
End If
Next Cel
End With
Next sh
End Sub