Gérer les conditions et critères en VBA Excel
Вставка
- Опубліковано 3 гру 2024
- Cette formation VBA Excel apprend à gérer des critères et traiter des actions selon que la condition est vérifiée ou non grâce aux instructions If ElseIf. Nous partons d'un cas pratique sur le calcul de l'indice de masse corporelle. Nous gérons le bouton cliqué par l'utilisateur sur une boîte de dialogue MsgBox. Selon son choix, une action adaptée est enclenchée grâce à l'instruction if. Ce if permet aussi de gérer les incompatibilités de type potentielles au retour des InputBox. Nous augmentons le nombre de critères de l'instruction If grâce à la branche ElseIf afin d'envisager plus de cas et tirer partie de la puissance du code VBA Excel.
#ApprendreVBA
#VbaExcel
#ApplicationExcel
#ProgrammationExcel
La vidéo suivante, présente précisément les boîtes de dialogues en VBA :
• Les boîtes de dialogue...
Refaites l'exercice sur le site en suivant toute la démarche :
www.bonbache.f...
Bonjour à vous, merci pour ce tuto.
Il manquait le cas où la personne était en sous-poids, grace à vous j'ai pu faire les ajustements nécessaires pour ajouter cette option.
Top je pense que je vais très vite arriver à mon objectif en suivant vos tutos
Bonjour. Très heureux que ce sujet vous ait été utile. Merci à vous pour ce message.
Bonsoir, je débute dans la programmation VBA XLS en autodidacte, grâce à votre site et vos tutos je comprends et j'apprends sans difficultés c'est ma troisième vidéo c'est un vrai plaisirs de vous suivre même si des fois cela va un peu vite pour moi.
Merci pour tout.
Bonjour Stéphan, votre message est également un réel plaisir. Je suis ravi que vous appréciez ces formations et qu'elles vous soient utiles. Très bonne soirée à vous.
Merci beaucoup, votre travail m'a aidée pleinement et il est rare de trouver une explication aussi claire et facile à comprendre comme la votre, vos videos vont aidée des milliers d'autres personnes comme moi meme après des années de leurs sorties, merci encore une fois et bonne continuation à vous.
Bonjour Akram. Je suis très flatté par votre témoignage et je vous adresse mes plus sincères remerciements. Bien sûr, même des années après, le VBA est le VBA et d'ailleurs je continue de proposer de nouveaux sujets avec ce code merveilleux.
Bonjour,
Merci pour vos vidéos d'un grand professionnalisme
J'ai détesté les cours de VBA à l'université, avec vos vidéos c'est un plaisir !
Très bonne continuation à vous
Et merci beaucoup à vous pour ce retour qui procure une grande satisfaction.
C'est excellent ! un plaisir de vous lire et entendre vos cours. Un step by step bien pédagogique. Merci mille fois pour le partage de ces belles démonstrations !
Bonjour Philippe, merci beaucoup pour ce message en retour.
Bonjour
Un grand merci et bravo pour votre travail de pédagogie absolument formidable, simple clair et adapté au novice que je suis.
Encore merci.
Bien à vous
Bonjour David, à mon tour de vous remercier pour avoir pris le temps de faire un message aussi agréable.
superbe vidéo et très bien expliquer que j'ai bien réussie je me suis pris au jeu et je vais essayer de faire la liste des 48 vidéos .la prochaine que je vais essayer de faire le distributeur de billet qui c'est peu être que que je vais en avoir . merci monsieur ROSSETTI pour c'est explication très bien détailler.MICHEL
Bonjour Michel, je suis ravi que ces sujets vous plaisent et que vous envisagiez de les étudier dans l'ordre. Vous prendrez du plaisir et je vous remercie infiniment pour vos témoignages.
Excellente formation ! Claire et Concise, continuez ainsi !
ça fait plaisir. Merci beaucoup pour ce retour.
Très pédagogique. Merci beaucoup.bon de joindre le lien afin de pouvoir l'exercice par nous mêmes
Et encore merci à vous d'offrir ce genre de retour
Du bon boulot
Je vous en prie Damien. Merci à vous pour ce message.
Vidéo super compréhensible et claire.
Je m'intéresse de plus en plus au VBA, j'ai acheté 3 livres mais j'ai du mal quand ce n'est pas interactif.
Merci donc Stéphane !
Petit bémol : si l'utilisateur veut annuler la procédure, cela ne fonctionne pas avec le code en l'état...
Sinon super les videos pendant le confinement, j'attaque les autres
Merci beaucoup R. Ait pour ce message et votre intérêt. Oui, il faut gérer le cas du bouton Annuler, exemple :
...
Dim temp As Variant
temp = InputBox("Prix au litre du carburant ?")
If (temp = "") Then Exit Sub
prix_litre = temp
...
SVP j'ai une question: pourquoi est ce que quand j'arrive à 10:31 Excel me donne, après la saisie du poids et taille, Erreur '6': Dépassement de capacité.
Bonjour Ismail. La raison qui explique cette erreur est que vos variables ne sont pas correctement typées pour recevoir les données ou encore que vos saisies ne sont pas conformes pour recevoir des nombres, comme avec l'insertion d'un point par exemple qui transforme la donnée en texte alors que la variable attend un nombre.
Merci beaucoup !!
Je vous en prie BADR EL ABIED. Merci à vous pour ce message.
Bravo
Merci François.
woaah merci beacoup ;c top:)
Merci beaucoup Ghost Aka
Merci. Parfait ! (...sauf pour moi qui ne voulais pas savoir que je suis en surpoids ;-))
😁 C'est un plaisir Marcus. Merci pour ce message.
Très intéressant moi j’espère bientôt utiliser les fonctions classique de excel mais en Vba :p de rechercheV a index !
Merci à vous.
Bonjour Stéphanne un grand merci pour vos tuto au demeurant super bien expliquée. J ai rencontré un problème au niveau du curseur qui ne bouge pas.
J ai bien mis range("A8:T8") ="" si j ai bien compris à la ligne A8 jusqu'à T8 déplacement
cells(8 , imc - 17 ) = 4, 26) ligne 8 - 17 pour commencer à 18 prendre le curseur en Z4😮 4ème ligne et 26ème colonnes pour leZ mais rien ne bouge 😢 je suis bloqué. En attendant votre réponse je tiens à vous remercier pour l excellence de vos tuto
Salutations Yves
Bonjour Yves. Pardonnez-moi, je passe rapidement en cette fin de journée de Mercredi étant données les nombreuses sollicitations auxquelles je dois répondre. Je vous invite à suivre scrupuleusement le pas à pas détaillé donné à cette adresse :
www.bonbache.fr/gerer-les-conditions-et-criteres-en-vba-excel-120.html
Tout le code VBA strict y est fourni.
Je vous remercie pour toutes vos vidéos sur la manipulation du VBA Stéphane. J'ai une question relative à cette vidéo : si possible, pourriez-vous nous montrer comment on crée les curseurs ? Merci :)
Je vous en prie Manambina. Merci à vous pour ce message. Pour le curseur, vous maintenez la touche Alt enfoncée, vous tapez le nombre 31 et vous relâchez la touche Alt.
@ merci 😊
@@manambinaramilison7889 Je vous en prie.
Bonjour, super vidéo qui nous aides beaucoup, j'aurais au moins une question , peut on changer la police des boite de dialogue?
Bonjour Alain et merci beaucoup pour votre message. Comme l'indique leur nom, il s'agit de boîtes de dialogue standards. Elles sont donc régies par le système et héritent de la police définie pour ce dernier. Il est donc possible de changer globalement cette police. Il doit aussi être possible de piloter une classe pour gérer ces attributs spécifiques.
Bonjour Mr Rossetti,
Comment empêcher l'utilisateur d'encoder des taille et/ou poids "irréalistes" (ex: 190 cm et 20 kg) qui pourraient entraîner des messages d'erreur ou sortir des limites que nous nous sommes fixés au départ (IMC 18-37)
Autre point, lorsque je veux annuler un encodage dans une des boites de dialogue ou tout simplement fermer la fenêtre, excel m'en empêche...
Merci pour votre retour.
Bonjour Polo. Pour les limites, il suffit de poser des tests (If) en amont sur les valeurs saisies et à réfuter la poursuite du code si elles sont jugées farfelues. Le bouton Annuler d'une boîte de dialogue est sanctionné par une valeur numérique en retour qu'il s'agit de stocker dans une variable. Si cette valeur correspond au bouton annuler, il faut sortir de la procédure (Exit Sub).
Bonjour, tout d'abord un très grand merci pour tout le travail que vous faîtes, pour ma part c'est d'une très grande utilité et bien plus compréhensible et pratique que les quelques cours que j'ai eu sur VBA. Les applications sont très parlantes et l'apprentissage se fait facilement.
J'ai cependant une petite question. Je pars d'un classeur entièrement vierge, j'ai réalisé la bande/tableau IMC et la code tourne sans problème. Par contre, je ne sais pas intégrer le curseur en cellule Z4. J'ai crée une "forme", mais elle n'est pas reprise. Que dois-je insérer pour que le curseur soit correctement repris ? Si vous aviez un petit conseil :) Merci beaucoup
Bonjour Thomas et merci beaucoup pour votre message. Le curseur dont vous parlez est en fait un caractère réalisé par un code ASCII. Il est grossit par la taille de la police. Ainsi vous simplifiez la manipulation pour le code VBA qui n'a qu'à répliquer le contenu de la cellule. Il ne s'agit pas d'un objet à part entière. Un code ASCII consiste à taper un nombre, tout en maintenant la touche Alt du clavier enfoncée, exemple : ALT + 4 : ♦, ALT + 5 : ♣, ALT + 6 : ♠ etc...
Super, un grand merci pour votre retour et votre rapidité. Bonne journée à vous.
Je vous en prie Thomas.
Bonjour M. Rossetti, tout d'abord merci pour la qualité de vos explications ! Il est très agréable de vous suivre pas à pas pour réaliser ces petites macros. J'ai toutefois rencontré un problème en voulant affecter le bouton à ma macro vers la fin de la vidéo, excel m'a retourné le message "cette formule est trop compliquée pour être affectée à un objet", et pour l'instant je ne vois pas comment le contourner. Avez-vous des solutions ?
Bonjour Pedro. Merci beaucoup pour votre intérêt. Votre souci est tout à fait surprenant. Il me fait plutôt penser à une erreur interne d'Excel. Je suppose que vous avez testé la procédure sans le bouton et qu'elle fonctionne parfaitement ?
@ Oui, aucun problème avec la procédure en exécutant avec F5.
@@pedrolino8679 Il semblerait que ce soit un problème de liaison. Vous devriez répliquer le code sur un autre classeur. Si le problème existe toujours, cela signifie qu'une librairie est manquante ou corrompue. Dès lors, une réparation d'Excel serait à entrevoir.
@ Effectivement, en copiant-collant le code dans un autre classeur, j'ai pu affecter ma macro au bouton sans problème. Je vais cependant investiguer un peu plus loin comme ce souci est récurrent et que je n'en connais pas la (ou les) cause profonde. Je vous remercie pour votre réponse rapide et une nouvelle fois, pour la qualité de vos vidéos (il ne me manque que tu temps pour découvrir !)
@@pedrolino8679 C'est votre classeur qui avait un souci, une corruption du fichier à l'enregistrement sans doute. En tous cas, bravo pour la résolution.
Bonjour et bravo pour vos tutos très bien expliqués.
j'essai de refaire l'exercice a partir de votre formation ,mais je bloque à cet endroit:
If (imc
Bonjour Joel et merci pour votre message. Je ne vois pas d'erreur de syntaxe a priori si ce n'est l'espace qui manque après la parenthèse fermante pour séparer le Then.
@ voila le message d'erreur apres avoir mis un espace apres la parenthese:expected end of statement !!!
@@joelsoinard Je viens de voir votre erreur mais il fallait la trouver. Vous n'avez pas écrit le ElseIf correctement. Il me semble que vous utilisez le chiffre 1 à la place de la lettre I en majuscule.
@ Bonsoir Stéphane et merci pour votre réaction: en fait j'ai employé le terme ( elself pour elseIf) vous avez vu juste, encore merci, le langage codé ne tolère aucune fantaisie!!!
@@joelsoinard Oui tout à fait, les termes des expressions sont stricts.
bonjour ou bonsoir, je viens de tomber sur cette video et c'est formidable. mais pour créer le curseur c'est comment? merci
Bonjour et merci beaucoup pour votre message. Il s'agit d'un code Ascii généré au clavier par la combinaison de la touches Alt et d'un nombre. Il est donné dans le classeur source offert au téléchargement à cette adresse :
www.bonbache.fr/gerer-les-conditions-et-criteres-en-vba-excel-120.html
Bonjour M. Rosseti,
merci beaucoup pour vos vidéos qui me permettent enfin de me mettre au VBA, c'est très clair. En ayant bien déclaré l'imc en tant que Double et en ayant bien fait poids/taille puis imc/taille, j'avais une erreur d'exécution 6 : dépassement de capacité. L'erreur se trouvait dans mes deux fonctions If : j'avais écris tampon = taille et tampon=poids au lieu de taille=tampon et poids=tampon. Maintenant que j'ai corrigé ça fonctionne très bien. Mais pourquoi cela entrainait une erreur de capacité ?
Merci de votre retour,
Bonne journée,
Bonjour LaSandSand et merci pour votre message. Bravo pour la correction. Le type String est celui qui peut le plus. Donc, le dépassement de capacité ne doit pas intervenir. Cependant, à ce stade du développement, les variables Taille et Poids ne sont pas encore affectées. En tant que variables numériques, elles sont considérées comme nulles. Or, un String peut être vide ("") mais ne peut pas être nul (Null).
Ok j'ai compris, Merci beaucoup !
Je vous en prie LaSandSand
Excellent tuto ! j'ai juste un petit souci avec la taille, en effet mon code "laisse passer" les points et les virgules comme chiffre (mais rejete les lettres). Cela vient peut-etre de ma version d'excel? (americaine)
Bonjour Christopher, en version américaine le code est identique dans son interprétation ce qui n'est pas le cas d'une feuille Excel qui, dans votre cas, va considérer le séparateur de décimales grâce au point et non grâce à la virgule. Le souci que vous évoquez dans votre code est tout à fait étrange. Je pencherais plutôt pour des instructions incorrectes.
@ Bonjour, j'ai le même "soucis" que Christopher L, dans la taille, les "." et les "," sont laissé passer par le code mais pas dans le poids alors que le code pour le poids a été copier-coller du code de la taille. Mystère xD.
Bonjour prof, merci pour vos tutoriels, j'ai remarqué que la variable tampon qui est de type string considère le vide comme une chaine de caractères et lorsqu' au moment de l'exécution de la macro, si je souhaite plutôt annuler, je recois un message d'erreur.
Bonjour Jordane et merci pour votre message. La variable tampon si elle n'est pas encore affectée vaut Null et n'est pas considérée comme vide. Si malgré l'annulation, vous tentez d'affecter le contenu de l'InputBox, cela signifie que vous avez omis de mettre fin au programme dans l'instruction conditionnelle (Exit Sub).
Rossetti Stéphane la puissance, gros c'est la puissance, merci beaucoup
Bonjour. Tout d'abord, merci pour les tutoriels: très bon moyen de s'approprier le langage VBA. Je voulais savoir quelle serait l'erreur de coder le calcul de l'imc de façon suivante:
imc = poids/(taille/100)^2
De plus, en déclarant imc As Integer, ma réponse est déjà arrondie en entier.
Je sais que ce que je fais n'est pas "dans les normes" mais les résultats sont bons tout de même. En quoi ces deux "erreurs" pourraient nuire à l'avenir?
Bonjour Sébastien. Merci beaucoup pour votre message. Votre méthode est très bonne au contraire. Elle permet d'économiser des lignes de code. C'est pour la bonne compréhension que je l'ai décomposée dans cette formation qui est l'un des premiers volets sur l'apprentissage du VBA Excel.
Bonsoir monsieur Stéphane, merci pour cette belle formation.
Par ailleurs, j'ai un petit projet sur excel mais techniquement je ne sais pas vraiment comment démarrer
Le cahier des charges est constitué de deux feuilles excel. Et on voudrait que lorsqu'on fait une mise à jour de la première que cela se répercute sur la deuxième qui est constituée de graphiques.
Bonjour Bienvenue Soubapé Nawan. Il suffit peut être de lier les cellules de la seconde feuille à la première par calculs (=). C'est l’essence même d'Excel. Les graphiques s'adapteront d'eux mêmes aux variations de données.
@ Tout à fait.
Mais les fonctionnalités attendues sont au delà de la liaison.
Malheureusement, la plate-forme ne me permet pas de vous partager le fichier.
Sous votre permission, je voudrais savoir si je peux vous le partager et votre adresse e-mail.
Merci de votre collaboration habituelle.
@@bienvenuesoubabenawan Je n'aurai pas l'occasion de me plonger dans votre fichier. Je reçois d'innombrables demandes chaque jour avec fichier joint. Il m'est impossible de m'impliquer pour chacun faute de temps. Je suis sincèrement désolé et j'espère que vous comprendrez.
@ Oui, en effet je vous comprends.
Merci pour votre disponibilité
Bonsoir M.Rossetti ! Je suis débutant en VBA et grâce à vos tutoriels et explications je commence à comprendre petit à petit, Merci beaucoup.
En essayant de refaire cet exercice , j'ai trouvé un problème au niveau de calcul de l'IMC, lorsque je clique sur f5 ça me donne un message d'erreur d'exécution ( dépassement de capacité), je ne sais pas au niveau de quelle partie j'ai commis l'erreur ? voici le programme :
Sub Calcul_IMC()
Dim debut As Byte: Dim Taille As Byte: Dim Poids As Byte: Dim reglage As String: Dim IMC As Single
debut = MsgBox("Bienvenue sur ce test IMC, voulez vous continuez ?", vbYesNo + vbInformation, "WELCOME")
If debut = 7 Then
Exit Sub
Else
debut = MsgBox("On continue")
End If
la_taille:
reglage = InputBox("Quelle est votre taille en cm ?", "La taille")
If (IsNumeric(reglage)) Then
reglage = Taille
Else
MsgBox ("Erreur de saisie, veuillez entrer un nombre entier !")
GoTo la_taille:
End If
le_poids:
reglage = InputBox("Quel est votre poids en kg ?", "Le poids")
If (IsNumeric(reglage)) Then
reglage = Poids
Else
MsgBox ("Erreur de saisie, veuillez entrer un nombre entier !")
GoTo le_poids:
End If
IMC = Poids / Taille
IMC = IMC / Taille
IMC = IMC * 10000
IMC = Round(IMC, 1)
MsgBox (IMC)
Bonjour Hamza Belari, tout d'abord merci pour votre message. Le dépassement de capacité signifie qu'on tente d'affecter dans une variable une valeur trop grande par rapport à son dimensionnement lors de la déclaration. En lisant rapidement le code que vous me suggérez, je ne vois pas d'erreur grossière a priori. Lorsque l'erreur surgit, il est intéressant de cliquer sur Déboguer. Ainsi l'éditeur VBA met en surbrillance la ligne incriminée, ce qui nous aiderait grandement à résoudre le problème.
Merci pour votre réponse, malheureusement le message d’erreur contient que ok et Aide, j’ai essayé de voir avec l’outil d’aide d’Excel, mais il n’y a pas grand chose .
Je viens de regarder votre code plus attentivement. Las variables poids et taille ne sont en fait jamais affectée d'où l'erreur. Il y a deux lignes à inverser : reglage = Taille par Taille = reglage et reglage = Poids par Poids = reglage
Ah oui, je n’est pas fait attention. Merci beaucoup pour vos explications et votre temps.
Je vous en prie.
bonjour, mon curseur ne bouge pas. Je n 'ai pas écris des chiffres en dessous des rectangles. cela peu etre a cause de ca que mon curseurs ne s'affiche pas ?
Bonjour, non c'est qu'il doit subsister un léger souci dans le code que je vous invite à reprendre avec le pas à pas détaillé à cette adresse :
www.bonbache.fr/gerer-les-conditions-et-criteres-en-vba-excel-120.html
bonjour monsieur SVP comment atteindre la dernière cellule non vide dans une feuille avec le code VBA excel ? merci
Bonjour, il faut utiliser la méthode SpecialCells de l'objet Cells :
der_colonne = Cells.SpecialCells(xlCellTypeLastCell).Column
der_ligne = Cells.SpecialCells(xlCellTypeLastCell).Row
Comme indiqué dans cette formation qui réalise la détection automatique des bornes des tableaux pour les traiter :
www.bonbache.fr/boucles-for-next-en-vba-excel-pour-traitements-automatises-125.html
Comment avez-vous conçu la feuille de l'IMC avec le curseur?
Bonjour Monsieur. Il s'agit d'un code Ascii réalisé au clavier ALT + 31. Mais on peut aussi le générer par les caractères spéciaux.
Bonjour monsieur Stéphane et merci pour votre réponse.
Je vais chercher comment ça se fait avec les caractères spéciaux et vous reviendrai
@@bienvenuesoubabenawan Il suffit de changer les polices pour trouver les caractères qui vous conviennent. Mais le raccourci que je vous ai donné fonctionne très bien.
@ En effet le raccourci marche.
Merci beaucoup
@@bienvenuesoubabenawan Je vous en prie.
Bonjour,
Lorsque je cré une macro seule la couleur de cellule ne s'affiche pas !
Bonjour Alain. Je ne comprends pas bien votre question en lien avec cette formation.
bonsoir !! parcontre si on met 1,80 dans l'inputbox ca passe parceque la variable tampon ne gere pas cela peut-etre !!
Bonsoir, vous avez tout à fait raison car le test If (IsNumeric()) vérifie seulement si la valeur est numérique et la décimale en français est bien la virgule, ce qui signifie qu'il faut réaliser un test VBA pour vérifier si le nombre saisi est bien un entier. Par exemple if(int(variable)=variable). Tout est possible dès lors qu'il s'agit de code en VBA. Merci à vous pour votre message.
bonjour Rossetti Stéphane, encore un excellent Tuto je me lance dans la programmation VBA c'est vraiment magnifique ce qu'on peut faire avec ma question est comment faire pour avoir le fameux curseur j'ai pas compris c'est quoi ? c'est un symbole ? car j'ai vu qu'il s'affiche dans la barre a formule merci encore pour tout.
Bonjour Wafaa Azzouni, je soutiens votre décision, cette formation va vous donner des compétences supplémentaires très intéressantes. Ce curseur est un caractère spécial réalisé par une combinaison de touches que l'on appelle code ASCII. Il est proposé par défaut dans le classeur source à récupérer à cette adresse : www.bonbache.fr/gerer-les-conditions-et-criteres-en-vba-excel-120.html
merci @ bon fin de journée
Est ce que vous pouvez me donnez la combinaison du code ASCII ?
Je ne m'en souviens plus précisément, il faut enfoncer la touche ALT, réaliser une succession de chiffres et relâcher la touche ALT. Essayez ne serait ce qu'avec les premiers chiffres, vous verrez c'est surprenant.
pour le triangle
vers le haut : alt 30
vers le bas : alt 31
vers la droite : alt 16
vers la gauche : alt 17
pour les autres symbole voici le lien : fsymbols.com/keyboard/windows/alt-codes/list/shortcuts/
super formation je suis fan merci pour votre travail
Bonjour j ai une question est ce vous avez une idee comment faire la gestion de projet avec vb
Bonjour votre question est vague. Tout est possible en VB. Il faut d'abord construire un cahier des charges, tenir compte des équipes, des deadline, des objectifs et délais. Ensuite, tous les évènements se gèrent facilement. Donc, il est tout à fait possible de construire des tableaux de bord dynamiques, rendant compte des avancées, des retards, des tâches finalisées, comme le propose MS project.
@ je veux faire un projet et je dois calculer combien de temps il me faut avec vb est ce que tu peux m aider
J'aimerais vous aider mais je reçois un très grand nombre de demandes d'aide chaque jour. Il m'est impossible d'y répondre. J'essaie de conserver du temps pour proposer ces formations. Je suis sincèrement désolé.
@ merci beaucoup je peux attandre quelques jours
ça ne changera rien pour moi malheureusement, je n'aurai pas plus le temps. Une fois encore, je suis désolé.
SVP prof la fonction IsNumeric ne marche pas avec moi peu tu es me donne des explication
Bonjour Khettal boualem, difficile de vous en dire plus dans la mesure où votre problème semble vague. La fonction IsNumeric est une fonction VBA qui fonctionne dans tous les cas. Lorsque vous ouvrez la parenthèse après l'avoir saisie, obtenez vous bien l'info bulle vous informant du paramètre à renseigner. Ici, nous l'utilisons pour tester la saisie de l'utilisateur de retour de l'InputBox car le traitement ne peut se poursuivre si la donnée n'est pas numérique, ce que teste cette fonction.
j'ai bien compris le tuto mais quand je saisie la fonction IsNumeric et après que j'ouvre la parenthèse l'info bulle n’appris pas
Très surprenant, votre classeur est il bien enregistré avec prise en charge des macros (xlsm) ? La référence Visual Basic For Applications est elle bien cochée dans Outils/Références ? Avez-vous vérifié la sécurité des macros dans votre ruban Développeur ? En dernier recours, il est possible qu'une librairie soit manquante et que l'installation d'Office soit défaillante, car VBA est actif par défaut pour les projets Excel.
merci maintenant c'est ok après l'enregistrement du documents
Bonsoir cher maître ! Difficile de suivre ce tuto, car le "curseur" n'a pas disparu, et que la suite m'a paru difficile à entreprendre ! Trop d'erreur j'ai dû commettre, ce qui fait que je dois tous refaire....Comment avez-vous placé le curseur et comment doit-il disparaître ?? Merci ....
Bonsoir George, le curseur disparaît simplement en effaçant la plage de cellules : Range("Cellule_depart:cellule_arrivee").value="". Car le curseur est en fait un code Ascii, donc considéré comme du texte, et il réapparaît en fonction du résultat donné par le calcul de l'IMC arrondi pour le faire correspondre avec la cellule. Si vous refaites scrupuleusement les étapes énoncées par le cas pratique du site : www.bonbache.fr/gerer-les-conditions-et-criteres-en-vba-excel-120.html vous êtes sûr d'y arriver. Je pense que c'est moins simple avec seulement la vidéo pour le VBA. Je vous souhaite une bonne soirée George
Et oui, c'est super !! Je voulais le faire de moi-même sans aide....aie ! J'ai donc repris la pratique sur votre site. J'avais oublié le code Ascii, pourtant inséré dans bien des cas pour mon travail, avec la boîte de "Symbole" !! C'est le "q" pour l'envers, et le "p" pour l'endroit !Voilà, j'ai enfin réussi, et réparer "mes erreurs" !! Encore une fois, je vous remercie pour votre intervention, et vous souhaite une excellente soirée !!
Bonjour George, je suis satisfait que vous ayez trouvé le souci. Je me doutais bien que vous étiez passé un peu vite sur certaines explications. Comme toujours, c'est à moi de vous remercier pour vos retours.
bonjour, c'est encore moi cette fois-ci sur cette vidéo désolé encore mais j'ai suivi pas à pas vos explications sur votre site mais ma vba ne prend pas en compte le calcul elle s'arrête après avoir rempli le poids et la taille ensuite elle s'arrête
Bonsoir, cela signifie que la suite du code ne s'exécute pas et qu'une instruction doit empêcher l'enchaînement. Pourriez-vous copier votre code ici pour en avoir le coeur net ? Je ne pourrai pas vous répondre tout de suite à cause du planning mais j'essaierai de revenir assez vite.
Sub controlePoids()
Dim taille As Byte: Dim poids As Byte: Dim tampon As Double
la_taille:
tampon = InputBox(" Quelle est votre taille (en cm) ?", "Votre taille")
If (IsNumeric(tampon)) Then
taille = tampon
Else
MsgBox "La taille doit être saisie en cm, ex. 1,80 m = 180"
GoTo la_taille:
End If
le_poids:
tampon = InputBox(" Quel est votre poids ( en kg) ?", " votre poids")
If (IsNumeric(tampon)) Then
poid = tampon
Else
MsgBox "Le poids doit etre un nombre entier ! "
GoTo le_poids:
End If
imc = poids / taille
imc = imc / taille
imc = imc * 10000
imc = Round(imc, 1)
End Sub
merci à vous ne vous inquiétez pas ce n'est pas une urgence
Le code tel que je le lis, réceptionne bien les valeurs saisies par l'utilisateur dans les variables taille et poids. Puis il effectue le calcul mais n'en fait rien visuellement. Celui-ci doit être correct mais il vous manque la suite, celle qui exploite ce résultat pour déplacer le curseur sur la courbe notamment :
If (imc
Bonjour ou bonsoir, je suis fan comme beaucoup apparemment. j'ai suivi à la lettre votre tuto mais je suis bloqué au niveau du calcul de l'imc par un message d'erreur "erreur d'exécution 6" dépassement de capacité. sujet dont vous avez parlé plus avant dans la vidéo. Quelqu'un peut m'aider. On en sait jamais, Mr Rossetti est peut-être en vacances à l'heure actuelle et je ne voudrais pas le déranger :)
Merci à vous pour votre aide.
Et continuez Mr Rossetti, vos tutos sont géniaux ;)
Bonjour Beyo yobe et merci infiniment pour votre message si agréable. Le dépassement de capacité est symptomatique. Il indique que vous tentez d'affecter à une variable une valeur trop grande. Il peut s'agir du résultat du calcul de l'IMC. Votre variable doit sans doute est typée autrement. Je vous suggère de suivre le pas à pas détaillé à cette adresse :
www.bonbache.fr/gerer-les-conditions-et-criteres-en-vba-excel-120.html
Tout le code y est donné.
@ Bonjour, Ok je tente ça. Merci de votre retour aussi rapide. Bon week-end.
@ Merci, c'est bon :)
J'ai ajouté le code pour l imc morbide (ajout d'une cellulle morbide (8,38))
If (Cells(8, imc - 17).Value
Merci beaucoup Ghost Aka pour cette contribution.
@ c grâce à votre enseignement merci
@@ghostaka7405 C'est un honneur