Variable selon cellule sélectionnée Excel Macro

Résolu
Nihilivin Messages postés 12 Statut Membre -  
Nihilivin Messages postés 12 Statut Membre -
Bonjour,

Voilà, pour le taf je voudrai faire un système de tableau à onglets, où, lorsque l'on clique sur un onglet non affiché, une macro se déclenche pour remplir le tableau de façon qui a des couettes. Le problème c'est que pour ça, je dois déclarer une variable, mais je ne sais pas où ni comment. En effet, si je la déclare dans le Private Sub, elle se redéfinit à chaque fois sans valeur, alors que je veux justement conserver sa valeur entre chaque sélection! Voici mon code pour l'instant:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If (Not Intersect(Target, Range("B14")) Is Nothing) And (onglet <> 0) Then
MsgBox "Global et onglet précédant " & CStr(onglet)
onglet = 0
End If
If (Not Intersect(Target, Range("B15")) Is Nothing) And (onglet <> 1) Then
MsgBox "Pôle 1 et onglet précédant " & CStr(onglet)
onglet = 1
End If
If (Not Intersect(Target, Range("B16")) Is Nothing) And (onglet <> 2) Then
MsgBox "Pôle 2 et onglet précédant " & CStr(onglet)
onglet = 2
End If
If (Not Intersect(Target, Range("B17")) Is Nothing) And (onglet <> 3) Then
MsgBox "Pôle 3 et onglet précédant " & CStr(onglet)
onglet = 3
End If
End Sub

Voilà voilà.... Donc en fait, là, je veux qu'à chaque sélection d'une nouvelle case, CStr(onglet) me retourne la valeur de l'onglet précédant, et non une variable vide

Merci par avance!

A voir également:

2 réponses

f894009 Messages postés 17413 Statut Membre 1 715
 
Bonjour,

declaration variable Public:

Public Onglet

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If (Not Intersect(Target, Range("B14")) Is Nothing) And (Onglet <> 0) Then
MsgBox "Global et onglet précédant " & CStr(Onglet)
Onglet = 0
ElseIf (Not Intersect(Target, Range("B15")) Is Nothing) And (Onglet <> 1) Then
MsgBox "Pôle 1 et onglet précédant " & CStr(Onglet)
Onglet = 1
ElseIf (Not Intersect(Target, Range("B16")) Is Nothing) And (Onglet <> 2) Then
MsgBox "Pôle 2 et onglet précédant " & CStr(Onglet)
Onglet = 2
ElseIf (Not Intersect(Target, Range("B17")) Is Nothing) And (Onglet <> 3) Then
MsgBox "Pôle 3 et onglet précédant " & CStr(Onglet)
Onglet = 3
End If
End Sub

lorsque l'on clique sur un onglet non affiché, une macro se déclenche pour remplir le tableau de façon qui a des couettes. La par contre comprends rien du tout ?????
0
Nihilivin Messages postés 12 Statut Membre
 
Yeeees merci, j'savait pas comment faire les déclarations publiques! :D
0