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 :

Introduire une formule par code VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    réceptionnaire
    Inscrit en
    avril 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : réceptionnaire
    Secteur : Distribution

    Informations forums :
    Inscription : avril 2021
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Introduire une formule par code VBA
    Bonjour à tous, je suis nouvellement inscrit pour soumettre un problème concernant l'utilisation d'Excel et du VBA, pour insérer dans une cellule précise une fonction grâce à une macro. Je suis plutôt débutant en matière de VBA. Pour automatiser certaines tâches dans un classeur xlsm, macros que j'ai créé. Je cherche à récupérer le texte d'une cellule E6 dans laquelle ce texte est obtenu par formule Concatener. J'ai donc pour ce faire essayer une nouvelle macro. Tout fonctionne, sauf le fait qu' ayant utilisé l'enregistreur de macros Excel, la formule écrite dans cette nouvelle macro reste figée, au niveau de la plage de recherche. (explication dans le fichier xlsx joint). Mon classeur me sert à inventorier des produits, et à chaque nouvel inventaire, j'ai besoin de récupérer les valeurs du mois précédent par rechercheV. Le problème, s'est qu'une colonne est créée tous les mois et cela fait donc changer la plage de recherche. La colonne E (fin de plage) devient F le mois suivant. Je pense qu'il doit être possible au lancement de la macro d'avoir une variable à saisir, qui permettrait de modifier la plage de recherche, et donc le numéro de colonne à retourner.
    Voici le texte brut de cette macro "changement de mois"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
      Sub ChangM()
    ' ChangM Macro
    ' changer la plage de recherche
     
    '
        Range("E6").Select
        Selection.Copy
        Range("J8").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-7],Precinvent!R2C1:R47C17,17,FALSE)"
        Range("J8").Select
        Selection.AutoFill Destination:=Range("J8:J67")
        Range("J8:J67").Select
        ActiveWindow.SmallScroll Down:=15
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 148
    Points : 49 407
    Points
    49 407
    Billets dans le blog
    92
    Par défaut
    Salut.

    Perso, je transformerais la plage des anciens inventaires en tableau structuré (C'est toujours mieux de travailler avec des tableaux structurés).

    Nom : 2021-04-07_202329.png
Affichages : 16
Taille : 12,0 Ko



    Du coup, tu pourrais utiliser la fonction COLONNES(...) pour récupérer l'index de la dernière colonne.

    Nom : 2021-04-07_202346.png
Affichages : 16
Taille : 7,9 Ko




    sur le fond, je n'organiserais pas mes données ainsi, car la ligne d'intitulés de ton tableau contient en fait des données "métier" qui devraient être placée dans une colonne dudit tableau. Mais c'est un autre débat pour l'instant.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Remplir une table par Code VBA
    Par Om Lebnet dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/11/2018, 13h43
  2. [XL-2010] Traduire une formule en code VBA
    Par thomasdu40 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/07/2012, 09h39
  3. [XL-2007] Ajouter une formule par code
    Par Nanais19 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/11/2011, 09h29
  4. Ajout d'une formule par code vba
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/05/2011, 09h50
  5. Acces aux fonctions d'une DLL par code VBA
    Par GlamIS dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/09/2010, 15h59

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