Afficher un résultat en fonction de la cellule active

ruliann

XLDnaute Occasionnel
bonjour

sur la colonne A de la feuille1, j'ai une liste de 50 noms.

dans la cellule B1 de la feuille1, j'aimerais qu'apparaisse le numéro de téléphone du nom sur lequel je clique (la cellule active quoi)

avez-vous une idée?
 

ruliann

XLDnaute Occasionnel
Re : Afficher un résultat en fonction de la cellule active

c'est vrai dsl

voici un fichier exemple (la case surlignée en jaune est celle ou doit apparaitre le numero de telephone)

je n'ai pas de contrainte pour les numero de téléphone : je peux les mettre en colonne Z de la fauille 1 ou en colonne z de la feuille 2, peu importe

merci,
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Afficher un résultat en fonction de la cellule active

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
 

ruliann

XLDnaute Occasionnel
Re : Afficher un résultat en fonction de la cellule active

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

merci pour ta réponse Robert

le hic c'est qu'elle est un poil un peu trop balèze pour moi à retranscrire dans mon fichier d'origine (dont la mise en page est moins simple que celle que le fichier test)
du coup je suis pommé ds les mises à jours du code

faut que je réfléchisse à un moyen de vs adresser un nouveau fichier, dont la mise en page se rapproche de mon fichier (ahhh si je pouvais balancer le vrai fichier!) mais non :)
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 992
Membres
103 422
dernier inscrit
victus5