Probleme Excel VBA

Fermé
Actaris51 - 6 mai 2009 à 16:37
 Actaris51 - 7 mai 2009 à 09:34
Bonjour,

Quelqu'un saurait il comment je peux faire pour renvoyer la dernière valeur d'une colonne dans une autre cellule?
Par exemple ma colonne H se rempli automatiquement au fur et a mesure et en cliquant sur un bouton j'aimerais que la dernière valeur s'affiche dans la cellule E18.

Merci d'avance
A voir également:

3 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 mai 2009 à 16:47
Bonjour,

Peut être comme ça:
lastRow = ThisWorkbook.Worksheets(1).Range("H65536").End(xlUp).Row
Worksheets(1).Range("E18").Value = Worksheets(1).Range("H" & lastRow).value

;o)
0
Bonjour
Il y a bien sûr plusieurs réponses possibles à la question, en fonction du contenu de la feuille.
En supposant qu'il n'y ait aucune case vide entre H1 et la dernière case utilisée dans la colonne H, alors il est possible de faire comme suit :
calculer le nombre de cellules utilisées dans la colonne H : x = nbval ($H:$H)
insérer en E18 un pointeur sur cette dernière cellule par la fonction décaler appliquée à H1, pour un déplacement de x-1 lignes (s'il n'y a qu'une valeur en H, c'est-à-dire en H1, alors il faut décaler H1 de 0 ligne) et de 0 colonne
d'où la fonction à insérer en E18
=decaler($H$1;nbval($H:$H)-1;0;1;1)

Si les valeurs introduites en colonne H ne commencent pas en H1 mais en Hx, alors, au lieu de calculer le nombre de valeurs en H, il faut calculer le nombre de valeurs dans la colonne H à partir de Hx. Ceci implique de remplacer dans nbval($H:$H), $H:$H par decaler($H$x;0;0;NbLignesColonnes-x+1;1)
(NbLignesColonnes est le nombre de lignes maximum dans une feuille Excel ou le nombre maximum de lignes dans la base, par exemple 10000)

Si certaines lignes peuvent ne pas avoir de valeur en H, alors il faut s'appuyer sur une autre colonne dans laquelle toutes les cellules sont utilisées, et remplacer $H:$H par une référence à cette colonne, ou $H$x par la référence de la case appropriée dans cette autre colonne.

Cela est-il clair ?

En fait, il ne s'agit aucunement de programmation en VBA, mais de l'utilisation appropriée des fonctions de base d'Excel.

Mais si ceci ne convient pas, alors il faut effectivement utiliser VBA pour rechercher la dernière case utilisée en colonne H et insérer cette recherche dans une procédure événementielle activée par exemple lorsqu'une valeur est entrée dans une cellule de la feuille. Mais ceci est beaucoup plus compliqué, et je ne peux guère vous aider.

Arbiel
0
Je n'avais pas sous les yeux votre question en rédigeant la réponse précédente.

Si vous voulez utiliser un bouton pour renvoyer la valeur cherchée, la proposition de Polux31 est correcte, si la feuille dans laquelle vous travaillez est la première feuille du classeur. Si tel n'est pas le cas, alors il faut remplacer Worksheets(1) par une fonction plus générale, vraisemblablement ActiveSheet puisque votre bouton est vraisemblablement dans la même feuille que les données que vous analysez.

Arbiel
0
C'est parfait merci beaucoup
0