Addition sur adresse d'une formule

Résolu
mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   -  
mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   -
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. JCB40 Messages postés 3058 Date d'inscription   Statut Membre Dernière intervention   479
     
    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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  3. mod77
     
    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
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Avant de penser VBA, penser Formules

    Ce problème se résout facilement par formules quelque soit le nombre de feuilles...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   53
     
    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
  7. mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   53
     
    J'ai trouvé ce qui n'allait pas:


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

    0