Apprendre La Programmation En VBA Pour EXCEL Par La Pratique

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 ! Le 3 juillet 2016 à 00:15, par laurent_ott52 commentaires

93PARTAGES

37 1
Bonjour, Je vous propose ce mémento sur la programmation en VBA pour Excel. Il s'agit d'une compilation d'exemples pratiques pour apprendre la programmation en Microsoft Office Excel avec VBA. Vous allez aussi apprendre des exemples d'Excel avec les autres composants de Microsoft Office tels que Outlook et Access.C'est un cours qui peut servir de support de formation pratique pour apprendre la programmation VBA sous Microsoft Office Excel. Les exemples sont en Excel 2010, mais peuvent être adaptés pour les versions récentes : Excel 2013 et Excel 2016. Bonne lecture et n'hésitez pas à apporter vos commentaires. Retrouvez les meilleurs cours et tutoriels pour apprendre Microsoft Excel Vous avez lu gratuitement 34 articles depuis plus d'un an.Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

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

Votre nom : Votre e-mail : Décrivez l'erreur que vous souhaitez porter à notre connaissance : 52 commentaires Commenter Signaler un problème Les mieux notés Les plus récents Ordre chronologique laurent_ott Avatar de laurent_ott Rédacteur https://www.developpez.com Le 17/07/2016 à 14:26 Pour plus d'informations sur la compatibilité des API avec windows 64 bits je vous invite à lire l'excellente documentation de Thierry Gasperment : Développer avec office 64 bits. Cordialement.
5 0
joe.levrai Avatar de joe.levrai Expert éminent sénior https://www.developpez.com Le 21/10/2016 à 17:47 J'en ai retrouvé une !sujet complet : http://www.developpez.net/forums/d15...ode-sharpname/l'exemple : http://www.developpez.net/forums/d15...e/#post8597076
3 0
laurent_ott 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
eriiic 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
laurent_ott Avatar de laurent_ott Rédacteur https://www.developpez.com Le 22/08/2016 à 15:01 Si nous parlons du même code :
Code : Sélectionner tout
12345678910111213141516171819202122232425262728293031Option Explicit Dim MesBonbon As Long ' Variable numérique qui contiendra le nombre de bonbons Dim MesScoubidou As Long ' Variable numérique qui contiendra le nombre de scoubidous Sub CompterLeCartable() Call CompterPoche(3) ' Alimente MesBonbon et MesScoubidou MsgBox "J'ai " & MesBonbon & " bonbons et " _ & MesScoubidou & " scoubidous dans mon cartable." End Sub Function CompterPoche(MaColonne As Long) As Long Dim Ligne As Long ' Variable numérique pour balayer les lignes de la feuille. Ligne = 1 ' Initialise Ligne à 1 MesBonbon = 0: MesScoubidou = 0 ' Variables mises à zéro par sécurité. While Cells(Ligne, MaColonne) <> "" ' Tant que cellule(y,x) n'est pas vide. CompterPoche = CompterPoche + 1 ' Incrémente le nombre d'éléments trouvés. If Cells(Ligne, MaColonne) = "x" Then NbBonbon = NbBonbon + 1 ' Les bonbons. If Cells(Ligne, MaColonne) = "s" Then NbScoubidou = NbScoubidou + 1 ' Les scoubidous. Ligne = Ligne + 1 ' Passe à la ligne suivante. Wend End Function
Les variables MesBonbon et MesScoubidou sont déclarées en début du module :
Code : Sélectionner tout
12Dim MesBonbon As Long ' Variable numérique qui contiendra le nombre de bonbons Dim MesScoubidou As Long ' Variable numérique qui contiendra le nombre de scoubidous
Par cette déclaration en début du module, la portée des variables s'étend à l'ensemble des procédures du module.
1 0
digilisyl Avatar de digilisyl Candidat au Club https://www.developpez.com Le 04/10/2016 à 12:50 Bonjour Je débute également avec VBA, et suis pas à pas ce tuto très intéressantEn fait, le problème soulevé par Bernardassyst vient des lignes 25 et 26 : Il faut renommer les variables NbBonbon et NbScoubidou (que l'on avait créées précédemment comme argument facultatif pour modifier la fonction CompterPoche) en : MesBonbon et MesScoubidou, qui elles, sont bien déclarées. Cela donne :
Code : Sélectionner tout
12345678While Cells(Ligne, MaColonne) <> "" ' Tant que cellule(y,x) n'est pas vide. CompterPoche = CompterPoche + 1 ' Incrémente le nombre d'éléments trouvés. If Cells(Ligne, MaColonne) = "x" Then MesBonbon = MesBonbon + 1 ' Les bonbons. If Cells(Ligne, MaColonne) = "s" Then MesScoubidou = MesScoubidou + 1 ' Les scoubidous. Ligne = Ligne + 1 ' Passe à la ligne suivante. Wend
Et là, ça refonctionne !(sauf erreur ou omission... )
1 0
joe.levrai Avatar de joe.levrai Expert éminent sénior https://www.developpez.com Le 21/10/2016 à 16:04 Bonjour, bravo pour ce travail de pédagogie et concentration de "l'essentiel pour débuter efficacement".je n'ai encore que partiellement parcouru le Tome 1 (et du coup pas encore lu le Tome 2 non plus)mais un point n'est pas en accord avec ma façon de voir l'apprentisation de programmation VBAdans le chapitre II Prérequis, il est écrit Un objet peut avoir une propriété par défaut. Par exemple la propriété Value pour l'objet Range. Dans ce cas il n'est pas nécessaire de saisir cette propriété. Et Range("A1" = 15 équivaut à Range("A1".Value = 15 Cela me semble dangereux, sur un tutoriel dont la vocation principale est tournée vers les débutants, de leur donner cette pratique, à la fois "non conforme aux règles de l'art", mais surtout laissant à VBA la libre interprétation de la bonne propriété en fonction du contexte. en effet, débat déjà abordé dans plusieurs sujets de la section VBA Excel : dans certaines situation, c'est le propriété .Text qui sera prise par défaut. Et là clairement, on est plus sur le même type de variable (.Text = ce qui est affiché dans la cellule, .Value = ce qui est affiché dans la barre de formule pour simplifier grandement) De quoi rendre chauve un débutant qui ne va pas réussir à déboggerJ'avais laissé quelques exemples sur le forum, mais je ne retrouve plus les messages
1 0
Marc-L Avatar de Marc-L Expert éminent sénior https://www.developpez.com Le 21/10/2016 à 16:16 Bonjour !Je confirme : Range n'a pas de propriété par défaut !Souvent VBA sélectionne Value mais selon le contexte il arrive parfois à la propriété Text d'être choisie, j'en connais encore se les mordant (au choix !) en ayant buté plusieurs jours sans spécifier de propriété ! _________________________________________________________________________________________________________Je suis Paris, Nice, Bruxelles, Charlie, …
1 0
Marc-L Avatar de Marc-L Expert éminent sénior https://www.developpez.com Le 21/10/2016 à 17:07 Idem pour moi … Si le constat de la propriété Text à la place de Value est rare - on s'en aperçoit qu'en cas de souci - j'ai quand même rencontré ce cas plusieurs fois !
1 0
laurent_ott Avatar de laurent_ott Rédacteur https://www.developpez.com Le 13/10/2017 à 11:18 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.
1 0
Commenter Signaler un problème Discussion Discussion forum Connexion

Tag » Apprendre Excel Vba