Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Récupérer le numéro de colonne au sein d’une plage de cellules

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J’ai une plage de cellules de plusieurs lignes et 3 colonnes.
Seule la première colonne de cette plage est nommée.
Quand je clique sur l’une quelconque des cellules de la plage entière, je voudrais récupérer le numéro de la colonne de la plage où se trouve la cellule sur laquelle j’ai cliqué.
Je me suis pris ainsi et ça marche :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Intersect(Target, [Col_DMS_Deg2]) Is Nothing Then
        [C6] = Target.Column - [Col_DMS_Deg2].Column + 1
    End If

    If Not Intersect(Target, [Col_DMS_Deg2].Offset(0, 1)) Is Nothing Then
        [C6] = Target.Column - [Col_DMS_Deg2].Column + 1
    End If

    If Not Intersect(Target, [Col_DMS_Deg2].Offset(0, 2)) Is Nothing Then
        [C6] = Target.Column - [Col_DMS_Deg2].Column + 1
    End If

End Sub
Pour faire plus simple, j’ai tenté ceci :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Intersect(Target, [Col_DMS_Deg2], [Col_DMS_Deg2].Offset(0, 1), [Col_DMS_Deg2].Offset(0, 2)) Is Nothing Then
        [C6] = Target.Column - [Col_DMS_Deg2].Column + 1
    End If
    
End Sub
Ça ne marche pas et je me demande bien pourquoi.
Si quelqu’un a une explication, merci d’avance.
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
C'est parce que vous spécifiez des plages verticales disjointes, qui n'ont donc aucune intersection.
Ceci marcherait sans doute mieux :
VB:
    If Not Intersect(Target, [Col_DMS_Deg2].Resize(, 3)) Is Nothing Then
 

Discussions similaires

Réponses
1
Affichages
282
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…