Pourquoi penser que son code VBA est le programme en soi ?

Pour parler de tout et n'importe quoi
Avatar du membre
Ausecour
Membre impliqué
Membre impliqué
Messages : 2'991
Appréciations reçues : 314
Inscrit le : 31 mai 2018
Version d'Excel : 2010 FR, 2013 FR

Message par Ausecour » 17 août 2018, 16:04

MFerrand a écrit :
17 août 2018, 15:48
Bonjour jmd, Salut à tous !

Tu soulèves un réel problème, qui repose sur le fait que (sauf exceptions naturellement, et fort heureusement il y en a ! :) ) les débutants en macro commencent à utiliser des macros sans même connaître ce qu'est exactement une macro... On peut repartir sur de bonnes bases dès lors que l'intéressé se sera lui-même persuadé qu'il est utile pour utiliser un outil de commencer par apprendre à s'en servir ! :mrgreen:

Et en second lieu mais c'est lié, que pour manipuler des fonctionnalités Excel avec VBA, il faut d'abord savoir s'en servir sans VBA...

Pour rester centré sur le problème posé au départ, lorsqu'il s'agit de répondre sur une erreur apparue lors de l'exécution du code, il est possible de la solutionner hors communication du fichier s'il s'agit d'une erreur de syntaxe VB... Le problème est que le demandeur n'est pas en mesure de faire la distinction...

[Je poursuivrai plus tard, on m'appelle pour partir... :) ]
Bonne journée à tous.
Bonjour à tous,

Très intéressante comme question,

Je suis totalement d'accord avec M.Ferrand sur les points qu'il a soulevé, il arrive souvent que certains demandent comment faire quelque chose sous VBA avant de se demander si c'est possible sur Excel, ce qui est un vrai problème... Personnellement je ne me suis lancé sur VBA qu'une fois que je savais à peu près utiliser Excel (je ne parle pas des formules de statistique que je n'utilise jamais mais bien des formules de recherche, de manipulation de texte, les sommeprod avec des conditions, les formules matricielles, l'ensemble des fonctionnalités d'Excel...).

Pour la pédagogie je dois avouer que je fais en fonction du candidat, si je vois que le post est soigné, le problème bien expliqué, que la personne se montre intéressée, je suis plutôt prêt à expliquer et c'est parfois ce que je fais. En revanche, si je vois le contraire, je fais une réponse simple sans aller loin, parce que je me doute que la personne prendra juste le fichier et fermera la page...

Mais pour revenir sur le sujet principal, à savoir :
"les utilisateurs font du code pensant que ce code peut vivre en dehors du fichier Excel où il agit"

Si on en revient à la base du programme VBA, c'est un programme qui manipule des objets (feuilles, cellules, contrôles....), et sans voir ces objets via le fichier qui les contient, on fait des devinettes, les réponses que l'on fournit manquent de précision, voir on ne comprend pas ce que la personne nous demande car on se retrouve avec des :
If Range(machin) = truc

Et comme on ne sait pas dans quelle feuille on est, ce que contient le Range, on ne peut pas répondre de façon optimale... VBA ne peut pas fonctionner sans Excel, car il intervient dessus en permanence... Alors certes les fichiers peuvent contenir des virus, mais sans un fichier on ne peut pas travailler dans de bonnes conditions...

Bonne journée à tous :)
1 membre du forum aime ce message.
Plus un sujet a un titre précis, des explications claires, et un fichier Excel bien préparé, plus il a de chances d'avoir une réponse qui répond au besoin, mettez toutes les chances de votre côté :bien:
"100% des gagnants auront tenté leur chance" :trfl:
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'958
Appréciations reçues : 32
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 17 août 2018, 18:53

Bonjour à tous...
personnellement je me refuse de faire un fichier test pour pouvoir exécuter un code... si la personne ne peux pas donner un fichier car il contient des données confidentielles, je demande un fichier avec des valeurs bidons. mais gardant la même architecture...
le problème d'excel (ou de la suite bureautique MSO de manière générale) est qu'elle est tellement puissante que le commun des mortels l'utilise a 5% de ses capacités...(et encore je penses que je suis large...) il est très difficile d'être expert dans ces logiciels.
Maintenant il est vrai que, si on souhaite faire du VBA, encore faut-il se poser la question dans un premier temps si c'est déjà faisable avec excel seul... car a priori ton ce que l'on peut faire avec excel est "automatisable" avec du VBA.
Fred
Je ne réponds pas aux M.P. non sollicités.
Fred
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'659
Appréciations reçues : 249
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 17 août 2018, 19:13

salut à tous

fred : qu'est-ce que Excel seul ? car sa définition varie dans le temps

pour moi par exemple, sur la dernière version, Power Query et Power Pivot sont dans Excel*, alors que Power Query est aussi dans Power BI !

Excel est à géométrie variable :mrgreen:

* ce n'était pas tout à fait vrai il y a qq années, il fallait télcharger PQuery, et PPivot était réservé aux versions chères.
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'958
Appréciations reçues : 32
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 18 août 2018, 14:27

Bonjour a tous
@jmd quand je parle de "excel seul" c'est sans les add-ons.. perso j'ai utilisé exclusivement la version 2007 très longtemps (à la maison et au boulot) j'ai eut accès à la version 2013 au boulot depuis 2 ans environ... et une opportunité avec le boulot de O365 depuis 4 mois...
parlant de Pquery, comme je l'ai indiqué dans un post auquel tu répondais... c'était un add-on qui est intégré aux dernières versions d'office mais il faut encore l'activer... (et donc savoir que cela existe aussi... donc pour le commun des mortels ne savent pas que cela existe...)
j'ai de la chance, car j'ai pas mal de collègues qui utilisent encore la version d'office 2003..... voir encore une version antérieure.... (encore sous XP......)

je vais essayé de me former un peu à cet outil... j'ai commencé à voir quelques vidéos formations d'une personne de MVP cela l'air super puissant... je vais essayé de découvrir ce nouvel outils qui a pourtant déjà presque 10 ans d’existence.... mais dans ma vie pro je ne suis pas sur que cet outil me servira souvent ... mais on a jamais fini d'apprendre....
A+
Fred
Je ne réponds pas aux M.P. non sollicités.
Fred
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'659
Appréciations reçues : 249
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 18 août 2018, 15:18

resalut Fred

teste aussi (surtout ! ) Power BI Desktop gratuit
ne dépend pas de ton Excel, et contient aussi PQuery

à toi le big data, l'IA et les bases diverses et variées (y compris Excel :mrgreen: )
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'689
Appréciations reçues : 646
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 18 août 2018, 20:31

Bonjour jmd,

titre de ce sujet : « Pourquoi penser que son code VBA est le programme en soi ? »

1) il n'y a que de très rares exceptions  où le code VBA se suffit à lui-même : il n'a besoin d'aucune des données de la feuille pour faire son travail ; voici quelques exemples simples :

* message informatif à l'ouverture du classeur :
Private Sub Workbook_Open()
  MsgBox "Bienvenue dans cette application X"
End Sub
* message informatif dans une sub classique :
Private Sub AideJeuSolitaire()
  MsgBox "Vous devez sauter par-dessus un pion pour le manger"
End Sub
(ou affichage d'un formulaire pour un texte plus long)

* utilisation d'un formulaire « autonome » :

a) formulaire qui affiche du texte et c'est tout, comme mentionné ci-dessus

b) formulaire avec saisie de donnée et affichage de résultat ; exemples simples de conversion : saisir un montant en francs et le convertir en euros ; saisir une température en °C et la convertir en °F ; une TextBox de saisie de la donnée de base ; affichage du résultat dans un Label ou via MsgBox ; c'est autonome, car y'a aucun besoin de lire les données présentes sur la feuille.

2) dans la très grande majorité des cas, les données sont sur la feuille de calcul, et le code VBA est très étroitement lié à ces données ; il doit notamment utiliser leur position : référence de la cellule ou de la plage de cellules ; s'il y a un objet comme un tableau structuré (ListObject), il doit d'abord y faire référence par son nom ou par son index afin de pouvoir le manipuler.

bien sûr, il faut aussi référencer la bonne feuille de calcul ; mais référencer la feuille de calcul est facultatif si d'après le contexte, on est sûr que ça va agir sur la feuille active.

dans ton énoncé initial, tu a écrit : avez-vous remarqué combien de questions sur ce forum son posées sous cette forme :
"j'ai un bug dans mon VBA. Vous trouverez ci-dessous le code"
et on lit le code dans le message, mais aucun fichier n'est joint !

mon impression : les utilisateurs font du code pensant que ce code peut vivre en dehors du fichier Excel où il agit
* il y a les déjà les erreurs de compilation : une mauvaise syntaxe peut être corrigée sans voir la feuille de calcul ; une variable mal orthographiée ou non déclarée peuvent aussi être corrigées sans voir la feuille.

* il y a aussi les erreurs d'exécution : c'est plus difficile à corriger, mais le message d'erreur lui-même peut aider ; donc quand un demandeur dit simplement « ça marche pas », c'est insuffisant : faut plus d'infos ! en particulier le texte exact du message d'erreur, et la ligne de code qui a été mise en évidence en jaune dans le code VBA (mais il n'y a pas forcément de ligne en jaune, et même si elle est présente, l'erreur ne provient pas forcément de cette ligne : la cause de l'erreur peut être plus en amont dans le code)

* il y a aussi des erreurs qui sont ni des erreurs de compilation, ni des erreurs de plantage lors de l'exécution : c'est tout simplement quand la macro ne fournit pas les résultats attendus ; exemple : la macro a soustrait la TVA au lieu de l'additionner ! le programme est bien gentil, mais comme chacun sait, la TVA est un impôt en plus, pas en moins !  :P

quand un demandeur indique son code VBA sans fournir son fichier :

* son code peut être corrigé sans voir la feuille de calcul (plus ou moins facilement), et il le sait (ou il le suppose)

* souvent, il pense à tort qu'on connaît son classeur aussi bien que lui, ou qu'on est à côté de lui, devant son écran et son clavier ; et il ne pense pas à indiquer ce qui est pour lui une évidence, mais pas pour les lecteurs de son post

* ça peut être un simple oubli d'avoir transmis le fichier ou son lien de téléchargement.  :wink:  (clin d'œil pour les demandeurs étourdis qui ont fait cet oubli, et n'ont pas pensé à cliquer sur le bouton Aperçu pour vérifier le contenu de leur post)

* il y a aussi les demandeurs qui ne savent pas comment joindre un fichier ; je leur rappelle qu'il suffit d'utiliser le bouton « Ajouter des fichiers » qui est situé sous la fenêtre d'édition du post ; si le fichier ne passe pas car sa taille est trop grosse, il faut déposer le fichier sur un site de partage de fichiers tel que mon-partage.fr (gratuit) ; attention : il y aura un lien de téléchargement à copier / coller dans le prochain post du forum ; n'utilisez pas cjoint.com  pour les fichiers .xlsm : ils sont mal acceptés : le code VBA ne passe pas !

comme on n'a pas le fichier, on est donc souvent obligé d'essayer de deviner les infos manquantes, à la seule lecture du code VBA et / ou des autres infos du post ; mais si l'erreur vient d'une donnée mal saisie ou non conforme, d'un format de cellule inadéquat, d'un espace en trop dans une donnée ou un nom d'onglet, etc... comment faire ? c'est là où il vaut bien mieux avoir le fichier !

dhany
1 membre du forum aime ce message.
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'659
Appréciations reçues : 249
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 19 août 2018, 09:18

salut dhany

tu as fait une analyse très détaillée des différents problèmes tant en programmation qu'en forumation (néologisme pour "science des forums" )

on pourrait, en inversant chaque phrase (mettre "il faut" quand tu écris "on constate" ) , en faire un mode d'emploi du forum à l'usage des débutants. Il complèterait bien la charte actuelle.

belle analyse !
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'689
Appréciations reçues : 646
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 19 août 2018, 09:34

@jmd

j'ai bien lu ta réponse ; merci pour ton retour !  :D

dhany
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message