Excel faire une fenetre lors selection cellule
j\'ai crée un base de donnee telephonique avec excel
colonne a civilite b nom c prenom ect...
dans cette base j\'ai un module recherche par le nom et qui m\'affiche les ligne demandee
Mais comme j\'ai beaucoup d\'info j\'ai du mal a voir les numero de fax tel portable .
Peut on une fois que j\'ai rechercher le nom (donc une ligne aparit avec un dizaine d\'infos) est qu il est affiche avoir ceci
je clique sur le nom dans un ligne et un fenetre apparai en plus gros avec juste le numero de tel fax et portable
Merci à vous
jean michel
J\'essaie de te préparer quelque chose et je te le mets à disposition.
Patience
Pégase
merci pour votre aide
jean michel

1 023 contributions
En A > Nom
En B > Prénom
En C > Adresse complète
En D > N° de téléphone
En E > N° de fax
Puis appuis simultanément sur les touches Alt et F11
Dans la feuille Microsoft Visual Basic qui s'ouvre tu ouvre la feuille où se trouve ton tableau d'adresse et tu y colles le code suivant (Fais un copier/coller)
Voir copie d'écran ci dessous

Et voici le code
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim KeyCells As Range
Dim Lg As Integer, Cl As Integer
Lg = ActiveCell.Row 'N° de ligne
Cl = ActiveCell.Column 'N° de colonne
If Target.Address = "$A$1" Then Exit Sub 'Elimine le traitement de la cellule A1 >>Prix
If Cl <> 1 Then Exit Sub 'Elimine le traitement des colonnes autres que 1
Set KeyCells = Cells(Lg - 1, 1)
If Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
Nom = Cells(Lg, 1)
Prénom = Cells(Lg, 2)
Tel = Cells(Lg, 4)
Fax = Cells(Lg, 5)
Texte = "Nom : " & Nom & " " & Prénom & vbCr & vbCr
Texte = Texte & "Tél. : " & Tel & vbCr
Texte = Texte & "Fax : " & Fax
Continue = MsgBox(Texte, vbOKOnly, "Téléphone & fax")
End If
Range("A1").Select
End Sub
Un double clic dans la cellule du nom va provoquer l'affichage des infos
Si tu veux plus complet, je peux te préparer un fichier qui permettra :
- la recherche du Nom avec liste déroulante automatique et saisie semi-automatique
- Dès que la recherche sera lancée, dans la même fenêtre s'affichera toutes les données (Nom, Prénom, Adresse Tel Fax...)
Mais c'est un peu plus long à écrire et il faudrait que tu m'envoies un fichier vierge pour l'adapter
Tiens moi au courant
je viens d\'essayer le code
j\'ai fait quelques modif mais je n\'arrive pas à modifier 2 points :
le nom est dans colonne 2 et non 1
et lorsque s\'affiche la combo je voudrais que tout le numero s\'affiche y compris le 0 devant (si c\'est possible )et les numero soit espacé 06 espace 06 espace ...
merci pour votre aide
jean michel

[i][/i]
merci
C'est assez simple, dans mon code il y a la lignele nom est dans colonne 2 et non 1
Lg représente le numéro de la ligne dans laquelle tu as double clique et le 1 qui suit est le n° de colonne : La fonction est Cells(n° de ligne,n° de colonne)Nom = Cells(Lg, 1)
Dans ton cas il suffit d'écrire
Nom = Cells(Lg, 2)
Pour l'affichage des n° de téléphone, il y a plusieurs solutions :
1) Tu déclares ta colonne en Format texte et tu tapes tes numéros comme tu veux 01 23 45 67 89 avec les espaces au bon endroit. Dans ce cas le combo te restituera exactement ton format
2) tu tapes tes n° sans espaces et tu déclares ta colonnes en format Spécial puis N° de téléphone

Ensuite dans la macro tu remplaces
Tel = Cells(Lg, 4)
par
Tel1 = Cells(Lg, 4)
Tel = "0" & Mid(Tel1, 1, 1) & " " & Mid(Tel1, 2, 2) & " " & Mid(Tel1, 4, 2) & " " & Mid(Tel1, 6, 2) & " " & Mid(Tel1, 8, 2)
Idem pour le fax
Bonne chance et si tu as encore besoin n'hésite pas

1 023 contributions
Pour déclencher l\'affichage, il suffit de double-cliquer sur n\'importe quelle cellule de la ligne du nom choisi (et plus exclusivement sur la cellule du nom)
Si un n° (fax ou portable) n\'est pas mémorisé le champ est vide au lieu d\'affiche 0 dans les modifs précédente
J\'ai ajouté le n° de portable
Quand tu vas recopier la macro tous ce qui est après le signe apostrophe \' va passer en vert, se sont des commentaires
Je les ai ajouté pour que tu comprenne les fonctions
Voici le code
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim KeyCells As Range
Dim Lg As Integer, Cl As Integer
Lg = ActiveCell.Row \'N° de ligne
Cl = ActiveCell.Column \'N° de colonne
If Lg = 1 Then Exit Sub \'Elimine le traitement de la ligne 1
Set KeyCells = Cells(Lg - 1, 2)
If Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
Nom = Cells(Lg, 2)
Prénom = Cells(Lg, 3)
\'Traitement n° de téléphone
\'Lecture du n° de téléphone
Tel1 = Cells(Lg, 8)
If Tel1 = \"\" Then GoTo Suite1
\'Mise au format 06 ss xx yy zz du n° de téléphone
Tel = \"0\" & Mid(Tel1, 1, 1) & \" \" & Mid(Tel1, 2, 2) & \" \" & Mid(Tel1, 4, 2) & \" \" & Mid(Tel1, 6, 2) & \" \" & Mid(Tel1, 8, 2)
Suite1:
\'Traitement n° de Fax
Fax1 = Cells(Lg, 9)
If Fax1 = \"\" Then GoTo Suite2
Fax = \"0\" & Mid(Fax1, 1, 1) & \" \" & Mid(Fax1, 2, 2) & \" \" & Mid(Fax1, 4, 2) & \" \" & Mid(Fax1, 6, 2) & \" \" & Mid(Fax1, 8, 2)
Suite2:
\'Traitement n° de portable
Port1 = Cells(Lg, 10)
If Port1 = \"\" Then GoTo Suite3
Port = \"0\" & Mid(Port1, 1, 1) & \" \" & Mid(Port1, 2, 2) & \" \" & Mid(Port1, 4, 2) & \" \" & Mid(Port1, 6, 2) & \" \" & Mid(Port1, 8, 2)
Suite3:
\'Préparation du message
Texte = \"Nom : \" & Nom & \" \" & Prénom & vbCr & vbCr
Texte = Texte & \"Tél. : \" & Tel & vbCr
Texte = Texte & \"Fax : \" & Fax & vbCr
Texte = Texte & \"Port : \" & Port
\'Affichage du message
Continue = MsgBox(Texte, vbOKOnly, \"Téléphone & fax\")
End If
\'Positionnement de la cellule sélectionée en A1
Range(\"A1\").Select
End Sub
ATTENTION :
Les lignes doivent être écrites sur une seule ligne
Exemple
Ecrire
Fax = \"0\" & Mid(Fax1, 1, 1) & \" \" & Mid(Fax1, 2, 2) & \" \" & Mid(Fax1, 4, 2) & \" \" & Mid(Fax1, 6, 2) & \" \" & Mid(Fax1, 8, 2)
et non
Fax = \"0\" & Mid(Fax1, 1, 1) & \" \" & Mid(Fax1, 2, 2) & \" \" & Mid(Fax1, 4, 2) & \" \" & Mid(Fax1, 6, 2) & \" \" & Mid(Fax1, 8,
2)
Bon courage
merci pour le nouveau code
avec tes indications d\'hier j\'avais modife et rajouter le n° de portable
mais j\' n\'avais pas reussi à modifier la selection de la colonne
le nouveau code fonctionne tres bien est c\'est exactement ce que je cherchais
merci pour l\'aide precieuse
jean michel
Discussion trop ancienne
Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.
Nous vous suggérons de créer un nouveau message