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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

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

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