Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A)
Set PL = Range("A4:A" & DL) 'définit la plage PL
If Application.Intersect(Target, PL) Is Nothing Then 'condition : si la sélection est en dehors de la plage PL
Range("B1").Value = "" 'vide la cellule B1
Else 'sinon
Range("B1") = Target.Offset(0, 20) 'affiche le numéro de téléphone dans la cellule de la colonne décalée de 20 colonnes vers la droite
End If 'fin de la condition
End Sub
Bonjour le fil, bonjour le forum,
Si toi tu n'as pas de contrainte pour les numéros de téléphone, le code VBA lui en a, Malin !
D'ailleurs j'ai remonté d'une ligne les numéro de téléphone dans ton exemple pour que le code ci-dessous fonctionne. Sinon tu adapteras avec les Offset...
Code:Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim DL As Integer 'déclare la variable DL (Dernière Ligne) Dim PL As Range 'déclare la variable PL (PLage) DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) Set PL = Range("A4:A" & DL) 'définit la plage PL If Application.Intersect(Target, PL) Is Nothing Then 'condition : si la sélection est en dehors de la plage PL Range("B1").Value = "" 'vide la cellule B1 Else 'sinon Range("B1") = Target.Offset(0, 20) 'affiche le numéro de téléphone dans la cellule de la colonne décalée de 20 colonnes vers la droite End If 'fin de la condition End Sub