XL 2010 Compiler deux macros Worksheet_SelectionChange

Horusbk

XLDnaute Junior
Bonjour,

Dans mon classeur j'ai deux codes dans la propriété Worksheet_SelectionChange. Vu que cette dernière est déclarée deux fois, mes codes ne fonctionnent pas... comment puis-je compiler ces deux codes ?

Premier code
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i%, k%, Y As Boolean
'Choix des colonnes ou la macro est active
Y = Target.Column = 17 ' = numero de la colonne pour la date B=2, C=3, E=5, 17=Q... 'Or Target.Column = 17

If Target.Count = 1 And Target.Row > 1 And Y Then
      If Target.Row > 12 Then
      ActiveWindow.ScrollRow = Target.Row - 12
      Else
         ActiveWindow.ScrollRow = 1
      End If
      Calendrier.Show
End If
    End Sub
Deuxième code
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'on ne veut afficher l'UserForm que si on a sélectionné une cellule de la colonne C qui correspond à un
    'type de véhicule défini en colonne A
    If Not Application.Intersect(Target, Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row).Offset(0, 2)) Is Nothing Then
        UserForm1.Show
        Target = UserForm1.ComboBox2    'On écrit dans la cellule sélecionnée le camion choisi dans la 2° liste déroulante
    End If
    Unload UserForm1   'vide les mémoires et évite que l'userform ne se réaffiche avec les dernières valeurs choisies
End Sub

Merci de votre aide.
Cdlt; Baptiste :)
 

Bougla972

XLDnaute Occasionnel
Bonjour Baptiste,

Ces 2 macros agissent bien sur le même onglet ? Si tel est le cas pourquoi ne pas mettre les 2 codes sous l'évènement 'Worksheet_SelectionChange' comme ceci:

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i%, k%, Y As Boolean
'Choix des colonnes ou la macro est active
Y = Target.Column = 17 ' = numero de la colonne pour la date B=2, C=3, E=5, 17=Q... 'Or Target.Column = 17

If Target.Count = 1 And Target.Row > 1 And Y Then
      If Target.Row > 12 Then
      ActiveWindow.ScrollRow = Target.Row - 12
      Else
         ActiveWindow.ScrollRow = 1
      End If
      Calendrier.Show
End If
'on ne veut afficher l'UserForm que si on a sélectionné une cellule de la colonne C qui correspond à un
    'type de véhicule défini en colonne A
    If Not Application.Intersect(Target, Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row).Offset(0, 2)) Is Nothing Then
        UserForm1.Show
        Target = UserForm1.ComboBox2    'On écrit dans la cellule sélecionnée le camion choisi dans la 2° liste déroulante
    End If
    Unload UserForm1   'vide les mémoires et évite que l'userform ne se réaffiche avec les dernières valeurs choisies
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote