Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mémento sur la programmation en VBA pour EXCEL


Sujet :

Macros et VBA Excel

  1. #21
    Rédacteur

    Chers membres du club,

    j'ai le plaisir de vous présenter ce nouveau mémento consacré à la cryptologie en VBA : Tome 4 - Un algorithme de chiffrement/déchiffrement des cellules pour une meilleure confidentialité

    Vous découvrirez aussi l’application CryptoVBA qui vous permet de rendre des cellules illisibles pour un utilisateur n'étant pas dans la confidence, ou encore chiffrer un fichier ou un mail.

    Bonne lecture et n'hésitez pas à apporter vos commentaires.

    Retrouvez les meilleurs cours et tutoriels pour apprendre Microsoft Excel
    N'hésitez pas à consulter mon mémento sur la programmation en VBA pour EXCEL tome 1.
    Ou le tome 2 qui aborde la programmation en mode graphique avec un exemple de programmation d'un jeu d'arcade en VBA
    Et pour les curieux, le tome 3 qui aborde le problème du voyageur de commerce.
    Le tome 4 est consacré à la cryptologie en VBA et satisfera ceux qui ont besoin de confidentialité.
    Vous découvrirez dans le tome 5 les fonctions SQL pour gérer les tableaux de données et l'application Sentinelle qui veille sur vos fichiers.
    Le tome 6, dernier de la série, vous apprendra à créer des fonctions pour simplifier la vie des utilisateurs.
    Le Crible Quadratique donne toutes les fonctions pour les opérations sur les grands nombres en VBA.
    N'oubliez pas de consulter les FAQ EXCEL et les cours et tutoriels comme par exemple celui de Jean-Marc RABILLOUD qui est très complet.

  2. #22
    Membre régulier
    Merci pour ce nouvel opus

    Toujours aussi interessant

  3. #23
    Membre du Club
    Bonjour et merci pour cet excellent tuto. Très beau travail.

    J'utilise la version avec cryptoVBA.xlam pour mon projet et ça fonctionne plutôt bien.
    J'ai juste un comportement bizarre si j'intègre ou pas certaines colonnes de calculs.
    Si je ne les intègre pas dans la sélection, pas de problème. Je retrouve tous mes petits après déchiffrage.
    Si je les intègre, une fois déchiffrées, les formules sont exactement comme avant, mais certaines colonnes affichent #VALEUR!
    Je ne comprends pas pourquoi. Pour le moment, j'exclus ces colonnes de la plage a chiffrer mais je préfèrerais que tout soit chiffré.

    A ce propos, le fichier sera accessible par plusieurs personnes. J'aurais souhaité mettre un code individuel de manière à pouvoir exclure une personne n'ayant plus les droits mais je n'ai pas compris comment faire, ni même si c'était possible. Comment puis-je intégrer plusieurs clés avec .xlam ?

  4. #24
    Rédacteur

    Bonjour.
    Je te conseille d'ouvrir une discussion sur le forum EXCEL. Tu pourras joindre tes fichiers au format xlsx (pas de xlsm) et on pourra voir plus facilement ce qui bloque.
    N'hésitez pas à consulter mon mémento sur la programmation en VBA pour EXCEL tome 1.
    Ou le tome 2 qui aborde la programmation en mode graphique avec un exemple de programmation d'un jeu d'arcade en VBA
    Et pour les curieux, le tome 3 qui aborde le problème du voyageur de commerce.
    Le tome 4 est consacré à la cryptologie en VBA et satisfera ceux qui ont besoin de confidentialité.
    Vous découvrirez dans le tome 5 les fonctions SQL pour gérer les tableaux de données et l'application Sentinelle qui veille sur vos fichiers.
    Le tome 6, dernier de la série, vous apprendra à créer des fonctions pour simplifier la vie des utilisateurs.
    Le Crible Quadratique donne toutes les fonctions pour les opérations sur les grands nombres en VBA.
    N'oubliez pas de consulter les FAQ EXCEL et les cours et tutoriels comme par exemple celui de Jean-Marc RABILLOUD qui est très complet.

  5. #25
    Rédacteur

    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
    N'hésitez pas à consulter mon mémento sur la programmation en VBA pour EXCEL tome 1.
    Ou le tome 2 qui aborde la programmation en mode graphique avec un exemple de programmation d'un jeu d'arcade en VBA
    Et pour les curieux, le tome 3 qui aborde le problème du voyageur de commerce.
    Le tome 4 est consacré à la cryptologie en VBA et satisfera ceux qui ont besoin de confidentialité.
    Vous découvrirez dans le tome 5 les fonctions SQL pour gérer les tableaux de données et l'application Sentinelle qui veille sur vos fichiers.
    Le tome 6, dernier de la série, vous apprendra à créer des fonctions pour simplifier la vie des utilisateurs.
    Le Crible Quadratique donne toutes les fonctions pour les opérations sur les grands nombres en VBA.
    N'oubliez pas de consulter les FAQ EXCEL et les cours et tutoriels comme par exemple celui de Jean-Marc RABILLOUD qui est très complet.

  6. #26
    Expert confirmé
    Éviter l'emploi de Sheets à la place de Worksheets.
    Bonjour,

    Tout d'abord, un grand bravo pour ce travail qui permet de « découvrir les bases de la programmation en VBA ».

    je n'ai parcouru qu'une partie du Tome 1 et dans le second chapitre,
    je vois ce qui pour moi est une erreur fondamentale (quoique très fréquente) lorsqu'il s'agit apprentissage.
    Je suis surpris que personne ne l'ait signalée.
    Tu écris :
    La syntaxe respecte la logique suivante : Workbooks - Sheets - Range - Value = 15

    Alors qu'il faudrait écrire :
    La syntaxe respecte la logique suivante : Workbooks - Worksheets - Range - Value = 15

    En effet, l'objet Range et tous ceux qui représentent des cellules, n'appartiennent pas à un hypothétique objet Sheet (qui n'existe pas) mais bel et bien à l'objet Worksheet,
    renvoyé par Sheets() mais dans le cas où Sheets(xxx) représente un Chart, la syntaxe Sheets(xxx).Range(yyy) renvoie une erreur.
    Et bien évidemment, on retrouve cette anomalie dans les nombreux exemples de code qui suivent.

    Pour finir, toutes mes félicitations pour l'attention que tu as apporté à déclarer systématiquement les variables dans chaque exemple.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  7. #27
    Membre régulier
    ALEA.ENTRE.BORNES(0;10000) ==> Tome 1 P29/100
    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

  8. #28
    Expert confirmé
    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
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  9. #29
    Membre régulier
    Citation Envoyé par Patrice740 Voir le message
    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
    Merci bien Patrice, je croyais que c'est à écrire dans le programme
    Merci encore

  10. #30
    Membre régulier
    Bonjour Laurent,
    Est-ce qu'il existe des discussion spécialement sur une Tome ?
    Par exemple, discussion sur la TOME 1, ce qui permet aux autres ( surtout moi ) de poser des questions liées ???
    Par exemple dans la P40/100 de la TOME1, la code

    T = Timer: While T + 1 > Timer: Wend ' Attente 1 seconde l'envoi du message.
    Je ne comprends pas trop l'écriture de cette code, pourquoi elle permet d'attendre une seconde ?

    Merci d'avance
    Cdlt

  11. #31
    Rédacteur

    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.
    N'hésitez pas à consulter mon mémento sur la programmation en VBA pour EXCEL tome 1.
    Ou le tome 2 qui aborde la programmation en mode graphique avec un exemple de programmation d'un jeu d'arcade en VBA
    Et pour les curieux, le tome 3 qui aborde le problème du voyageur de commerce.
    Le tome 4 est consacré à la cryptologie en VBA et satisfera ceux qui ont besoin de confidentialité.
    Vous découvrirez dans le tome 5 les fonctions SQL pour gérer les tableaux de données et l'application Sentinelle qui veille sur vos fichiers.
    Le tome 6, dernier de la série, vous apprendra à créer des fonctions pour simplifier la vie des utilisateurs.
    Le Crible Quadratique donne toutes les fonctions pour les opérations sur les grands nombres en VBA.
    N'oubliez pas de consulter les FAQ EXCEL et les cours et tutoriels comme par exemple celui de Jean-Marc RABILLOUD qui est très complet.

  12. #32
    Membre du Club
    Merci beaucoup pour l'ensemble de ces tutoriels très enrichissants !

  13. #33
    Candidat au Club
    Remerciement
    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.

  14. #34
    Candidat au Club
    Pas mal, voir aussi...
    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.

  15. #35
    Rédacteur

    TOME 6
    Chers membres du club,

    J'ai le plaisir de vous présenter ce sixième mémento qui va vous apprendre la programmation de nouvelles fonctions Excel pour l'utilisateur.

    Ce sixième et dernier volet de cette hexalogie sur la programmation en VBA pour EXCEL explore un aspect qui n'a pas été souvent abordé dans les précédents mémentos : le développement de fonctions pour simplifier la vie des utilisateurs (et non plus des programmeurs).

    Un vaste sujet dont on peut difficilement faire le tour en quelques pages.
    Alors ici nous ne présenterons que le contour des techniques à utiliser. Rassurez-vous, il n'y a rien de bien compliqué, d'autant plus qu'Alice et Bob vous guideront au fil de votre lecture.
    Bonne lecture et n'hésitez pas à apporter vos commentaires



    Retrouvez les meilleurs cours et tutoriels pour apprendre Microsoft Excel
    N'hésitez pas à consulter mon mémento sur la programmation en VBA pour EXCEL tome 1.
    Ou le tome 2 qui aborde la programmation en mode graphique avec un exemple de programmation d'un jeu d'arcade en VBA
    Et pour les curieux, le tome 3 qui aborde le problème du voyageur de commerce.
    Le tome 4 est consacré à la cryptologie en VBA et satisfera ceux qui ont besoin de confidentialité.
    Vous découvrirez dans le tome 5 les fonctions SQL pour gérer les tableaux de données et l'application Sentinelle qui veille sur vos fichiers.
    Le tome 6, dernier de la série, vous apprendra à créer des fonctions pour simplifier la vie des utilisateurs.
    Le Crible Quadratique donne toutes les fonctions pour les opérations sur les grands nombres en VBA.
    N'oubliez pas de consulter les FAQ EXCEL et les cours et tutoriels comme par exemple celui de Jean-Marc RABILLOUD qui est très complet.

  16. #36
    Membre éclairé
    Bonjour Laurent,
    merci beaucoup pour ce mémento.
    C'est super.

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  17. #37
    Nouveau membre du Club
    Choix de la condition IF et du diviseur /
    Permettez-moi de vous remercier d'abord pour ces excellents documents.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    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 -Visualiser dans une fenêtre à part
    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?

  18. #38
    Rédacteur

    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.
    N'hésitez pas à consulter mon mémento sur la programmation en VBA pour EXCEL tome 1.
    Ou le tome 2 qui aborde la programmation en mode graphique avec un exemple de programmation d'un jeu d'arcade en VBA
    Et pour les curieux, le tome 3 qui aborde le problème du voyageur de commerce.
    Le tome 4 est consacré à la cryptologie en VBA et satisfera ceux qui ont besoin de confidentialité.
    Vous découvrirez dans le tome 5 les fonctions SQL pour gérer les tableaux de données et l'application Sentinelle qui veille sur vos fichiers.
    Le tome 6, dernier de la série, vous apprendra à créer des fonctions pour simplifier la vie des utilisateurs.
    Le Crible Quadratique donne toutes les fonctions pour les opérations sur les grands nombres en VBA.
    N'oubliez pas de consulter les FAQ EXCEL et les cours et tutoriels comme par exemple celui de Jean-Marc RABILLOUD qui est très complet.

  19. #39
    Nouveau membre du Club
    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.

  20. #40
    Rédacteur

    À noter qu'il y a encore plus rapide que SELECT CASE, c'est WHILE .... WEND, ou encore DO UNTIL ... LOOP
    J'utilise parfois cela dans l'algorithme QuickRanking.
    N'hésitez pas à consulter mon mémento sur la programmation en VBA pour EXCEL tome 1.
    Ou le tome 2 qui aborde la programmation en mode graphique avec un exemple de programmation d'un jeu d'arcade en VBA
    Et pour les curieux, le tome 3 qui aborde le problème du voyageur de commerce.
    Le tome 4 est consacré à la cryptologie en VBA et satisfera ceux qui ont besoin de confidentialité.
    Vous découvrirez dans le tome 5 les fonctions SQL pour gérer les tableaux de données et l'application Sentinelle qui veille sur vos fichiers.
    Le tome 6, dernier de la série, vous apprendra à créer des fonctions pour simplifier la vie des utilisateurs.
    Le Crible Quadratique donne toutes les fonctions pour les opérations sur les grands nombres en VBA.
    N'oubliez pas de consulter les FAQ EXCEL et les cours et tutoriels comme par exemple celui de Jean-Marc RABILLOUD qui est très complet.

###raw>template_hook.ano_emploi###