IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apprendre la programmation en VBA pour Excel par la pratique - Cinquième partie : protéger vos classeurs sensibles
Un tutoriel de Laurent OTT

Le , par laurent_ott

133PARTAGES

12  0 
Chers membres du club,

Bonjour. J’ai l’honneur de vous présenter un 5ème mémento consacré à la programmation en VBA pour EXCEL : Tome 5 : Sentinelle - Une application qui veille sur vos classeurs sensibles - Exemples d'utilisations des tableaux de données et des requêtes SQL en VBA

Cette fois nous étudierons l’utilisation des requêtes SQL pour manipuler les données d’une feuille de calculs.
Vous trouverez des fonctions prêtes à l’emploi ainsi qu’une application pour mettre en pratique les notions abordées.

Vous découvrirez que les requêtes SQL sont finalement très simples à utiliser et peuvent rendre de grands services aux programmeurs, en leur évitant l’écriture de nombreuses lignes de code.

N’hésitez pas à commenter cette documentation, et à nous faire partager votre expérience et vos connaissances.

Retrouvez les meilleurs cours et tutoriels pour apprendre Microsoft Excel

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de laurent_ott
Rédacteur https://www.developpez.com
Le 03/10/2018 à 15:59
Citation Envoyé par maliano20 Voir le message

Pourquoi vous avez préféré le IF au SELECT CASE? J'ai lu quelque part sur ce site que le second est plus rapide.
Par habitude de programmation, tout simplement (et tout bêtement) !
Je viens de tester et effectivement, SELECT CASE semble bien plus rapide que IF dans une boucle répétée plusieurs milliers de fois. Mais la différence est infime sur un appel ponctuel. En tout cas merci pour cette remarque, j'en tiendrai compte dans mes prochains programmes.

Citation Envoyé par maliano20 Voir le message

Pourquoi avoir utiliser le / en lieu et place du \? Étant donné qu'on a besoin de la partie entière de la division, le second n'est il pas plus rapide?
D'après mes tests, le second n'est pas plus rapide. Ici, comme la variable "Milieu" est déclarée Entier Long, la valeur calculée renvoyée sera toujours un entier (donc la partie entière), et donc pas besoin d'utiliser \ dans ce cas.
2  0 
Avatar de eriiic
Membre expert https://www.developpez.com
Le 04/10/2018 à 11:27
Bonjour,

Milieu = (Début + Fin) / 2
Pourquoi avoir utiliser le / en lieu et place du \? Étant donné qu'on a besoin de la partie entière de la division, le second n'est il pas plus rapide?
Attention que ces 2 opérateurs ne sont pas équivalents et substituables, les résultats peuvent être différents.
Avec Début = 1 et Fin = 6, soit une somme impaire :
(Début + Fin) / 2 = 3.5, qui sera arrondi à 4 lors de la conversion si Milieu est typé Entier
(Début + Fin) \ 2 = 3, résultat de la division entière, et restera à 3.
Il faut penser à en tenir compte.
eric
2  0 
Avatar de Patrice740
Expert confirmé https://www.developpez.com
Le 18/01/2018 à 18:05
Citation Envoyé par xingjing910 Voir le message
Bonjour Laurent,

Je suis une débutante dans EXCEL VBA et je suis en train de me former avec tes cours ==> Les cours sont supers bien, je te remercie de les partager

Je suis actuellement sur le thème tri des donnée. Dans TOME 1 P29/100, tu as parlé de la fonction ALEA.ENTRE.BORNES(0;10000) ==> Je n'arrive pas à trouver l'écriture correcte ...

==> Donc je ne sais pas l'utiliser pour remplir 10 000 cellules dans une colonne ...

Merci merci beaucoup
XJ
Il ne s'agit pas de VBA mais d'une formule à placer en A1 d'une feuille de calcul et à tirer jusqu'en A10000 :
=ALEA.ENTRE.BORNES(0;10000)

Edit : avec les raccourcis clavier, c'est plus simple de la placer en A10000 et de la copier jusqu'en A1
1  0 
Avatar de laurent_ott
Rédacteur https://www.developpez.com
Le 25/01/2018 à 18:27
Bonjour.
Tu peux ouvrir une discussion sur le forum EXCEL : https://www.developpez.net/forums/f6...ros-vba-excel/ en cliquant sur le bouton "ajouter une discussion" après t'être identifié(e).
Ou me contacter en messagerie privée : en cliquant sur mon nom. D'ailleurs tu constateras dans ton "tableau de bord", rubrique "boîte de réception", que j'avais répondu à ton précédent message.
Et tu y trouveras la réponse à cette nouvelle question.
A Bientôt.
1  0 
Avatar de Ojanen
Membre du Club https://www.developpez.com
Le 30/01/2018 à 14:04
Merci beaucoup pour l'ensemble de ces tutoriels très enrichissants !
1  0 
Avatar de Delludo
Candidat au Club https://www.developpez.com
Le 15/02/2018 à 18:41
Bonjour, merci beaucoup, je débute sur excel, cela fait une semaine que je me forme comme je peuux avec ce que je trouve sur internet et franchement votre Pdf est vraiment bien.
1  0 
Avatar de geoffm
Candidat au Club https://www.developpez.com
Le 06/04/2018 à 0:10
Je l'ai regardé en diagonale, ça semble pas mal ce guide.
Je n'ai plus besoin de lire un guide introductif mais moi ce qui m'a permis de décoller rapidement c'est le guide de Ben Beitler, http://www.excel-spreadsheet.com/vba/vbacode.htm
Très didactique et il va droit au but.
1  0 
Avatar de Filippo
Membre éclairé https://www.developpez.com
Le 18/09/2018 à 14:09
Bonjour Laurent,
merci beaucoup pour ce mémento.
C'est super.

1  0 
Avatar de maliano20
Nouveau membre du Club https://www.developpez.com
Le 03/10/2018 à 14:56
Permettez-moi de vous remercier d'abord pour ces excellents documents.
Code : Sélectionner tout
1
2
If ValRecherchée <= TabDonnées(Début) Then TableauRecherchePosition = Début: Exit Function
If ValRecherchée >= TabDonnées(Fin - 1) Then TableauRecherchePosition = Fin: Exit Function
Pourquoi vous avez préférer le IF au SELECT CASE? J'ai lu quelque part sur ce site que le second est plus rapide.

Code : Sélectionner tout
Milieu = (Début + Fin) / 2
Pourquoi avoir utiliser le / en lieu et place du \? Étant donné qu'on a besoin de la partie entière de la division, le second n'est il pas plus rapide?
1  0 
Avatar de maliano20
Nouveau membre du Club https://www.developpez.com
Le 03/10/2018 à 16:16
Citation Envoyé par laurent_ott Voir le message
Par habitude de programmation, tout simplement (et tout bêtement) !
Je viens de tester et effectivement, SELECT CASE semble bien plus rapide que IF dans une boucle répétée plusieurs milliers de fois. Mais la différence est infime sur un appel ponctuel. En tout cas merci pour cette remarque, j'en tiendrai compte dans mes prochains programmes.

D'après mes tests, le second n'est pas plus rapide. Ici, comme la variable "Milieu" est déclarée Entier Long, la valeur calculée renvoyée sera toujours un entier (donc la partie entière), et donc pas besoin d'utiliser \ dans ce cas.
Merci pour votre prompt réaction.
1  0