dtonnant a écrit :
En utilisant le tableur EXCEL 2003,
feuille 1 : liste donnant pour chaque ligne un N° en col A, un libellé en col B
Créer une macro permettant en cliquant sur un élément d'une ligne de faire apparaître des données concernant ce libellé, données situées sur une autre feuille et commençant à une cellule précise de cette feuille, cela sans utiliser un lien hypertexte.
un grand merci à celui qui pourrait m'écrire cette macro (domaine que je ne connais pas ; et je n'ai pas trouvé ceci dans l'OI auquel je suis abonné )
Salut
que tu sois abonné à OI est une information cruciale pour résoudre ton probléme ?
Explique clairement ton problème avec des infos précises : si tu demandes de l'aide, c'est que tu n'es pas capable de le réaliser, donc, si tu as à adapter, il faut savoir quoi et comment !
feuille 1 : liste donnant pour chaque ligne un N° en col A, un libellé en col B
Créer une macro permettant en cliquant sur un élément d'une ligne
en partant de ça, j'en déduit une macro qui se lance sur une sélection d'une ligne comprenant les colonnes A ou B
sur l'onglet de la feuille contenant ta liste en A et B
tu cliques-droit>>menu contextuel>>voir le code
Tu colles ce qui suit en l'adaptant à ton problème
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim X As Long
Dim Crit As String
Dim Cel As Range
If Target.Rows.Count > 1 Or Intersect(Target, _
Range([A1], [B65536].End(xlUp))) Is Nothing Then Exit Sub
'si la sélection dépasse une ligne, si elle n'est pas sur
'les colonnes A ou B ou qu'elle dépasse la dernière ligne
'non-vide en b, on sort
Crit = Range("B" & Target.Row)
'variable = contenu de la cellule B de la ligne de la sélection
If IsEmpty(Crit) Then Exit Sub
'si variable vide, on sort
With Sheets("infos")
'Nom de la deuxième feuille en préfixe
Set Cel = .Range("A:A").Find(Crit, LookIn:=xlValues)
'on recherche la valeur de Crit dans la colonne A de la seconde feuille
If Cel Is Nothing Then Exit Sub
's'il n'y a pas de correspondance, on sort
.Range(.Range("D" & Cel.Row), .Range("iV" & Cel.Row).End(xlToLeft)).Copy _
Range("E" & Target.Row)
'on copie la ligne de la 2ème feuille de la colonne D à la dernière
'colonne non-vide dans la première feuille à partit de la colonne E
'sur la ligne de la sélection
End With
End Sub
vu les infos données, j'ai décidén pour créer ma macro :
- que la 2ème feuille est nommée"infos"
- que le libellé à rechercher serait en colonne A
- que les renseignements sont à partir de la colonne D
- que je les colle à partir de la colonne E sur la première feuille
et si ce n'est pas ça, tant pis pour toi : avec plus dinfos tu n'aurais pas eut besoin d'adapter
A+
|