Recuperer le TOP et LEFT d'une cellule

Robby

XLDnaute Nouveau
Bonjour,
Je veux afficher une ListBox pour simplifier la saisie (+ efficace, + rapide, - d'erreur, et tout le tralala...)

Donc, j'ai deja le code dans la page concernee.
Mais cependant, l'affichage en position de la ListBox est assez peu precis.
Et si le classeur est modifie (il l'est toujours: les utilisateurs ne peuvent pas s'empecher de toucher a la taille de caractere, la police, la largeur et hauteur des colonnes) alors la position de ma ListBox est completement dans les choux.

Ci-joint le classeur.

Ma question est, comment trouver la position exact d'une cellule en coordonees Top Left pour y positionner la ListBox ?
Pour l'instant je le fais au 'pif'.

D'avance Merci !
Salutations au forum !

;)
 

Pièces jointes

  • ListBox-Top.xls
    42 KB · Affichages: 55
  • ListBox-Top.xls
    42 KB · Affichages: 55
  • ListBox-Top.xls
    42 KB · Affichages: 57

Robby

XLDnaute Nouveau
Re : Recuperer le TOP et LEFT d'une cellule

J'ai moi meme trouve une premiere reponse,
pour le TOP, il faut additionner toutes les hauteurs des lignes avant la cellule.
Ansi on obtient le TOP.


En revanche le LEFT ... je ne sais pas.
 

chris

XLDnaute Barbatruc
Re : Recuperer le TOP et LEFT d'une cellule

Bonjour
Je ne sais pas mais puisque ta logique a marché je dirais : additionne les largeurs des colonnes avant la cellule.
Il y a surement quleque chose de plus précis dans Excel mas en attendant...
 

Cousinhub

XLDnaute Barbatruc
Re : Recuperer le TOP et LEFT d'une cellule

Bonjour, essaie en remplaçant ton code par ceci :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Fin, Ligne
Application.ScreenUpdating = False
LB3.Visible = False 'masque par defaut la ListBox
Colonne = Target.Column
Ligne = Target.Row

Select Case Target.Address
Case Is = "$B$7"
tablo = 9
Case Is = "$B$8"
tablo = 10
Case Is = "$B$10"
tablo = 11
Case Is = "$D$9"
tablo = 12
Case Else
Exit Sub
End Select
LB3.Visible = True
LB3.Left = ActiveCell(Ligne, 2).Left
LB3.Top = ActiveCell(1, Colonne).Top
While Worksheets("Main").LB3.ListCount <> 0
Worksheets("Main").LB3.RemoveItem (0)
Wend
For x = 2 To Sheets("Data Base").Cells(65536, tablo).End(xlUp).Row
Worksheets("Main").LB3.AddItem Sheets("Data Base").Cells(x, tablo).Value
Next x
End Sub


Ceci t'évite une fonction supplémentaire.
Cependant, Données/Validation, le fait très bien aussi, il suffit de lui coller une liste..
bon courage
 

Robby

XLDnaute Nouveau
Re : Recuperer le TOP et LEFT d'une cellule

OK.
J'ai essayer la reponse de tatiak.
Sa reponse est exactement ce dont j'avais besoin.

Joint le fichier fini pour le Forum.

Merci pour vos reponses bhbh, tatiak, chris.

Salutations
 

Pièces jointes

  • ListBox-Top.xls
    44.5 KB · Affichages: 65
  • ListBox-Top.xls
    44.5 KB · Affichages: 60
  • ListBox-Top.xls
    44.5 KB · Affichages: 66

Discussions similaires

Statistiques des forums

Discussions
312 696
Messages
2 091 055
Membres
104 748
dernier inscrit
Lylie76