IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Ecrire un code


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    ouvrier
    Inscrit en
    Décembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 8
    Par défaut Ecrire un code
    Bonsoir le forum,

    Je vous sollicite pour l' écriture de mon code si vous voulez bien. Je ne veux pas utiliser l' enregistreur de macro car ça me permettra d' apprendre.
    Alors voilà: je voudrais faire ceci :

    1_ Ranger colonne BA dans l' ordre croissant de la ligne 1 à la ligne 16

    2_ Dans la plage BF 1 à BF 16 appliquer la formule suivante : =indirect("ba"&equiv(ay1;ay$1:ay$16;0);1)

    3_ convertir la plage j 1 à j 16 en valeurs

    4_ ranger colonne bb dans l' ordre croissant de la ligne 1 à la ligne 16

    5_ Dans la plage BG 1 à BG 16 appliquer la formule suivante: =indirect("bb"&equiv(ay1;ay$1:ay$16);0);1)

    6_ convertir colonne i 1 à i 16 en valeurs.

    Ce serait sympa de votre part et surtout n' omettez aucun détail dans la manière de procéder car je n' ai jamais écrit de code de ma vie.

    Merci d' avance à tous pour le temps que vous m' accorderez.

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour et bienvenu sur ce Forum,

    Quand je dis, modestement, "bienvenu", cela suppose un investissement minimum et préalable.

    Donc.
    Tu regardes le ost 20 de cette discussion pour un minimum de documentation
    Tu utilises l'enregistreur de macro.
    Tu comprends ton code
    Tu l'épures
    Tu reviens avec celui-ci

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par rudy231522 Voir le message
    Je vous sollicite pour l' écriture de mon code si vous voulez bien. Je ne veux pas utiliser l' enregistreur de macro car ça me permettra d' apprendre.
    Premièrement, le code généré par l'enregistreur de macro permet d'apprendre.
    Deuxièmement, ce n'est pas en demandant à d'autre d'écrire ton code sans avoir toi-même cherché qui te permettra d'apprendre.

    1_ Ranger colonne BA dans l' ordre croissant de la ligne 1 à la ligne 16
    Méthode Sort de l'objet Range.
    https://msdn.microsoft.com/fr-fr/lib...6(v=office.15)

    2_ Dans la plage BF 1 à BF 16 appliquer la formule suivante : =indirect("ba"&equiv(ay1;ay$1:ay$16;0);1)
    Propriété FormulaLocal de la plage Range concernée.
    https://msdn.microsoft.com/fr-fr/lib...1(v=office.15)

    3_ convertir la plage j 1 à j 16 en valeurs
    Méthode Copy puis PasteSpecial(xlPasteValues)
    https://msdn.microsoft.com/fr-fr/lib...0(v=office.15)
    https://msdn.microsoft.com/fr-fr/lib...6(v=office.15)

    4_ ranger colonne bb dans l' ordre croissant de la ligne 1 à la ligne 16
    5_ Dans la plage BG 1 à BG 16 appliquer la formule suivante: =indirect("bb"&equiv(ay1;ay$1:ay$16);0);1)
    6_ convertir colonne i 1 à i 16 en valeurs.
    Voir ci-dessus.

    je n' ai jamais écrit de code de ma vie.
    Dans ce cas, il serait préférable que tu commences par apprendre les bases : http://bidou.developpez.com/article/VBA/

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Oui.
    Menhir détaille mon post.

  5. #5
    Membre régulier
    Homme Profil pro
    ouvrier
    Inscrit en
    Décembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 8
    Par défaut
    Certes le code généré par l' enregistreur de macro permet d' apprendre et c' est ce que je me suis dit, sauf que j' y comprends rien et c' est normal s' il n' y a personne pour me guider. Vous, vous avez fait vos tous premiers pas tout seuls ? si tel est le cas nous n' avons pas tous les mêmes capacités. De plus en utilisant l' enregistreur de macros ce dernier pollue le code avec beaucoup de choses inutiles( propos recueillis ici-même sur ce forum); c'est sur cette base que vous voulez que j' apprenne ?

    Je m' étais seulement dit que je me baserais sur un début de code sain (que vous m' auriez écrit), que je l'aurais disséqué pour comprendre pas à pas chaque étape.

    Il aurait mieux valu que je vous demande si un de vous veut se faire rétribuer pour me sortir de ma galère; mais j' imagine que même en payant vous voudrez garder jalousement votre savoir pour vous.

    C'est quand même exaspérant de se faire traiter de fainéant à la moindre question posée, au moindre petit service demandé et ce par ceux qui sont prompts à répondre mais uniquement pour donner des leçons.


    Merci tout de même

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par rudy231522 Voir le message
    Certes le code généré par l' enregistreur de macro permet d' apprendre et c' est ce que je me suis dit, sauf que j' y comprends rien
    L'aide VBA est très bien faite : tu places ton curseur sur une un élément, tu appuies sur la touche F1 et tu obtiens les informations concernant cet élément : syntaxe, description, paramètres, membres, exemples, etc.

    et c' est normal s' il n' y a personne pour me guider.
    Je t'ai fourni un lien vers un tutoriel très bien conçu qui te permettra d'apprendre les bases.
    Encore faudrait-il le vouloir.

    Vous, vous avez fait vos tous premiers pas tout seuls ?
    Oui, en utilisant l'aide VBA, un tutoriel et l'enregistreur de macro.
    Mais chaque fois que j'utilise ce dernier, je vais voir dans l'aide VBA les éléments que je ne connais pas ou que je ne comprends pas pour systématiquement m'améliorer.

    si tel est le cas nous n' avons pas tous les mêmes capacités.
    ... ou la même volonté.

    De plus en utilisant l' enregistreur de macros ce dernier pollue le code avec beaucoup de choses inutiles( propos recueillis ici-même sur ce forum); c'est sur cette base que vous voulez que j' apprenne ?
    Avec l'aide VBA tu peux comprendre chaque élément du code et savoir ceux qui sont utiles et ceux qui ne le sont pas.
    Tu pourrais ainsi commencer à faire une version de ton code, même si elle n'est pas parfaite.
    Les membres de ce forum se feront ensuite un plaisir de te montrer comment l'améliorer.

    Mais te donner un code tout fait ne te permettra certainement pas de te former à ce langage.
    Un dicton confucéen est souvent répété sur ce forum : "donne un poisson à un homme qui a faim, tu le nourriras pour la journée. Apprends lui à pêcher, tu le nourrira pour la vie."
    Et ce n'est pas en mangeant un poisson donné qu'on apprend à pêcher.

    Il aurait mieux valu que je vous demande si un de vous veut se faire rétribuer pour me sortir de ma galère; mais j' imagine que même en payant vous voudrez garder jalousement votre savoir pour vous.
    Si nous voulions garder notre savoir pour nous, nous n'aurions aucun intérêt à venir sur ce forum.
    Idem si l'argent était notre motivation.
    Ce forum est un lieu de partage et d'apprentissage. Mais le partage implique que chacun vienne donner. La majorité des demandeur vient malheureusement uniquement pour prendre.

    C'est quand même exaspérant de se faire traiter de fainéant à la moindre question posée, au moindre petit service demandé et ce par ceux qui sont prompts à répondre mais uniquement pour donner des leçons.
    Il est tout aussi exaspérant pour ceux qui passent des heures à aider des demandeurs ici, de recevoir des leçons de la part de ceux qui se contentent d'y venir égoïstement pour prendre sans donner et commencent à monter sur leurs ergots dès qu'on a le malheur de suggérer que, peut-être, eux aussi pourraient participer à l'effort commun pour résoudre leur problème.

  7. #7
    Membre régulier
    Homme Profil pro
    ouvrier
    Inscrit en
    Décembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 8
    Par défaut
    Menhir je comprends tout à fait tes arguments et je vais te surprendre en te disant que tu as raison.
    Toutefois il faut différencier celui qui habituellement vient faire son marché sur le forum de celui qui vient demander une aide pour un problème unique( observe mon compteur de messages). Je m' explique: cette macro sera la seule dont j' aurai à me servir dans l' avenir, ce n' est pas une opération qui va se répéter. Sachant cela , est-ce utile pour moi de me lancer dans l' apprentissage du VBA ? Pour une seule macro ?

    Il est vrai que dans mon premier message j' ai dit vouloir apprendre et je l'ai dit car d' une part je m' attendais aux réponses que j' aies reçues, et d' autre part j' étais prêt à faire un minimum pour une aide en retour ( ce qui, je le conçois est tout à fait normal), mais encore une fois ce serait démesuré d' apprendre le VBA pour si peu .

    Je ne pense pas être un égoïste, c' est seulement que toutes les situations ne sont pas les mêmes.

    " Il est tout aussi exaspérant pour ceux qui passent des heures à aider des demandeurs ici, de recevoir des leçons de la part de ceux qui se contentent d'y venir égoïstement pour prendre sans donner et commencent à monter sur leurs ergots dès qu'on a le malheur de suggérer que, peut-être, eux aussi pourraient participer à l'effort commun pour résoudre leur problème "

    Désolé d' avoir moi aussi apporté mon lot d' ingratitude, c' était involontaire.

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Rudy231522
    Tout est peut-être dans la définition des mots :
    - le mot forum
    - le mot développeur
    - le mot échange
    Te viendrait-il à l'idée de participer, par exemple, à un forum de métiers de bouche pour demander la recette de la sauce béarnaise ? Non, n'est-ce-pas ?
    Il serait par contre tout-à-fait normal que tu t'y rendes, en tant que cuisinier, par exemple, pour discuter avec d'autres cuisiniers des difficultés qu'ils ont pu rencontrer pour faire une béarnaise et des avantages et inconvénients des différentes méthodes qu'ils ont pu tester (ce n'est pas la même chose que de demander qu'on t'écrive une recette, voire qu'on te fasse tout simplement cette sauce).
    Hé oui : un forum est un espace de discussions.
    voilà tout.
    Amitiés

  9. #9
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour à vous, Bonjour au Forum,

    Sans vouloir en rajouter à ce qui a été dit, et que je partage.
    Voici ce que j'écrivais récemment, en toute modestie.

    Bonjour à vous, Bonjour au Forum,

    Sans vouloir en rajouter sur ce qui a été évoqué sur les post précédents et que je partage à 100%.
    Voilà, Rudy, ce que j'écrivais récemment à un membre qui me posait cette question lors de cette discussion.

    une petite question philosophique, par où commencer pour apprendre vba ?
    Bonjour Eddine,

    Vaste sujet, s'il en est!

    Dans cette discussion, tu trouveras les liens vers les tutoriels fondamentaux

    En parallèle du 1er tutoriel, tu pourras regarder celui-ci:

    Les 1ers pas Editeur VBE

    Et sans oublier la FAQ Excel

    Mais VBA relève avant tout d'un état d'esprit.
    Penser aux actions que l'on souhaite voir s'exécuter et se demander si Excel tableur, bien formulé, ne suffirait pas.
    Pour ce faire, exposer clairement les étapes du développement (telle cellule de telle feuille copiée dans tel classeur sur telle feuille dans telle cellule).
    (ce qui revient en VBA à bien rattacher le objets)
    Une telle démarche suffit parfois. Il ne resterait alors qu'à la traduire.
    Une certaine rigueur si ce n'est une rigueur certaine : Déclarer obligatoirement ses variables (Voir Options du VBE). Et précisément (bannir à 95% les Variant)
    Si l'on fait appel au Forum, exposer clairement en 3 étapes
    - Ce que l'on cherche à obtenir
    - Le développement (code) effectué (obligatoire)
    - La problématique
    Fréquenter le Forum régulièrement pour en tirer le plus d'enseignements possibles.
    Mai attention! Ne pas croire que l'on devient rapidement un mercatog (que je salue au passage). Personnellement, j'en suis loin!
    Il faut construire sa formation.
    Depuis 10 ans, je me fabrique mon propre espace documentaire (Objets Range, Les dictionnaires...).
    C'est une suite de classeurs Excel et de documents Word dans lesquels je reporte les développements que je viens d'acquérir et qui me serviront. Je précise le lien de la discussion d'origine.
    Le dernier : utilisation de variable personnalisée (Type) dans une fonction (Unparia)

    Voilà, modestement exposés, quelques pistes.

    Je te souhaite une bonne continuation.

    A bientôt.
    Moi-même, il y a 9 ans, j'ai reçu quelques remises à l'ordre.
    Je ne m'en plains pas; Au contraire.

    J'en suis sûr. Si tu réfléchis à tout ce qui t'a été exposé, alors tu pourras progresser.
    Pour cela, certes, il faut de la volonté.

    En espérant t'avoir aidé.

  10. #10
    Membre régulier
    Homme Profil pro
    ouvrier
    Inscrit en
    Décembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 8
    Par défaut
    ok....ok....messieurs, mea culpa !! Une chose est certaine à présent: si j' envisageais une reconversion, assurément j' y arriverais avec tous vos conseils

    Quoiqu' il en soit j' ai résolu mon problème entre temps( grâce à vous je l' avoue).

    Je voudrais m' excuser auprès de tous ceux que j' ai offensés et vous félicite pour votre générosité, votre patience et surtout votre sang-froid face à des individus tels que moi

    Bonne continuation à vous et encore MERCI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecrire un code en plus court
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 18/10/2007, 10h33
  2. Ecrire le code C de la commande ls -i
    Par twiste dans le forum Linux
    Réponses: 5
    Dernier message: 30/09/2007, 19h20
  3. Ecrire un code VHDL à partir de Perl
    Par blaise4714 dans le forum VHDL
    Réponses: 1
    Dernier message: 19/06/2007, 15h32
  4. Comment ecrire du code sur plusieurs lignes?
    Par tooneygirl dans le forum Access
    Réponses: 5
    Dernier message: 15/06/2005, 17h03
  5. [VB.NET] Comment ecrire du code entre <title>
    Par ykane dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/05/2004, 17h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo