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

Excel Discussion :

Modifier en masse un argument dans toutes les formules d'un projet


Sujet :

Excel

  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut Modifier en masse un argument dans toutes les formules d'un projet
    Bonjour,

    J'ai hérité d'un projet contenant de nombreux onglets avec beaucoup de formules.
    Ces formules font appel a des liaisons sur des fichiers historique.
    Au changement de période, les noms des fichiers d'historique changent.
    Je souhaite donc passer par une variable qu'il me suffira de mettre à jour.

    Ma question :
    Comment changer dans toutes les formules de toutes le feuille de mon projet

    Le nom du fichier
    BIL_OF2010.XLS
    par une variable
    BIL_OF_ANNUEL

    Exemple d'un début de formule, mais il en a d'autres.
    =(SOMME.SI([BIL_OF2010.XLS]Feuil1!$L:$L;...

    Bien sûr dans ce cas, je pourrais renommer les fichiers, mais la réponse m'intéresse aussi pour d'autres cas.
    Merci pour vos suggestion.
    Denis

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    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
    14
    15
    16
    17
    Sub AAA()
    Dim OldStr As String, NewStr As String
    Dim Sh As Worksheet
    Dim c As Range
     
    Application.ScreenUpdating = False
    OldStr = "BIL_OF2010.XLS"                               'La partie à changer
    NewStr = "'XXX YYY'"                  'Le mot de remplacement
     
    For Each Sh In ThisWorkbook.Worksheets
        On Error Resume Next
        For Each c In Sh.UsedRange.SpecialCells(xlCellTypeFormulas)
            c.Formula = Replace(c.Formula, OldStr, NewStr)
        Next c
        On Error GoTo 0
    Next Sh
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut Ca marche
    Nickel !

    Existe-t-il un tutoriel sur les manipulations des objets ?

    Je m'explique, j'ai déjà utilisé des solutions proposée utilisant des routines du genre
    For Each Sh In ThisWorkbook.Worksheets
    que j'applique sans vraiment savoir à quoi cela correspond.
    Notamment savoir quels sont les objets Sh, c etc utilisables.

    Un petit tuto me permettrait meut-être de poster des questions moins bateau.

    En tout cas merci, c'est tout à fait ce que je cherchais et je mets ça dans ma bibliothèque.
    Cordialement

    Denis

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877

  5. #5
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut RE Merci
    Encore merci,

    L'été tournant court dans notre région, je vais potasser cela au coin du feu !

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Salut, juste une remarque , il serait judicieux d'encadrer la macro par l'ajout de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.Calculation = xlManual
    '.....
    Application.Calculation = xlAutomatic

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

Discussions similaires

  1. [2008R2] Modifier un champ dans toutes les tables d'une BD
    Par SINFOGD dans le forum Développement
    Réponses: 5
    Dernier message: 28/10/2014, 13h33
  2. Réponses: 1
    Dernier message: 18/03/2011, 18h35
  3. Réponses: 4
    Dernier message: 15/02/2010, 17h02
  4. Réponses: 5
    Dernier message: 13/07/2006, 09h44
  5. Comment MAJ le même champ présent dans toutes les tables ?
    Par PamelaGeek dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 02/02/2006, 14h06

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