Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2011, 12h27   #1
Futur Membre du Club
 
Inscription : août 2009
Messages : 35
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 35
Points : 16
Points : 16
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
Denis_67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 13h06   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Code :
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
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 13h40   #3
Futur Membre du Club
 
Inscription : août 2009
Messages : 35
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 35
Points : 16
Points : 16
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
Denis_67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 14h00   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Des liens:
http://excel.developpez.com/cours/?page=prog#variables
http://silkyroad.developpez.com/VBA/LesVariables/
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 15h22   #5
Futur Membre du Club
 
Inscription : août 2009
Messages : 35
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 35
Points : 16
Points : 16
Par défaut RE Merci

Encore merci,

L'été tournant court dans notre région, je vais potasser cela au coin du feu !
Denis_67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 15h43   #6
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 701
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

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

Informations forums :
Inscription : juin 2006
Messages : 1 701
Points : 3 618
Points : 3 618
Salut, juste une remarque , il serait judicieux d'encadrer la macro par l'ajout de
Code :
1
2
3
Application.Calculation = xlManual
'.....
Application.Calculation = xlAutomatic
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h09.


 
 
 
 
Partenaires

Hébergement Web