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é.
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 ?
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" <jur.ham@free.fr> a écrit dans le message de news: uZzwf.113$sK3.154@nntpserver.swip.net...
| > 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 ?
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 ?
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
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:
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
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:
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
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:
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...
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...
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...
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
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