Tri alphabétique (feuil à feuil)

  • Initiateur de la discussion Rv_mikey
  • Date de début
R

Rv_mikey

Guest
Bonjour à toutes et tous,

Voilà mon soucis :

Sur la feuil1, en colonnes A1 ( sur plusieurs lignes ), j'ai une liste de mots.

J'aimerai que les mots se trient automatiquement sur la feuil2, par colonnes et par ordres alphabétiques c'est à dire que tous les mots commencant par A se mettent dans la colonnes A1, les mots commencant par B dans la colonnes B1 et ainsi de suite....

Je ne sais pas comment faire quoi utiliser...

Quelqu'un aurait-il un début de solution....

Merci par avance....

PS : c'est la première fois que je vois un forum où reigne gentillesse d'esprit, solidarité et respect. Longue vie à ce merveilleux forum.........
 
L

LaurentTBT

Guest
Bonjour à tous.

Merci à tous pour toutes ces explications.
Thierry, J'ai pris bonnes notes de tes conseils pour référencer mes fichiers pour utiliser des variables, et pour la gestion d'erreur. Pour ce qui est de la formule, je n'ai pas trop de mérite, car la formule Excel =SI(CODE(MAJUSCULE(Feuil1!$A1))=64+COLONNE(A1);Feuil1!$A1;"")[i/] a été trouvée à trois (voir posts plus haut, Rv_Mikey, Monique et ma pomme), et pour l'écrire en VBA, j'ai tout simplement utilisé l'enregistreur de macro!

Pour le reste, j'ai peut-être été un peu emmerdeur en cherchant la petite bête (n'est-ce pas Celeda?), mes je crois avoir fait un énorme bon dans mes connaissances VBA, grâce à vous tous. Je mesure aussi tout le chemin qui me reste à parcourir pour espèrer me rapprocher de tels Maîtres.

Ceci dit, la prochaine fois, j'essayerai d'aller à l'essentiel quitte à lancer un nouveau fil sur les détails qui me turlupinnent. En revanche, n'hésitez pas à me corriger si vous en avez le temps, même pour pas grand chose. Je laisse ma susceptibilité au placard...

Encore merci à tous.
 
@

@+Thierry

Guest
Hello The Fil

Just For the fun

Les deux codes en "compétition" avec 1000 data (J'ai pris les noms des 200 derniers posts x 5)

Pas de different frappante sur rapidité d'exécution... Maintenant si on en mets 10000 datas Laurent = Winner ! (tatata)
Comme quoi les codes les plus courts sont pas forcément les plus rapides !

Par contre si on en met 32267 (Integer limit) la macro de Laurent aurait besoin de désactiver les Calculs automatiques d'excel (Application.Calculation = xlCalculateManual)... car j'ai eu "Not Enough Memory" (à cause des calculs) tandis que ma bonne vieille boucle fait son bout de chemin tranquille (Tout en vous laissant aller boire le café !!)[/b]

Voilà Just for the Fun :)

Bon Aprèm
@+Thierry
 

Pièces jointes

  • TriAlphaUltimeV00.00.zip
    23.9 KB · Affichages: 23
J

jon

Guest
pour ceux que cela intéresserait, voilà comment ajouter une référence à une bibliothèque

Vérifier le chemin... comme je travaille sous windows 2000
l'arborescence des fichiers est différent des Windows "traditionnels"

Dans le Thisworkbook de ton classeur, dans la procédure événementiel
suivante :

'--------------------------
Private Sub Workbook_Open()
Addref
End Sub
'--------------------------

Dans la procédure suivante, la ligne de code :
on error resume next est obligatoire car si la
référence est déjà chargé... cela provoque
une erreur...

à Copier dans un module standard.
'---------------------------
Sub Addref()
'ajoute une référence à une bibliothèque
On Error Resume Next
'nom et chemin de la bibliothèque
nomRef = "C:\Program Files\Fichiers communs\Microsoft Shared\DAO\dao360.dll"
ThisWorkbook.VBProject.References.AddFromFile nomRef
End Sub
'---------------------------
 
@

@+Thierry

Guest
Merci STéphane

Super génial pour certaines applis qui peuvent donc planter si on les diffuse à distance sans à avoir à faire des explications "Warning Read Me Before First Use => You should establish Reference... blah blah blah"

Mais j'allais dire quel lien avec ce fil........ Puis je viens de revois ton post du 10-05-03 10:32 (Dao) OK OK :))

Ben je vais me noter çà illico presto ! merci
@+Thierry
 
Z

zon

Guest
Bonsoir à tous,

Merci Jon.....

Thierry, moi j'ai le temps de boire un café avec ta macro (Lol): 40 secondes pour déroulement de ta macro sur mon PC avec 65000 lignes....

Si on rajoute la On error goto fin sur le code de Laurent, la macro n'est pas éxecutée.....



A+++
 
@

@+Thierry

Guest
Bonsoir Zon, ce fil et le Forum

Oui le café et même la clope sur la bécanne où j'ai testé... Comme j'ai d'ailleurs bien précisé et même en restant Integer, sans aller en Long...

Par contre pour le coup de On Error GoTo... Ben Zon c'est que tu n'as pas lu mon post dU 12-05-03 02:36... Car ce n'est pas applicable dans ce genre de code... Et c'est même un risque.

Bonne Nuit
@+Thierry
 
Z

zon

Guest
Re,



Thierry, ah bon la gestion d'erreur sous VBA peut être un risque, je ne savais pas, mes profs m'ont toujours pris la tête avec ça (mais sous d'autres langages )....

Aujourd'hui je ne suis plus à l'école lol !!!!, mais bon je préfère que l'user d'une de mes appli est un message d'erreur faite par mes soins que la fenêtre de débogage qui peut fait peur à certaines personnes.....

A+++
 
@

@+Thierry

Guest
Re,

Euf oui et non... Zon

Car la proposition de code que l'on peut lire ci dessus est plutôt un "masquage d'erreur" qu'une gestion...

Non çà c'est pas des profs qui t'ont expliqué çà. Si un compilateur est doté justement d'un gestionnaire d'erreur c'est pour mettre en garde d'une défection dans le code...

Maintenant si tu récupères rééllement le numéro de l'erreur et qu'en fonction de çà tu as un échappatoire d'exécution d'un code, pour en exécuter un autre paliatif......là oui c'est de la vraie gestion d'erreur.

Bonne Nuit
@+Thierry
 
L

LaurentTBT

Guest
Bonsoir à tous.

Poussé dans mes derniers retranchements, j'ai essayé d'aller jusqu'au bout. Selon les bons conseils de Thierry, j'ai lancé ma macro avec les variables définies en Long, et en désactivant les calculs automatiques.
Ca a marché avec 40 000 mots, mais pas avec 60 000 (message signalant une insuffisance mémoire). Je m'avoue donc définitivement vaincu!

Ceci dit, pour ce qui est de la différence de vitesse entre les deux méthodes, j'ai lu je ne sais plus ou que le moteur de calcul d'excel était plus rapide que VBA. Les formules excels seraient donc toujours plus efficaces.
Peut-être de quoi faire changer d'avis à Thierry qui se déclare "pas partisan de faire écrire des formules en dur sur des cellules par VBA pour pouvoir exécuter une macro et les effacer ensuite... "

Bref, nous seront toujours loin derrière les reines de la formules (je pense bien sûr aux Celeda et autres Monique ainsi que celles dont je n'ai pas encore fait la connaissance sur le forum...), ce qu'en galants gentlemen nous acceptons de bon cœur, Mesdames.
 
@

@+Thierry

Guest
Salut Laurent

Je comprends tout à fait ta galanterie envers la junte féminine et c'est tout à ton honneur !

Mais il ne faut pas non arriver à finir par écrire un peu n'importe quoi dans ce fil. Entre Zon qui part dans le délire de masquer toutes les erreurs... Et toi maintenant qui laisse entendre que je pourrais changer d'avis pour ce que j'ai déjà écrit. non non non, suis une testa dura !! lol

Ce que tu as lu, tu ne sais plus où, c'est pour Excel tout seul ... VBA est un autre outil, complémentaire, il n'y a pas de "compétition" entre les deux... Ce que l'on pourrait faire en VBA qui serait déjà existant dans les fonctions intégrées d'Excel sera de toute façons moins rapide. C'est une évidence.

Mais par contre faire marcher VBA pour écrire des formules :
OUI si c'est pour éviter de se les "taper"dans des tâches récurrentes.
NON si c'est pour faire calculer Excel et tout effacer ensuite.
Ou alors c'est dans le cadre d'une solution alternative pour un "chti prog de dépan"

Et pour finir et pour aller en ton sens Laurent, il est certain, que sans nos Miss favorites (que tu as déjà sitées) et surtout leur patience et leur faculter de créer de si belles et efficaces formules que j'admire et suis incapable d'écrire ... Ce forum ne mériterait pas son nom d'Excel-Downloads....... Mais plutôt "Bidoullages-VBA-à-la-carte" lol

Bonne Nuit
@+Thierry
 
J

jon

Guest
Bonjour Thierry


comme l'outil de recherche fonctionne, cherche les messages contenant iif, et tu verras tout ce que j'ai pu ou qu'on a pu poster comme exemples intéressants avec cela.


ciao
stéphane
 
@

@+Thierry

Guest
Salut STéphane, le Fil, et le Forum

Oui IIF me renvoie 28 réponses depuis "toujours", c'est la preuve qu'on ne l'utilise pas bcp (ou pas assez!!!)... Et tu es dans presque tous les fils !! :)))

Merci encore
@+Thierry
 

Discussions similaires

Réponses
5
Affichages
382

Statistiques des forums

Discussions
312 492
Messages
2 088 925
Membres
103 984
dernier inscrit
maliko67