En effet, j'ai écrit une macro et elle fonctionne, mais seulement sur un onglet.
La voici :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Union([B17:B41], [C17:C41])) Is Nothing Then
If IsEmpty(Target) Then
Target = "X"
Cancel = True
Else
If Target = "X" Then
Target = ""
Cancel = True
End If
End If
End If
End Sub
Or, je voudrais qu'elle s'exécute pour l'ensemble des onglets (200) du classeur.
J'ai fait des recherches et ça donne ça :
Sub Dosomething()
Dim Ws As Worksheet
Application.ScreenUpdating = False
For Each Ws In Worksheets
Ws.Select
Call Runcode
Next
Application.ScreenUpdating = True
End Sub
Sub Runcode()
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Union([B17:B41], [C17:C41])) Is Nothing Then
If IsEmpty(Target) Then
Target = "X"
Cancel = True
Else
If Target = "X" Then
Target = ""
Cancel = True
Next Ws
End Sub
Mais ça ne fonctionne pas (message d'erreur : Erreur de compilation: End Sub attendu).
NOTA : j'ai inséré un module et y ai inscrit ce code.
J'espère avoir clairement formulé mon problème.
Tout comme j'espère que quelqu'un pourra m'aider.
D’avance merci.
Jef
A voir également:
Exécuter une macro pour toutes les feuilles d'un classeur
Option Explicit
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Union([B17:B41], [C17:C41])) Is Nothing Then
If IsEmpty(Target) Then
Target = "X"
Cancel = True
Else
If Target = "X" Then
Target = ""
Cancel = True
End If
End If
End If
End Sub
Mais lorsque je double clique sur une case concernée, le "X" n'apparaît pas.
J'en suis désolé, car étant novice, je ne perçois forcément pas tout ce qu'il faut faire.