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 :

Souci dans une macro de copie de formule dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Simplificateur de vie de mes collègues
    Inscrit en
    Août 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Simplificateur de vie de mes collègues
    Secteur : Finance

    Informations forums :
    Inscription : Août 2018
    Messages : 2
    Par défaut Souci dans une macro de copie de formule dans une cellule
    Bonjour à tous,

    J'ai développé une macro de check de donnée entre 2 colonnes mais il m'arrive un truc bizarre...
    Je dois enlever 8 à mon compteur pour avoir la formule que je désire.
    Le truc qui me surprend c'est qu'en mode debug j'ai la formule qui change à un step mais je ne comprends pas pourquoi.

    Si quelqu'un peut m'aider.

    Voici mon code :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    -----------------------------------------------------------------------------------
    i_glass = 2
    Content = "Change à terme"
    Content2 = Cells(i_glass, 9).Value
    Do Until Content = Content2
        Cells(i_glass, 9).Select
        i_glass = i_glass + 1
        Content2 = Cells(i_glass, 9).Value
    Loop
     
    'Je cherche i_glass dans ma colonne pour savoir ou commence ma formule
    ------------------------------------------------------------------------------------
     
     
    'Database.Activate
    i_glass = i_glass - 8
    'Ici j'enlève 8 pour que ma formule soit "fausse"
     
    Formula = "=IF(Glass!R[" & i_glass & Database.Cells(4, 6).Value & i_glass & Database.Cells(6, 6).Value & i_glass & Database.Cells(8, 6).Value _
              & i_glass & Database.Cells(10, 6).Value & i_glass & Database.Cells(12, 6).Value & i_glass & Database.Cells(14, 6).Value
    Formula2 = "=IF(RC6="""";"""";Glass!R[" & i_glass & Database.Cells(4, 12)
    Formula3 = "=IF(RC6="""";"""";Glass!R[" & i_glass & Database.Cells(4, 15)
     
    Overview.Activate
    Range("F8:H159").Select
    Selection.ClearContents
    Application.ReferenceStyle = xlR1C1
    Cells(8, 6).Select
    Cells(8, 6).FormulaR1C1Local = Formula
    Cells(8, 7).FormulaR1C1Local = Formula2
    Cells(8, 8).FormulaR1C1Local = Formula3
    Cells(8, 6).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Range("F9:i159").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Application.ReferenceStyle = xlA1
    Et ici ma formule devient juste avec les 8 de plus que j'ai retiré au début de mon code.

    J'ai défini mon i_glass en integer
    mes formula"s" en string

    Je l'ai testé sur mes différents fichiers et ce - 8 fait que cela fonctionne pour tous.
    J'aimerai bien comprendre ce que je dois changer pour ne plus avoir ce - 8 !!

    Merci à tous.
    Nico

  2. #2
    Membre chevronné
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 214
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    i_glass=2
    ...
    i_glass = i_glass - 8
    Formula = "=IF(Glass!R[" & i_glass &...
    ...
    Cells(8, 6).FormulaR1C1Local = Formula
     
    'soit
    Cells(8, 6).FormulaR1C1Local = "=IF(Glass!R[-6 &...  
    'donc
     
    Cells(8,5) commence par faire un test sur la ligne 2 de la feuille glass
    le probleme est que R[x] represente un décalage de ligne par rapport a la ligne ou on met la formule
    tu peux ecrire un n° de ligne fixe avec Rx


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Formula = "=IF(Glass!R" & i_glass &...

  3. #3
    Candidat au Club
    Homme Profil pro
    Simplificateur de vie de mes collègues
    Inscrit en
    Août 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Simplificateur de vie de mes collègues
    Secteur : Finance

    Informations forums :
    Inscription : Août 2018
    Messages : 2
    Par défaut
    Merci Sogedic de ta réponse,

    Le problème c'est qu'en fonction de mon client, sur mon onglet Glass, la valeur "Change à terme" se trouve toujours en colonne 9, mais pour la ligne c'est assez aléatoire et cela change d'une semaine sur l'autre en fonction des achats ventes faite dans le portefeuille.

    Ce que je ne comprends pas c'est que ma boucle trouve bien la cellule ou est ma "Content" et stocke bien la valeur.
    Mais entre le moment ou je mets la valeur formula dans la cellule et la fin de la macro, la valeur i_glass à bouger de 8.
    Et pour tous les clients et toutes les semaines ou j'ai fait mon test.

    C'est pour ca que j'ai mis i_glass = i_glass - 8 !!
    Mais pourquoi 8 et ou est-ce qu'excel trouve 8 incréments dans ma macro ??
    Mystère...


    Comment tu as fait pour numéroter les lignes de codes ??
    J'ai voulu le faire mais pas réussi...


    Merci.
    Nico

Discussions similaires

  1. Inputer une formule dans la colonne d'un tableau importé via une macro
    Par Arone77 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 17/09/2016, 21h34
  2. Déclencher une Macro par copie de données dans une feuille
    Par dafchap dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/04/2016, 20h21
  3. [XL-2003] Macro pour copie de valeurs d'une feuille dans une autre
    Par lili189 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/10/2012, 08h25
  4. [XL-2003] Utilisation de nom de cellule dans la formule d'une macro
    Par Armandito dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/07/2009, 17h22
  5. [Formule]Macro pour masquer des formules dans une cellule
    Par Hellx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2007, 08h21

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