bonjour,
Question basique je vous l'accorde, mais un tant que débutant ça permet d'avancer:
Comment mettre à jour par macro une chaine de texte pouvant se trouver dans les formules de mes classeurs.
merci pour vos suggestions.
bonjour,
Question basique je vous l'accorde, mais un tant que débutant ça permet d'avancer:
Comment mettre à jour par macro une chaine de texte pouvant se trouver dans les formules de mes classeurs.
merci pour vos suggestions.
Bonjour
Je te conseille d'utiliser
Quelque remarque formulalocal permet d'utiliser la même syntaxe que dans la barre de formule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part range("Tacellule").formulalocal="Taformule"
Exemple
pour y inclure des variable (c'est récurent comme question)
Code : Sélectionner tout - Visualiser dans une fenêtre à part range("A1").formulalocal="=SOMME(B1:B10)"
Tu peux également utiliser .formula qui demande une syntaxe en anglais "=SUM(..."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var1=10 range("A1").formulalocal="=SOMME(B1:B" & var1 & ")"
Ou formulaR1C1 qui permet des référence relative
Je te laisse consulter l'aide la dessus
Bonjour Taratata,
Un exemple pourrait nous aider à comprendre ta demande...
Tu ne parles pas de F9 ?
Tu ne parles pas de Formula ? Si ?
Dis-nous tout
A+
Edit
Un inconvénient de FormulaLocal par rapport à formula : Ne fonctionne pas sur les versions anglaises de VBA (bonjour Krovax)
Il existe aussi FormulaR1C1...
Tout ça se trouve dans l'aide en ligne pour de plus amples explications
Si c'est bien ça ta question...
A la demande de ouskel'n'or, je précise ma demande.
voila un exemple de formule contenu dans une de mes cellule:
j'ai besoin de mettre à jour uniquement la partie "\\serveur01\vol23".
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SI('\\serveur01\vol23\dossier1\DONNEES\[INFOS.XLS]justifier opérat° ABCD'!$I$11=0;"-";'\\serveur01\vol23\dossier1DONNEES\[INFOS.XLS]justifier opérat° ABCD'!$I$11)
je souhaite le faire sur un ensemble de classeur contenu dans un dossier c'est pourquoi j'ai besoin de vba.
cordialement
bonjour Ouskel'n'or
Merci pour l'info sur le formulalocal, je pensé que cela permettait d'utiliser le langage de la config excel et était disponible sur toutes les versions, visiblement le concept de "local" n'a pas cours chez les nos amis anglo-saxons
Et oui la demande avait besoin de précision
Tu doit récupérer la formule dans réaliser la modification et mettre la nouvelle formule
Essaye quelque chose comme cela
On aurait pu le faire un une ligne mais cela devrais te permettre de mieux comprendre ce qui se passe en avançant en mode pas a pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 dim formu as string formu=range("a1").formula formu=replace(formu,"\\serveur01\vol23","\\Nouveauchemin") 'cette ligne te permettra de remplacer le contenue range("a1").formula=formu
Après il te faudra boucler sur les cellule qui contienne une formule, il y a une commande pour cela mais sur le coup elle m'échappe (cela utilisai la commande specialcell mais je n'ai plus la syntaxe)
Je vais essayer de retrouver ca, sauf si une bonne âme veut bien m'épargner cette peine
Edit voila le code pour boucler sur les cellule d'une feuille ayant une formule
Il ne te reste plus qu'a boucler sur les onglets, ou si tu ne compte pas lancer souvent ta macro la lancer une fois pour chaque onglet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim cel As Range For Each cel In Worksheets("Feuil1").Cells.SpecialCells(xlCellTypeFormulas) MsgBox cel.Address 'enlève la ligne du dessus et insert le code pour mettre a jour la formule en remplacant range("a1") par cel Next cel![]()
Bonjour
Si c'est un lien qui a changé, on ne pourrait pas utiliser simplement le menu Edition/Liaisons ?
été juste un teste pour moi, le commentaire en dessous te disais de supprimer la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part msgbox cel.address
Sauf si tu veux t'amuser a visualiser toutes tes cellules
Tu n'a pas a récupérer les référence tu met directement
Par contre le menue Edition/liaison serait peut être plus pratique, mais la c'est hors de mes compétences (en fait dès que ca touche excel et non le VBA je suis totalement incompétent
Code : Sélectionner tout - Visualiser dans une fenêtre à part rng1.formula)
merci Krovax et Ouskel'n'or
j'ai quand même un pb pour récuperer la référence des cellules(a1, d5,..) où se trouvent mes formules à mettre à jour.
j'avais pensé à çamais en fait ça me donne la valeur de la cellule quand je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 For Each sh In ActiveWorkbook.Sheets For Each rng1 In sh.Cells.SpecialCells(xlCellTypeFormulas)?
Code : Sélectionner tout - Visualiser dans une fenêtre à part msgbox rng1
comment récuperer la reference de la cellule?
Dans la boucle, avec sh :Envoyé par taratata_69
et avec rng1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part NomFeuille = sh.name
Code : Sélectionner tout - Visualiser dans une fenêtre à part AdresseCellule = rng1.address
merci beaucoup à ouskel'n'or et Krovax
Vous m'avez permis d'avancer sur mon probléme et je vous en suis reconnaissant.
Partager