Top 50 des macros préférées des xldiens

GeoTrouvePas

XLDnaute Impliqué
Re : Top 50 des macros préférées des xldiens

Bonjour Misange, Houps collision, je viens juste de voir ton message ;)

Collisions dans tous les sens ce matin ! J'ai également raté ton message ! :p


En quoi utiliser les fonctions natives d'Excel en VBA n'est pas assimilable à du vrai code?
Loin de moi l'idée de considérer les fonctions natives comme du faux (ou mauvais) code. J'avais pris soin de mettre "vrai code" entre guillemets car j'avais justement peur que cela soit mal interprété.

Je voulais simplement dire que j'avais pris l'habitude de m'en passer par convention tout à fait personnelle et arbitraire.
Je n'avais d'ailleurs jamais pris en considération le temps d'exécution dans ce choix. Mais suite à ce sujet, je vais peut être revoir mes considérations sur ce point là. :rolleyes:
 

Misange

XLDnaute Barbatruc
Re : Top 50 des macros préférées des xldiens

Nous revenons là sur la discussion "formuliste" ou "vbaiste" :)
Les formules natives d'excel seront toujours plus rapides que du code VBA
mais du code VBA faisant appel aux fonctions intégrées d'excel sera toujours plus rapide que vba faisant appel à une macro perso qui fait la même chose. Les fonctions intégrées d'excel sont écrites en langage machine non interprété. Le code VBA est en langage interprété qui est beaucoup moins rapide.
C'est clair que quand on traite des petites plages de cellules on n'a aucune chance de percevoir la différence ou que celle-ci reste suffisamment faible pour qu'on s'en moque. En revanche dès qu'on commence à allonger le nombre de cellules traitées, on voit une sacré différence.
 

GeoTrouvePas

XLDnaute Impliqué
Re : Top 50 des macros préférées des xldiens

Tu as raisons Misange, on frise le troll là ! Mea Culpa ! Mea Culpa !

Pour me faire pardonner et revenir sur l'excellent sujet initié par Staple, je joins une petit classeur exemple de mes contrôles de saisie pour :
- Date
- Nombre entier
- Monétaire
- Nom (tout en majuscule)
- Prénom (première lettre en majuscule)

Il s'agit d'une petite réalisation qui remonte pour partie à mes débuts sur XLD.
Une partie seulement repose sur des modules de classe (faute de compétence à l'époque pour gérer les entrées / sorties sur les contrôles)

Je ne suis pas très fier de ce code qui est loin d'être optimisé (et qui contient peut être quelques absurdités (notamment dans la gestion des dates)) mais si ça peut servir à quelques personnes pas trop exigeantes....

A noter que j'y ai inclu mon petite système d'alerte en cas d'erreur. Mon but était de bloquer "au plus vite" une erreur de saisie (sans attendre la validation du formulaire par exemple) tout en évitant d'afficher un Msgbox que l'utilisateur devra valider.
 

Pièces jointes

  • Contrôles de saisie.xls
    89.5 KB · Affichages: 98
  • Contrôles de saisie.xls
    89.5 KB · Affichages: 93
  • Contrôles de saisie.xls
    89.5 KB · Affichages: 94

Staple1600

XLDnaute Barbatruc
Re : Top 50 des macros préférées des xldiens

Re

GeoTrouvePas
On a tous mouillé nos culottes avec Excel quand nous débutions ;)
La première vertu d'Excel c'est de nous offrir un vaste terrain de jeu et du plaisir ;)
Ensuite on a le droit de prendre la voie de l'orthodoxie ou de l'hérésie (voir un mix des deux comme moi) ;)
Donc ne dévalorises pas tes productions de jeunesse, et merci pour le partage.

Au fait, j'ai point compté, mais sommes-nous arrivés à 50 macros dans ce fil?

PS: Pour le fil, t’inquiètes pas, il était plein de poussières depuis 2006, il ne craint plus rien désormais.

EDIT: Je viens d'aller voir ta PJ. Ton code est loin d'être dans la moyenne des débutants en VBA !!!
Il est largement au dessus ;)
 
Dernière édition:

GeoTrouvePas

XLDnaute Impliqué
Re : Top 50 des macros préférées des xldiens

La première vertu d'Excel c'est de nous offrir un vaste terrain de jeu et du plaisir ;)
Rooooo j'aurai pas dit mieux ! Je suis à deux doigts de rajouter ça dans ma signature. C'est tout à fait la façon dont j'appréhende Excel.

Donc ne dévalorises pas tes productions de jeunesse, et merci pour le partage.
C'est ma quête permanente du code parfait qui me fait dire ça. Je pourrais me coucher chaque soir en étant content de mon travail et tout jeter (ou reprendre) le lendemain matin car ce n'est pas assez parfait ! C'est aussi ça Excel, on a toujours l'impression de faire mieux.

Au fait, j'ai point compté, mais sommes-nous arrivés à 50 macros dans ce fil?
A moins avis, on est loin du compte (surtout si on exclue les macros "humoristiques") et si ça ne tenait qu'à moi, je le renommerai immédiatement "Top 500000000 des macros préférées des xldiens".

EDIT: Je viens d'aller voir ta PJ. Ton code est loin d'être dans la moyenne des débutants en VBA !!! Il est largement au dessus ;)
Peu de remarques me font autant plaisir que ça ! Un grand merci à toi mais aussi à......... XLD !!!! Car même si je manie Excel depuis des années, c'est en venant sur XLD que j'ai trouvé des sources intéressantes, que j'ai étanché ma soif d'information et que j'ai trouvé des contributeurs généreux et doués qui m'ont réellement donné envie d'aller plus loin. Je ne prendrais surtout pas le risque de me lancer dans une énumération de peur d'oublier quelqu'un (je dirais juste que tu ne seras à la fin de cette liste que si on la classe par ordre alphabétique ^^).
 

Dugenou

XLDnaute Barbatruc
Re : Top 50 des macros préférées des xldiens

Re bonjour, le fil
je viens de trouver celle ci dans le fil des fonctions préférées et je ne m'en lasse pas !
merci brigitte !

Sub TextVoix()
Dim Sp As Object
On Error Resume Next
Set Sp = CreateObject("Sapi.SpVoice")
If Sp Is Nothing Then Exit Sub
Sp.Speak "hello, birgitt, gruiik"
End Sub

et là ou je meurs littéralement c'est que tu peux changer le texte !!!
 

Modeste geedee

XLDnaute Barbatruc
Re : Top 50 des macros préférées des xldiens

Bonsour®
Re bonjour, le fil
je viens de trouver celle ci dans le fil des fonctions préférées et je ne m'en lasse pas !

et là ou je meurs littéralement c'est que tu peux changer le texte !!!

et il cause français ???

:cool: Range.Speak, méthode (au moins depuis EXCEL 2007)
Cette méthode permet de présenter oralement les cellules de la plage par ligne ou par colonne.
Syntaxe :
expression.Speak(SensParler, FormulesParler)
expression Variable qui représente un objet Range.

Sub Macro1()
Range("A1").Activate
Range("A1").Speak
Range("A2").Activate
Range("A2").Speak
Range("A3").Activate
Range("A3").Speak
End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Top 50 des macros préférées des xldiens

Bonsoir.
Est c'est qu'il reconnait des signes de ponctuation ! Je suis soufflé !
VB:
Sp.Speak "No. No ? No !"
Oh, la crise de fou rire !
VB:
Sp.Speak "anticonsitutionnellement"
À +
 
Dernière édition:

Charly88

XLDnaute Occasionnel
Je remonte cette très bonne file, les nouveaux excelistes doivent connaître la merveille qui la clôture. Je vais coller en easter egg, ça va être ENORME !!
 

Statistiques des forums

Discussions
311 726
Messages
2 081 955
Membres
101 852
dernier inscrit
dthi16088