Dimsension tableau

cs_nevil Messages postés 10 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 31 juillet 2007 - 19 déc. 2005 à 09:35
TFlorian Messages postés 194 Date d'inscription dimanche 3 mars 2002 Statut Membre Dernière intervention 19 décembre 2005 - 19 déc. 2005 à 20:46
Alors voila, je traite une base de données excel contenu dans un tableau.Quand je fé mes recherche, je recherche de A1 juska Z10000 comme ca je suis sur de perde ocune données. Mais si mon tableau n'est defini ke sur A1-C15, il recherche dans une sélection bien tro grande et donc perd du temps.


Comment est ce ke je pouré faire pour ke lorsk je positionne mon curseur dans ce tableau, les dimsenions exact de ce tableau soit détecté et si possible, stocké dans une variable ??


Je vous remercie


julien

1 réponse

TFlorian Messages postés 194 Date d'inscription dimanche 3 mars 2002 Statut Membre Dernière intervention 19 décembre 2005 3
19 déc. 2005 à 20:46
met le code suivant dans un module, vas sur la claseur selectionne une zone puis fait executer la macro 1



une boite de message affiche alors la dimention de la sélection ! (cette boite est crée par la fonction msgbox)

Lorsque tu vas faire un tours dans ta fenetre de debug tu retrouve la
meme valeur que ce qu'il y avais ecrit dans la boite de message.
(debug.print)





Sub Macro1()

'

' Macro1 Macro

' Macro par Florian TRAON

'

Debug.Print ActiveWindow.RangeSelection.Address

MsgBox ActiveWindow.RangeSelection.Address

End Sub





cela te permet de sélectionner a la main une zone ..



si tu veux que le systeme réalise la sélection tout seul il faut avoir
certaines conditions sur ton tableau (comme par exemple qu'il soit
continu) tu recupère donc ta position (par la meme methode ou par
Debug.Print ActiveWindow.ActiveCell.Address qui ne te renvoi que la
celule principale (meme pour une selection )



ensuite tu réalise une recherche du début de l'espace (haut gauche) une foi que tu l'a trouvé tu recherche la fin (bas droit)



astuce : tu utilisera : while(cells(a,b)<>"") avec a et b initialisée avec les valeurs issues de ActiveCell.Address

pui incrémentée dans la boucle pour trouver la fin (ou le debut) de la zone







Voila ..

bon .. je doit avouer que je suis pas trop rentré dans les détailles
pour la recherche de la dimention du tableau .. c'est une methode qui
me parait un peu "lourde" mais qui a le merite de fonctionnée ...



surtout n'esite pas a me poser quelque question si tu veux plus d'info !



a+

TFlorian.
0
Rejoignez-nous