TRI AUTOMATIQUE D'UNE ZONE EXCEL DÈS QUE L'ON CHANGE UNE VALEURE.

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 27 oct. 2006 à 14:38
docjfnoel Messages postés 1 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 17 mai 2007 - 17 mai 2007 à 19:18
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40093-tri-automatique-d-une-zone-excel-des-que-l-on-change-une-valeure

docjfnoel Messages postés 1 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 17 mai 2007
17 mai 2007 à 19:18
Bonjour,
Je suis néophite en programmation. C'est exactement la fonction que je cherche. Pourrait-on m'expliquer pas à pas comment la mettre dans mon tableur?
Merci
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
28 oct. 2006 à 14:51
Salut BPM12,

beh en fait son but dans sa boucle c'est de rechercher la première cellule vide.

Concernant ma fonction, DerLigne sera égale à la dernière ligne utilisée car la fonction Find recherche "", donc rien, donc cellule vide.
Tout ceci à partir de B65536 et en remontant.
Sachant que j'ai mis moins 1 à la fin, le résultat sera donc la dernière ligne utilisée.

Tu dis "Mais ensuite, tu as nothing en retour à un Find avec argument "" pour valeur recherchée"
>> beh non, si dans la colonne B, il n'y a aucune valeur, tu auras une erreur, facilement gérable, sinon, tu auras bien la derniere ligne utilisée.
Je t'invite à faire le test, place qques données dans la colonne B, et place même des cellules vides entre plusieurs :
Dim DerLigne

DerLigne = Sheets(1).Columns(2).Find("", [B65536], , , xlByRows, xlPrevious).Row - 1

Pour le Column, oui, c'est une faute d'orthographe.

Sinon, pour l'auteur de cette source, en me relisant j'y suis allé un peu fort sur un terme "ambigüe" :
Quand je dis "code inutile, ce n'est pas vraiment une source...", il faut entendre plutôt "source inutile, ce n'est pas vraiment une source... mais plutôt un snippet".

Exemple de qques snippets que j'ai déposé (et pas en source) :
http://www.codyx.org/snippet_rechercher-ligne-vide-dans-excel_205.aspx
http://www.codyx.org/snippet_rechercher-premiere-ligne-ou-colonne-vide-partir-cellule_206.aspx

@++
bpm12 Messages postés 10 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 28 octobre 2006
28 oct. 2006 à 14:09
Mortalino,

As-tu pris le temps de vérifier ta proposition ?

Si elle fonctionne, dis nous comment?

En premier, ce n'est pas Column mais Columns (une faute de synthaxe est toujours excusable),
Mais ensuite, tu as nothing en retour à un Find avec argument "" pour valeur recherchée.

@+
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 oct. 2006 à 14:38
Salut,

code inutile, ce n'est pas vraiment une source....

De plus, ta boucle
While ActiveCell.Offset(i, 0).Text <> ""
i = i + 1
Wend
bouffe des resources pour rien :
il faut préférer :
DerLigne = Sheets(N°).Column(N°).Find("", [B65536], , , xlByRows, xlNext).Row - 1

Tout ton code est perfectible et là ça calcul même quand la mauvaise colonne est sélectionnée (perd du temps et des ressources).

Bref, t'as encore des choses à travailler...

++
Rejoignez-nous