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 :

Modification formule par macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Par défaut Modification formule par macro
    Je souhaiterais remplacer la formule presente dans la cellule A1 (par exemple =B1/B2) par une formule du type :

    Etant donné que j'ai un gd nombre de cellules de ce type à modifier, est il possible de le faire par VBA ?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 120
    Par défaut
    Salut le forum

    A adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A5").Formula = "=IF(C1<>"""",C1,B1/B2)"
    Mytå_Qc

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Par défaut
    Désolé, je me suis mal exprimé.
    Les cellules de la colonne A contiennent, toutes des formules DIFFERENTES.
    Je souhaite qu'à ces cellules soit appliqué leur formule initiale seulement si la cellule adjacente en colonne B est vide, sinon je retiens pour ces cellules la valeur de la cellule adjacente :

    Contenu initial de la cellule :

    Contenu souhaité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI (cellule adjacente<>"";cellule adjacente;=maformule)

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour, et bienvenue sur les forums de DVP

    Dans ce cas, on peut analyser le problème en disant:
    Si la cellule adjacente n'est pas vide, on met la valeur de la cellule adjacente, sinon, on ne touche à rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Boucle()
        Dim Cellule As Range
     
        For Each Cellule In Range("a1:a3")
            If Cellule(1, 2) <> "" Then Cellule.Value = Cellule(1, 2).Value
        Next Cellule
    End Sub
    en adaptant la plage sur laquelle boucler.

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    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...
    ---------------

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Par défaut
    Non, ca ne va pas.
    les cellules en colonne B me servent à forcer TEMPORAIREMENT la valeur de la cellule adjacente en colonne A.
    Je souhaite donc qu'en effacant le contenu de la cellule en colonne B, la cellule en colonne A retrouve sa formule initiale.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu ne peux forcément pas avoir en A une formule qui pointe sur A. Cela s'appelle une référence circulaire. En clair, tu ne peux pas avoir en A1
    . Or, c'est ce que tu te proposes d'essayer de mettre en place avec une macro.

    Donc, tu dois stocker les contenus de A dans une autre feuille avant de les remplacer par les valeurs de B, pour pouvoir aller les rechercher lorsque tu vides B. Il te faut donc une feuille supplémentaire où stocker les valeurs de A.

    Après, il faudra jouer avec l'évènement CHANGE pour tester que l'on vide ou que l'on remplit B et stocker la valeur de A dans la feuille supplémentaire ou rapatrier l'ancienne valeur de A sauvegardée sur la feuille supplémentaire.

    Il n'y a pas d'autre solution que celle-là, à mon avis.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    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...
    ---------------

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

Discussions similaires

  1. Addition de différentes plages de cellules avec une formule par macro
    Par LaeticiaM dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/11/2014, 14h56
  2. [XL-2003] Problème de remplissage de formule par macro
    Par Ektha dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2010, 14h50
  3. [VBA][E-03] Modification de formules par Macro
    Par Jibicas dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/06/2008, 12h01
  4. Insertion de formule par macro
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/04/2008, 09h59
  5. Collage de la formule par macro
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/03/2008, 17h04

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