A voir également:
- Probleme Excel VBA
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
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
6 mai 2009 à 16:47
Bonjour,
Peut être comme ça:
;o)
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)
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
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
6 mai 2009 à 17:41
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