Dans le ThisWorkbook de ton classeur :
Écrit de cette façon, cela suppose que toutes les feuilles
sont similaires... sinon tu peux utiliser l'objet Sh pour
restreindre les feuilles où cela ne s'applique pas.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
"GGAL" a écrit dans le message de news:
Bonjour,
J'ai la macro suivante qui permet d'ouvrir rapidement des listes déroulantes
:
Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12 mois
de l'année)
Est-il possible de n'avoir qu'une seule procédure s'appliquant à l'ensemble
des feuilles.
Merci beaucoup.
Ggal
Dans le ThisWorkbook de ton classeur :
Écrit de cette façon, cela suppose que toutes les feuilles
sont similaires... sinon tu peux utiliser l'objet Sh pour
restreindre les feuilles où cela ne s'applique pas.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
91B811B0-7FB0-46A4-8CB5-3B133D64E671@microsoft.com...
Bonjour,
J'ai la macro suivante qui permet d'ouvrir rapidement des listes déroulantes
:
Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12 mois
de l'année)
Est-il possible de n'avoir qu'une seule procédure s'appliquant à l'ensemble
des feuilles.
Merci beaucoup.
Ggal
Dans le ThisWorkbook de ton classeur :
Écrit de cette façon, cela suppose que toutes les feuilles
sont similaires... sinon tu peux utiliser l'objet Sh pour
restreindre les feuilles où cela ne s'applique pas.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
"GGAL" a écrit dans le message de news:
Bonjour,
J'ai la macro suivante qui permet d'ouvrir rapidement des listes déroulantes
:
Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12 mois
de l'année)
Est-il possible de n'avoir qu'une seule procédure s'appliquant à l'ensemble
des feuilles.
Merci beaucoup.
Ggal
Dans le ThisWorkbook de ton classeur :
Écrit de cette façon, cela suppose que toutes les feuilles
sont similaires... sinon tu peux utiliser l'objet Sh pour
restreindre les feuilles où cela ne s'applique pas.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
"GGAL" a écrit dans le message de news:
Bonjour,
J'ai la macro suivante qui permet d'ouvrir rapidement des listes
déroulantes
:
Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
mois
de l'année)
Est-il possible de n'avoir qu'une seule procédure s'appliquant à
l'ensemble
des feuilles.
Merci beaucoup.
Ggal
Dans le ThisWorkbook de ton classeur :
Écrit de cette façon, cela suppose que toutes les feuilles
sont similaires... sinon tu peux utiliser l'objet Sh pour
restreindre les feuilles où cela ne s'applique pas.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
91B811B0-7FB0-46A4-8CB5-3B133D64E671@microsoft.com...
Bonjour,
J'ai la macro suivante qui permet d'ouvrir rapidement des listes
déroulantes
:
Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
mois
de l'année)
Est-il possible de n'avoir qu'une seule procédure s'appliquant à
l'ensemble
des feuilles.
Merci beaucoup.
Ggal
Dans le ThisWorkbook de ton classeur :
Écrit de cette façon, cela suppose que toutes les feuilles
sont similaires... sinon tu peux utiliser l'objet Sh pour
restreindre les feuilles où cela ne s'applique pas.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
"GGAL" a écrit dans le message de news:
Bonjour,
J'ai la macro suivante qui permet d'ouvrir rapidement des listes
déroulantes
:
Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then Application.SendKeys
("%DOWN}")
Next i
End Sub
J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
mois
de l'année)
Est-il possible de n'avoir qu'une seule procédure s'appliquant à
l'ensemble
des feuilles.
Merci beaucoup.
Ggal
Tu débutes ta procédure par un test :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
Select Case Sh.Name
Case Is = "Feuil1"
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then
Application.SendKeys ("%DOWN}")
End If
Next i
End Select
End Sub
Et si tu veux inclure seulement certaines feuilles, tu n'as qu'à modifier
la ligne suivante : pour inclure Feuil4 et aussi Feuil10
Case Is = "Feuil1", "Feuil4", "Feuil10"
"GGAL" a écrit dans le message de news:
Merci
C'est ce que je cherchais.
Mais dans le cas où la procédure ne s'appliquerait pour la feuille (1) par
exemple, ça donnerait quoi ?
Ggal
"michdenis" a écrit :
> Dans le ThisWorkbook de ton classeur :
>
> Écrit de cette façon, cela suppose que toutes les feuilles
> sont similaires... sinon tu peux utiliser l'objet Sh pour
> restreindre les feuilles où cela ne s'applique pas.
>
> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
> As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
>
>
>
> "GGAL" a écrit dans le message de news:
>
> Bonjour,
>
>
> J'ai la macro suivante qui permet d'ouvrir rapidement des listes
> déroulantes
> :
>
> Sub Worksheet_SelectionChange(ByVal Target As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
> J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
> mois
> de l'année)
>
> Est-il possible de n'avoir qu'une seule procédure s'appliquant à
> l'ensemble
> des feuilles.
>
> Merci beaucoup.
>
>
> Ggal
>
>
Tu débutes ta procédure par un test :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
Select Case Sh.Name
Case Is = "Feuil1"
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then
Application.SendKeys ("%DOWN}")
End If
Next i
End Select
End Sub
Et si tu veux inclure seulement certaines feuilles, tu n'as qu'à modifier
la ligne suivante : pour inclure Feuil4 et aussi Feuil10
Case Is = "Feuil1", "Feuil4", "Feuil10"
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
883091AB-D12D-4BAF-9336-28D850431C41@microsoft.com...
Merci
C'est ce que je cherchais.
Mais dans le cas où la procédure ne s'appliquerait pour la feuille (1) par
exemple, ça donnerait quoi ?
Ggal
"michdenis" a écrit :
> Dans le ThisWorkbook de ton classeur :
>
> Écrit de cette façon, cela suppose que toutes les feuilles
> sont similaires... sinon tu peux utiliser l'objet Sh pour
> restreindre les feuilles où cela ne s'applique pas.
>
> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
> As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
>
>
>
> "GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
> 91B811B0-7FB0-46A4-8CB5-3B133D64E671@microsoft.com...
> Bonjour,
>
>
> J'ai la macro suivante qui permet d'ouvrir rapidement des listes
> déroulantes
> :
>
> Sub Worksheet_SelectionChange(ByVal Target As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
> J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
> mois
> de l'année)
>
> Est-il possible de n'avoir qu'une seule procédure s'appliquant à
> l'ensemble
> des feuilles.
>
> Merci beaucoup.
>
>
> Ggal
>
>
Tu débutes ta procédure par un test :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
Select Case Sh.Name
Case Is = "Feuil1"
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then
Application.SendKeys ("%DOWN}")
End If
Next i
End Select
End Sub
Et si tu veux inclure seulement certaines feuilles, tu n'as qu'à modifier
la ligne suivante : pour inclure Feuil4 et aussi Feuil10
Case Is = "Feuil1", "Feuil4", "Feuil10"
"GGAL" a écrit dans le message de news:
Merci
C'est ce que je cherchais.
Mais dans le cas où la procédure ne s'appliquerait pour la feuille (1) par
exemple, ça donnerait quoi ?
Ggal
"michdenis" a écrit :
> Dans le ThisWorkbook de ton classeur :
>
> Écrit de cette façon, cela suppose que toutes les feuilles
> sont similaires... sinon tu peux utiliser l'objet Sh pour
> restreindre les feuilles où cela ne s'applique pas.
>
> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
> As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
>
>
>
> "GGAL" a écrit dans le message de news:
>
> Bonjour,
>
>
> J'ai la macro suivante qui permet d'ouvrir rapidement des listes
> déroulantes
> :
>
> Sub Worksheet_SelectionChange(ByVal Target As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
> J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
> mois
> de l'année)
>
> Est-il possible de n'avoir qu'une seule procédure s'appliquant à
> l'ensemble
> des feuilles.
>
> Merci beaucoup.
>
>
> Ggal
>
>
Tu débutes ta procédure par un test :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
Select Case Sh.Name
Case Is = "Feuil1"
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then
Application.SendKeys ("%DOWN}")
End If
Next i
End Select
End Sub
Et si tu veux inclure seulement certaines feuilles, tu n'as qu'à modifier
la ligne suivante : pour inclure Feuil4 et aussi Feuil10
Case Is = "Feuil1", "Feuil4", "Feuil10"
"GGAL" a écrit dans le message de news:
Merci
C'est ce que je cherchais.
Mais dans le cas où la procédure ne s'appliquerait pour la feuille (1) par
exemple, ça donnerait quoi ?
Ggal
"michdenis" a écrit :
> Dans le ThisWorkbook de ton classeur :
>
> Écrit de cette façon, cela suppose que toutes les feuilles
> sont similaires... sinon tu peux utiliser l'objet Sh pour
> restreindre les feuilles où cela ne s'applique pas.
>
> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
> Target
> As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
>
>
>
> "GGAL" a écrit dans le message de news:
>
> Bonjour,
>
>
> J'ai la macro suivante qui permet d'ouvrir rapidement des listes
> déroulantes
> :
>
> Sub Worksheet_SelectionChange(ByVal Target As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
> J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
> mois
> de l'année)
>
> Est-il possible de n'avoir qu'une seule procédure s'appliquant à
> l'ensemble
> des feuilles.
>
> Merci beaucoup.
>
>
> Ggal
>
>
Tu débutes ta procédure par un test :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
Select Case Sh.Name
Case Is = "Feuil1"
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then
Application.SendKeys ("%DOWN}")
End If
Next i
End Select
End Sub
Et si tu veux inclure seulement certaines feuilles, tu n'as qu'à modifier
la ligne suivante : pour inclure Feuil4 et aussi Feuil10
Case Is = "Feuil1", "Feuil4", "Feuil10"
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
883091AB-D12D-4BAF-9336-28D850431C41@microsoft.com...
Merci
C'est ce que je cherchais.
Mais dans le cas où la procédure ne s'appliquerait pour la feuille (1) par
exemple, ça donnerait quoi ?
Ggal
"michdenis" a écrit :
> Dans le ThisWorkbook de ton classeur :
>
> Écrit de cette façon, cela suppose que toutes les feuilles
> sont similaires... sinon tu peux utiliser l'objet Sh pour
> restreindre les feuilles où cela ne s'applique pas.
>
> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
> Target
> As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
>
>
>
> "GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
> 91B811B0-7FB0-46A4-8CB5-3B133D64E671@microsoft.com...
> Bonjour,
>
>
> J'ai la macro suivante qui permet d'ouvrir rapidement des listes
> déroulantes
> :
>
> Sub Worksheet_SelectionChange(ByVal Target As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
> J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
> mois
> de l'année)
>
> Est-il possible de n'avoir qu'une seule procédure s'appliquant à
> l'ensemble
> des feuilles.
>
> Merci beaucoup.
>
>
> Ggal
>
>
Tu débutes ta procédure par un test :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
Select Case Sh.Name
Case Is = "Feuil1"
For i = 6 To 36
If Target.Address = Range("F" & i).Address Then
Application.SendKeys ("%DOWN}")
End If
Next i
End Select
End Sub
Et si tu veux inclure seulement certaines feuilles, tu n'as qu'à modifier
la ligne suivante : pour inclure Feuil4 et aussi Feuil10
Case Is = "Feuil1", "Feuil4", "Feuil10"
"GGAL" a écrit dans le message de news:
Merci
C'est ce que je cherchais.
Mais dans le cas où la procédure ne s'appliquerait pour la feuille (1) par
exemple, ça donnerait quoi ?
Ggal
"michdenis" a écrit :
> Dans le ThisWorkbook de ton classeur :
>
> Écrit de cette façon, cela suppose que toutes les feuilles
> sont similaires... sinon tu peux utiliser l'objet Sh pour
> restreindre les feuilles où cela ne s'applique pas.
>
> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
> Target
> As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
>
>
>
> "GGAL" a écrit dans le message de news:
>
> Bonjour,
>
>
> J'ai la macro suivante qui permet d'ouvrir rapidement des listes
> déroulantes
> :
>
> Sub Worksheet_SelectionChange(ByVal Target As Range)
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then Application.SendKeys
> ("%DOWN}")
> Next i
> End Sub
>
> J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
> mois
> de l'année)
>
> Est-il possible de n'avoir qu'une seule procédure s'appliquant à
> l'ensemble
> des feuilles.
>
> Merci beaucoup.
>
>
> Ggal
>
>
| des numéros des feuilles : Sheets(1), Sheets(4)
Idéalement, tu devrais utiliser la propriété "CodeName"
En fait, elle te retourne le nom de l'objet "Feuill" tel que
défini dans l'environnement VBA
Dans la fenêtre de l'éditeur de code, dans la section
Projet VBA, les noms des feuilles apparaissent comme suit :
Feuil1(Feuil1)
Le premier Feuil1 représente la propriété CodeName et si
tu regarde dans les propriétés de cette dernière, Tu auras "Feuil"
pour la propriété "Name"
(Feuil1) représente le nom de l'onglet de la feuille.
En utilisant CodeName, ton code demeure toujours bon même si
l'usager s'amuse à modifier le nom des onglets des feuilles.
Pour ta question : Sheets(1) représente l'objet "Feuille" et non pas
le nom de la feuille.... mais tu peux utiliser Sheets(1).Name
"michdenis" a écrit :
> Tu débutes ta procédure par un test :
>
> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
> As Range)
> Select Case Sh.Name
> Case Is = "Feuil1"
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then
> Application.SendKeys ("%DOWN}")
> End If
> Next i
> End Select
> End Sub
>
> Et si tu veux inclure seulement certaines feuilles, tu n'as qu'à modifier
> la ligne suivante : pour inclure Feuil4 et aussi Feuil10
> Case Is = "Feuil1", "Feuil4", "Feuil10"
>
>
>
>
>
>
>
> "GGAL" a écrit dans le message de news:
>
> Merci
>
> C'est ce que je cherchais.
> Mais dans le cas où la procédure ne s'appliquerait pour la feuille (1) par
> exemple, ça donnerait quoi ?
>
> Ggal
>
>
> "michdenis" a écrit :
>
> > Dans le ThisWorkbook de ton classeur :
> >
> > Écrit de cette façon, cela suppose que toutes les feuilles
> > sont similaires... sinon tu peux utiliser l'objet Sh pour
> > restreindre les feuilles où cela ne s'applique pas.
> >
> > Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
> > Target
> > As Range)
> > For i = 6 To 36
> > If Target.Address = Range("F" & i).Address Then Application.SendKeys
> > ("%DOWN}")
> > Next i
> > End Sub
> >
> >
> >
> >
> > "GGAL" a écrit dans le message de news:
> >
> > Bonjour,
> >
> >
> > J'ai la macro suivante qui permet d'ouvrir rapidement des listes
> > déroulantes
> > :
> >
> > Sub Worksheet_SelectionChange(ByVal Target As Range)
> > For i = 6 To 36
> > If Target.Address = Range("F" & i).Address Then Application.SendKeys
> > ("%DOWN}")
> > Next i
> > End Sub
> >
> > J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
> > mois
> > de l'année)
> >
> > Est-il possible de n'avoir qu'une seule procédure s'appliquant à
> > l'ensemble
> > des feuilles.
> >
> > Merci beaucoup.
> >
> >
> > Ggal
> >
> >
>
>
| des numéros des feuilles : Sheets(1), Sheets(4)
Idéalement, tu devrais utiliser la propriété "CodeName"
En fait, elle te retourne le nom de l'objet "Feuill" tel que
défini dans l'environnement VBA
Dans la fenêtre de l'éditeur de code, dans la section
Projet VBA, les noms des feuilles apparaissent comme suit :
Feuil1(Feuil1)
Le premier Feuil1 représente la propriété CodeName et si
tu regarde dans les propriétés de cette dernière, Tu auras "Feuil"
pour la propriété "Name"
(Feuil1) représente le nom de l'onglet de la feuille.
En utilisant CodeName, ton code demeure toujours bon même si
l'usager s'amuse à modifier le nom des onglets des feuilles.
Pour ta question : Sheets(1) représente l'objet "Feuille" et non pas
le nom de la feuille.... mais tu peux utiliser Sheets(1).Name
"michdenis" a écrit :
> Tu débutes ta procédure par un test :
>
> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
> As Range)
> Select Case Sh.Name
> Case Is = "Feuil1"
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then
> Application.SendKeys ("%DOWN}")
> End If
> Next i
> End Select
> End Sub
>
> Et si tu veux inclure seulement certaines feuilles, tu n'as qu'à modifier
> la ligne suivante : pour inclure Feuil4 et aussi Feuil10
> Case Is = "Feuil1", "Feuil4", "Feuil10"
>
>
>
>
>
>
>
> "GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
> 883091AB-D12D-4BAF-9336-28D850431C41@microsoft.com...
> Merci
>
> C'est ce que je cherchais.
> Mais dans le cas où la procédure ne s'appliquerait pour la feuille (1) par
> exemple, ça donnerait quoi ?
>
> Ggal
>
>
> "michdenis" a écrit :
>
> > Dans le ThisWorkbook de ton classeur :
> >
> > Écrit de cette façon, cela suppose que toutes les feuilles
> > sont similaires... sinon tu peux utiliser l'objet Sh pour
> > restreindre les feuilles où cela ne s'applique pas.
> >
> > Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
> > Target
> > As Range)
> > For i = 6 To 36
> > If Target.Address = Range("F" & i).Address Then Application.SendKeys
> > ("%DOWN}")
> > Next i
> > End Sub
> >
> >
> >
> >
> > "GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de news:
> > 91B811B0-7FB0-46A4-8CB5-3B133D64E671@microsoft.com...
> > Bonjour,
> >
> >
> > J'ai la macro suivante qui permet d'ouvrir rapidement des listes
> > déroulantes
> > :
> >
> > Sub Worksheet_SelectionChange(ByVal Target As Range)
> > For i = 6 To 36
> > If Target.Address = Range("F" & i).Address Then Application.SendKeys
> > ("%DOWN}")
> > Next i
> > End Sub
> >
> > J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
> > mois
> > de l'année)
> >
> > Est-il possible de n'avoir qu'une seule procédure s'appliquant à
> > l'ensemble
> > des feuilles.
> >
> > Merci beaucoup.
> >
> >
> > Ggal
> >
> >
>
>
| des numéros des feuilles : Sheets(1), Sheets(4)
Idéalement, tu devrais utiliser la propriété "CodeName"
En fait, elle te retourne le nom de l'objet "Feuill" tel que
défini dans l'environnement VBA
Dans la fenêtre de l'éditeur de code, dans la section
Projet VBA, les noms des feuilles apparaissent comme suit :
Feuil1(Feuil1)
Le premier Feuil1 représente la propriété CodeName et si
tu regarde dans les propriétés de cette dernière, Tu auras "Feuil"
pour la propriété "Name"
(Feuil1) représente le nom de l'onglet de la feuille.
En utilisant CodeName, ton code demeure toujours bon même si
l'usager s'amuse à modifier le nom des onglets des feuilles.
Pour ta question : Sheets(1) représente l'objet "Feuille" et non pas
le nom de la feuille.... mais tu peux utiliser Sheets(1).Name
"michdenis" a écrit :
> Tu débutes ta procédure par un test :
>
> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
> As Range)
> Select Case Sh.Name
> Case Is = "Feuil1"
> For i = 6 To 36
> If Target.Address = Range("F" & i).Address Then
> Application.SendKeys ("%DOWN}")
> End If
> Next i
> End Select
> End Sub
>
> Et si tu veux inclure seulement certaines feuilles, tu n'as qu'à modifier
> la ligne suivante : pour inclure Feuil4 et aussi Feuil10
> Case Is = "Feuil1", "Feuil4", "Feuil10"
>
>
>
>
>
>
>
> "GGAL" a écrit dans le message de news:
>
> Merci
>
> C'est ce que je cherchais.
> Mais dans le cas où la procédure ne s'appliquerait pour la feuille (1) par
> exemple, ça donnerait quoi ?
>
> Ggal
>
>
> "michdenis" a écrit :
>
> > Dans le ThisWorkbook de ton classeur :
> >
> > Écrit de cette façon, cela suppose que toutes les feuilles
> > sont similaires... sinon tu peux utiliser l'objet Sh pour
> > restreindre les feuilles où cela ne s'applique pas.
> >
> > Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
> > Target
> > As Range)
> > For i = 6 To 36
> > If Target.Address = Range("F" & i).Address Then Application.SendKeys
> > ("%DOWN}")
> > Next i
> > End Sub
> >
> >
> >
> >
> > "GGAL" a écrit dans le message de news:
> >
> > Bonjour,
> >
> >
> > J'ai la macro suivante qui permet d'ouvrir rapidement des listes
> > déroulantes
> > :
> >
> > Sub Worksheet_SelectionChange(ByVal Target As Range)
> > For i = 6 To 36
> > If Target.Address = Range("F" & i).Address Then Application.SendKeys
> > ("%DOWN}")
> > Next i
> > End Sub
> >
> > J'ai recopier la macro sur les autres feuilles (qui correspndent aux 12
> > mois
> > de l'année)
> >
> > Est-il possible de n'avoir qu'une seule procédure s'appliquant à
> > l'ensemble
> > des feuilles.
> >
> > Merci beaucoup.
> >
> >
> > Ggal
> >
> >
>
>