OVH Cloud OVH Cloud

Formule: figer le nom de la feuille

14 réponses
Avatar
Michel M
Bonjour,

J'ai un classeur avec 2 feuilles: données et résultats. Dans la feuille
résultats, j'ai des formules basées sur des données de la feuille données.
Mon problème est que si je modifie le nom de la feuille données, les
formules de la feuille résultats se modifient automatiquement.

Ma question: comment empêcher cela, c'est à dire figer les formules?
J'ai désactivé l'option calcul automatique, ça n'a rien changé.

Merci d'avance,

Michel M

4 réponses

1 2
Avatar
Alain CROS
Bonjour,

Utiliser 3 feuilles
La première FeuilA comme feuille d'import.
La seconde FeuilB comme copie de FeuilA avec en A1 :
=INDIRECT("FeuilA!L" & LIGNE() & "C" & COLONNE();FAUX) et tirer vers le bas puis vers la droite autant que nécessaire.
La troisième FeuilC comme feuille de calcul a partir des éléments de FeuilB.

Alain CROS

"Michel M" a écrit dans le message de news: uZzwf.113$
| > Bonsoir,
| >
| > Exact ! J'avais pas pensé à ça. Mais alors, y-a-t-il un moyen ?
| > Pourtant, sur un classeur tout neuf,
| > Feuil1 nommée "toto"
| > en A1 01/01/2006
| > recopie jusqu'à ligne 10 ( ça donne jusqu'au 10/01/2006 )
| > Feuil2
| > en A1 =toto!A1+31
| > recopie idem
| >
| > renommer feuil1 de toto en tutu il n'y a pas les #REF ?????
| >
| > Excel fait de la ségrégation dans les formules ?????
| >
| Ce que j'aimerais, c'est pouvoir supprimer la feuille toto, en créer
| une nouvelle, et que les formules présentes dans la 2è feuille
| fonctionnnent sans #REF...Si les formules pouvaient être inscrites 'en
| dur', sans aucune liaison, ça devrait marcher, mais comment ?
Avatar
anonymousA
si tu veux faire la recherche sur la 1ere colonne de A1:B2. Ici Vlookup
est l'équivalent en Américain de Recherchev. PAr ailleurs, au lieu d
emettre des ; il faut mettre des virgules. VBA parle Américain et a des
conventions Américaines

[B1].Formula = "=VLOOKUP(A1," & rep & "!A1:B2,1,0)"

A+


Bonsoir,
Ah, le problème change quelque peu.
Comme ça, vite dit, j'aurais tendance à penser qu'une procédure en VBA
demandant le nom de la feuille à prendre en référence et écrivant les
formules
dans les cellules voulues de la feuille2 pourrait faire.

Quelque chose comme ça ( mettre dans un module standard )
A adapter LARGEMENT ( gestion des erreurs, etc )

Sub test()
rep = InputBox("Feuille référence ?")
If rep = "" Then Exit Sub

Sheets("Feuil2").Select
[A1].FormulaR1C1 = rep & "!A1+31"
[A1] = "=" & [A1]
End Sub

Ca m'a l'air très bien ceci. J'ai effectrué quelques tests simples,

c'est parfait.

Par contre, je suis un débutant, dès que ça se complique, désolé
d'exagérer...
J'ai tenté d'introduire la fonction RECHERCHEV, en vain
La syntaxe n'est apparemment pas bonne:

Sheets("Feuil2").Select
[B1].FormulaR1C1 = RECHERCHEV("A1";rep & "!A1:B2";0)

Comment dois-je m'y prendre? Merci d'avance.



Avatar
JLuc
Essaie peut etre de reincrire toutes tes formules de ta feuille
resultat en les passant avec la procedure :
Private Sub Workbook_NewSheet(ByVal Sh As Object)
A tester (je ne l'ai pas fait)
JLuc

Michel M avait soumis l'idée :
bonjour,
Pourquoi ne pas insérer la nouvelle feuille, changer les formules avec le
nom de la nouvelle feuille, puis supprimer l'ancienne feuille.
Peut-être ???


Oui effectivement, ce serait la solution la plus simple, mais si je pouvais

trouver une solution plus 'clean', ce serait encore mieux...



Avatar
JLuc
JLuc avait soumis l'idée :
Essaie peut etre de reincrire toutes tes formules de ta feuille resultat en
les passant avec la procedure :


Par exemple : (Procedure a mettre dans le Thisworkbook)

Private Sub Workbook_NewSheet(ByVal Sh As Object)
Worksheets("Résultats").Range("A1").Value = _
"=SOMME(" & Sh.Name & "!A1:A25)"
End Sub

1 2