Textbox alimentée /fontion & mise-à-jour en direct

Charly88

XLDnaute Occasionnel
Bonjour à tous, j'ai un petit problème avec une texbox posée sur ma feuille excel, je voudrais qu'elle affiche la valeur la plus élevée d'une colonne prédéfinie ('A5:A705'), sachant que cette valeur change pendant que l'utilisateur travaille sur le classeur...
Mais je fais choux blanc, exemple de tentative, bidouillée à partir de ce que me proposait l'aide excel :

Private Sub TextBox2_Change()
Dim myRange As Range
Set myRange = Worksheets('OOO').Range('A5:A705')
Answer = Application.WorksheetFunction.Max(myRange)
TextBox2.Value = Answer
End Sub
 

Hervé

XLDnaute Barbatruc
Re:Textbox alimentée /fontion & mise-à-jour en dir

Bonsoir charly

essaye de passer par une evenementielle :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim plage As Range

Set plage = Range('A5:A705')

If Intersect(Target, plage) Is Nothing Then Exit Sub
TextBox2 = Application.WorksheetFunction.Max(plage)

End Sub


salut
 

Charly88

XLDnaute Occasionnel
Re:Textbox alimentée /fontion & mise-à-jour en dir

Bonsoir Hervé merci pour la réponse mais rien ne bouge :-/

Je viens de penser à mettre la fonction directement dans la case value dans les propriétés de la texbox de cette manière
=MAX(A5:A705)

...Mais la textbox se contente de m'afficher la fomule, erreur de synthaxe ou impossibilité, je vais essayer de fouiner :huh:
 

Hervé

XLDnaute Barbatruc
Re:Textbox alimentée /fontion & mise-à-jour en dir

re charly

petite démo en pièce jointe.

rentre des chiffres en a5:a...

salut [file name=Classeur1_20051209203735.zip size=8592]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20051209203735.zip[/file]
 

Pièces jointes

  • Classeur1_20051209203735.zip
    8.4 KB · Affichages: 18

myDearFriend!

XLDnaute Barbatruc
Re:Textbox alimentée /fontion & mise-à-jour en dir

Bonsoir Charly88, Hervé, le Forum,

Le TextBox étant dans une feuille Excel, la fonction Max étant une fonction 'naturelle' de feuille de calcul, je pense qu'on peut éviter dans ce cas l'utilisation de tout code VBA...

Ci-joint une autre façon simple de faire, avec un TextBox, sa propriété LinkedCell et une simple formule (cachée) en cellule F1 : =MAX(A5:A705)

Cordialement, [file name=PourCharly.zip size=10699]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PourCharly.zip[/file]
 

Pièces jointes

  • PourCharly.zip
    10.4 KB · Affichages: 20

Charly88

XLDnaute Occasionnel
Re:Textbox alimentée /fontion & mise-à-jour en dir

> myDearFriend! : En fait c'est comme ça que j'avais fait au début mais je voulais éviter les riques de fausse manip et aussi savoir comment ça pouvait se faire 'normalement'.

...Mais grâce à toi j'ai compris que je pouvais éviter tout risque en mettant la fomule dans une page cachée où je mets déjà pas mal de données transitoires (un jour il faudra que je vous en parle de cette bidouille mais ça peut attendre.)

Merci beaucoup !




> Hervé : Désolé de ne pas être allé au bout du test hier soir, ce n'est que tout à l'heure en voyant ton exemple que j'ai compris qu'il fallait que je sauvegarde/quitte :lol:

Pourrais-tu m'expliquer en 2 mots la signification de cette ligne :
If Intersect(Target, plage) Is Nothing Then Exit Sub

En fait, une fois que j'ai eu compris ton code, j'ai tout compacté (j'adore mettre un gros paquet illisible sur une seule ligne :p ) et ça fonctionne toujours de cette manière :



Private Sub Worksheet_Change(ByVal Target As Range)
TextBox2 = Application.WorksheetFunction.Max(Worksheets('OOO').Range('A5:A705'))
End Sub



D'ailleurs là je me dis que je pourrais probablement virer le (ByVal Target As Range)...


Merci beaucoup à tous les 2 deux et à bientôt !
 

Statistiques des forums

Discussions
312 500
Messages
2 089 013
Membres
104 004
dernier inscrit
mista