Addition sur adresse d'une formule

Résolu
Bonjour,

Sous excel 2016,
J'ai copié la feuil2 en feuil3 avec la cellule "C13" = feuil1!D22.
Je souhaite qu'il y ait en C13: feuil1!D42 donc feuil1!D22 +20 systématiquement.

Comment puis-je faire svp?

Configuration: Windows / Firefox 71.0


--
N'ayez pas peur! 

6 réponses

  1. J'ai trouvé ce qui n'allait pas:


    Range("H15").FormulaLocal= part1 & part2

    0
    1. Bonjour,
      J'ai avancé avec ce qui suit mais cela bug en dernière ligne alors que j'ai juste à concaténer.
      Il y a "formule" c'est celle à qui je dois ajouter 20 lignes dans ma nouvelle feuille (feuil3).


      '=0.25*(Budgets!E45+Budgets!E46)
      formule = Sheets("feuil1").Range("D17").FormulaLocal

      '=0,25*(Budgets!E45
      part1 = Left(formule, 16) & Mid(formule, (InStr(formule, "E") + 1), InStr(formule, "+") - (InStr(formule, "E") + 1)) + 20 'passe à E65

      '+Budgets!E46)
      part2 = "+" & Left(Split(formule, "+")(1), 14) '& Split(formule, "E")(2)

      part2 = Left(part2, 10) & Mid(part2, (InStr(part2, "E") + 1), InStr(part2, ")") - (InStr(part2, "E") + 1)) + 20 & ")" 'passe à E66

      'reconstitution de la formule complète
      Range("H15") = part1 & part2 <- Bug erreur 1004


      quelqu'un serait-il m'aider svp?
      0
      1. Contributeur
        Bonjour,

        Avant de penser VBA, penser Formules

        Ce problème se résout facilement par formules quelque soit le nombre de feuilles...
        0
        1. Bonjour à tous les deux ,
          Désolé du manque de clarté...

          En feuil2, cellule C13 il y a cette formule: feuil1!D22
          Je réalise, en VBA j'ai oublié de le préciser, une copie de la feuil2 en feuil3.
          Donc dans la même cellule de la feuil3, j'ai la même formule, mais je souhaite qu'à chaque copie de la feuil n-1, il y ait un décalage de 20 lignes.
          Donc que la formule en C13 devienne: feuil2!D42
          Puis lorsque je copierais la feuil3 en feuil4, la formule en C13 devienne : feuil3!D62 etc...

          En fait, j'ai trouvé avec la fonction : "split" et "instr" quelque chose qui fonctionne
          le plus simple aurait été avec la fonction "Val" mais je n'arrive pas à la mettre en oeuvre pour l'instant... Merci à vous
          0
          1. Contributeur
            Bonjour Mod77, JCB40

            si j'ai compris la demande pas très claire(??),

            enfeuil2!C13
            =DECALER(Feuil1!D22;20;0)
            donne la valeur en feuil1!D42

            Mais si 20 peut varier car résultat d'une formule en D22 (???)
            DECALER(Feuil1!D22;D22;0)
            0
            1. Bonjour,
              Un exemple de votre fichier avec explications serait le bienvenu.
              Pour transmettre un fichier,
              Veillez à ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
              il faut passer par un site de pièce jointe tel que cjoint.com

              Allez sur ce site : https://www.cjoint.com/
              Clic sur parcourir,
              Cherche ton fichier,
              clic sur ouvrir,
              Clic sur "Créer le lien cjoint",
              Copier le lien,
              Revenir ici le coller dans une réponse...
              Cordialement

              0