j'ai cr=E9=E9 une proc=E9dure qui copie tous les noms d=E9finis du=20
classeur sur une autre feuille.=20
On retrouve:
En colonne A, Les Noms
En colonne B, Les valeurs ou les formules
En colonne C, True ou False en fonction des formules=20
visible ou non.
Je constate toutefois, que lorsque je remets de nouveau=20
les formules sur le classeur, quelques formules se d=E9cale.
Exemple "simplifi=E9" de ce qui se passe:
En Nom d=E9finir: Toto
Formule: =3DSheet1!$A7=20
Dans la cellule D7 la formule: =3DToto
Je me met sur la cellule A1:
Je d=E9clanche la proc=E9dure qui copie tous les noms d=E9finis=20
du classeur sur une autre feuille.=20
Surprise, la recopie se fait comme suit:
En A1 de la feuille j'ai : Toto
En B1 de la feuille j'ai : =3DSheet1!$A1 ???
L'objectif recherch=E9, (donc ma demande), serait que ma=20
proc=E9dure recopie les formules int=E9gralement sur ma=20
feuille. Mais comment?
Voici ma proc=E9dure:
Sub CopieLesNomsExistants()
Dim N As Name
Dim NomD=E9finir As Worksheet
Dim NombreDeNom As Integer
Set NomD=E9finir =3D ThisWorkbook.Sheets(1)
With NomD=E9finir
.Cells.Clear
.Cells.NumberFormat =3D "@"
End With
NombreDeNom =3D 0
For Each N In ActiveWorkbook.Names
NombreDeNom =3D NombreDeNom + 1
NomD=E9finir.Cells(NombreDeNom, 1) =3D N.Name
NomD=E9finir.Cells(NombreDeNom, 2) =3D N.RefersTo
NomD=E9finir.Cells(NombreDeNom, 3) =3D N.Visible
Next N
End Sub
Merci d'avance de m'aider =E0 avancer dans mon projet.
:0)
Si tu mets des références absolues (=Sheet1!$A$7) au lieu de mixte (ton exemple : =Sheet1!$A7), tout rentrera dans l'ordre
AV
Starwing
Bonjour AV,
Merci pour ta réponse, toutefois, les formules inscritent dans les Noms-Définis sont hors de mon contrôle. En effet, j'essaie de tester toutes les possibilités d'un Add-in que je veux créer et pour solutionner un petit problème que je rencontrais, j'ai pensé à copier tous les Noms-Définis sur une feuille et de les remettre par la suite dans le classeur une fois la procédure de mon Add-in terminé.
Lorsque je testais mon Add-in sur une feuille contenant des Noms définis, cela fonctionnait très bien, sauf lorsque je rencontrais des formules de type non absolues.
Si toutefois, tu connais la solution pour enlever un non défini du classeur, alors là je suis aussi preneur.
Mon Add-in crée des Noms Définis dans une procédure, et excel, par lui même, me crée ses propres Noms définis. Exemple: Criteria sheet1 Extract Sheet1 Mon Add-in crée une nouvelle feuille et J'essaie donc détruire ses Noms Définis par: ActiveWorkbook.Names("Criteria").Delete ActiveWorkbook.Names("Extract").Delete Mais cela ne fonctionne pas... Mais si je fais: ActiveWorkbook.Names("Sheet1!Criteria").Delete ActiveWorkbook.Names("Sheet1!Extract").Delete Là cela fonctionne. Mon problème est que je suis aussi incapable de trouver la syntaxe qui ressemblerais à cela: ActiveWorkbook.Names"(" " & "ActiveSheet" &! Criteria").Delete
As-tu une idéé?
Merci d'avance AV, mon sauveur
Starwing
-----Message d'origine----- Si tu mets des références absolues (=Sheet1!$A$7) au lieu de mixte (ton exemple
: =Sheet1!$A7), tout rentrera dans l'ordre
AV
.
Bonjour AV,
Merci pour ta réponse, toutefois, les formules inscritent
dans les Noms-Définis sont hors de mon contrôle. En effet,
j'essaie de tester toutes les possibilités d'un Add-in que
je veux créer et pour solutionner un petit problème que je
rencontrais, j'ai pensé à copier tous les Noms-Définis sur
une feuille et de les remettre par la suite dans le
classeur une fois la procédure de mon Add-in terminé.
Lorsque je testais mon Add-in sur une feuille contenant
des Noms définis, cela fonctionnait très bien, sauf
lorsque je rencontrais des formules de type non absolues.
Si toutefois, tu connais la solution pour enlever un non
défini du classeur, alors là je suis aussi preneur.
Mon Add-in crée des Noms Définis dans une procédure, et
excel, par lui même, me crée ses propres Noms définis.
Exemple: Criteria sheet1
Extract Sheet1
Mon Add-in crée une nouvelle feuille et
J'essaie donc détruire ses Noms Définis par:
ActiveWorkbook.Names("Criteria").Delete
ActiveWorkbook.Names("Extract").Delete
Mais cela ne fonctionne pas...
Mais si je fais:
ActiveWorkbook.Names("Sheet1!Criteria").Delete
ActiveWorkbook.Names("Sheet1!Extract").Delete
Là cela fonctionne.
Mon problème est que je suis aussi incapable de trouver la
syntaxe qui ressemblerais à cela:
ActiveWorkbook.Names"(" " & "ActiveSheet" &!
Criteria").Delete
As-tu une idéé?
Merci d'avance AV, mon sauveur
Starwing
-----Message d'origine-----
Si tu mets des références absolues (=Sheet1!$A$7) au lieu
de mixte (ton exemple
Merci pour ta réponse, toutefois, les formules inscritent dans les Noms-Définis sont hors de mon contrôle. En effet, j'essaie de tester toutes les possibilités d'un Add-in que je veux créer et pour solutionner un petit problème que je rencontrais, j'ai pensé à copier tous les Noms-Définis sur une feuille et de les remettre par la suite dans le classeur une fois la procédure de mon Add-in terminé.
Lorsque je testais mon Add-in sur une feuille contenant des Noms définis, cela fonctionnait très bien, sauf lorsque je rencontrais des formules de type non absolues.
Si toutefois, tu connais la solution pour enlever un non défini du classeur, alors là je suis aussi preneur.
Mon Add-in crée des Noms Définis dans une procédure, et excel, par lui même, me crée ses propres Noms définis. Exemple: Criteria sheet1 Extract Sheet1 Mon Add-in crée une nouvelle feuille et J'essaie donc détruire ses Noms Définis par: ActiveWorkbook.Names("Criteria").Delete ActiveWorkbook.Names("Extract").Delete Mais cela ne fonctionne pas... Mais si je fais: ActiveWorkbook.Names("Sheet1!Criteria").Delete ActiveWorkbook.Names("Sheet1!Extract").Delete Là cela fonctionne. Mon problème est que je suis aussi incapable de trouver la syntaxe qui ressemblerais à cela: ActiveWorkbook.Names"(" " & "ActiveSheet" &! Criteria").Delete
As-tu une idéé?
Merci d'avance AV, mon sauveur
Starwing
-----Message d'origine----- Si tu mets des références absolues (=Sheet1!$A$7) au lieu de mixte (ton exemple
: =Sheet1!$A7), tout rentrera dans l'ordre
AV
.
AV
Merci pour ta réponse, toutefois, les formules inscritent dans les Noms-Définis sont hors de mon contrôle.
Ben m'est avis qu'il y a un problème là car la façon dont elles sont définies est..... Expérience à faire : Position de départ A1 de Feuil1 Insertion > Non > définir > "toto"
fait réf à : Feuil1!$A7 >> OK la référence est mixte (décalage de ligne = +6)
Mets toi maintenant en B3 et fait Insertion > Nom > définir et regarde comment est défini "toto" : (Ligne de la cellule active +6) En A65534 toto sera égal à þuil1!$A4 (Ligne de la cellule active +6)
AV
En effet, j'essaie de tester toutes les possibilités d'un Add-in que je veux créer et pour solutionner un petit problème que je rencontrais, j'ai pensé à copier tous les Noms-Définis sur une feuille et de les remettre par la suite dans le classeur une fois la procédure de mon Add-in terminé.
Lorsque je testais mon Add-in sur une feuille contenant des Noms définis, cela fonctionnait très bien, sauf lorsque je rencontrais des formules de type non absolues.
Si toutefois, tu connais la solution pour enlever un non défini du classeur, alors là je suis aussi preneur.
Mon Add-in crée des Noms Définis dans une procédure, et excel, par lui même, me crée ses propres Noms définis. Exemple: Criteria sheet1 Extract Sheet1 Mon Add-in crée une nouvelle feuille et J'essaie donc détruire ses Noms Définis par: ActiveWorkbook.Names("Criteria").Delete ActiveWorkbook.Names("Extract").Delete Mais cela ne fonctionne pas... Mais si je fais: ActiveWorkbook.Names("Sheet1!Criteria").Delete ActiveWorkbook.Names("Sheet1!Extract").Delete Là cela fonctionne. Mon problème est que je suis aussi incapable de trouver la syntaxe qui ressemblerais à cela: ActiveWorkbook.Names"(" " & "ActiveSheet" &! Criteria").Delete
As-tu une idéé?
Merci d'avance AV, mon sauveur
Starwing
-----Message d'origine----- Si tu mets des références absolues (=Sheet1!$A$7) au lieu de mixte (ton exemple
: =Sheet1!$A7), tout rentrera dans l'ordre
AV
.
Merci pour ta réponse, toutefois, les formules inscritent
dans les Noms-Définis sont hors de mon contrôle.
Ben m'est avis qu'il y a un problème là car la façon dont elles sont définies
est.....
Expérience à faire :
Position de départ A1 de Feuil1
Insertion > Non > définir > "toto"
fait réf à : Feuil1!$A7 >> OK
la référence est mixte (décalage de ligne = +6)
Mets toi maintenant en B3 et fait Insertion > Nom > définir et regarde comment
est défini "toto" :
(Ligne de la cellule active +6)
En A65534 toto sera égal à þuil1!$A4
(Ligne de la cellule active +6)
AV
En effet,
j'essaie de tester toutes les possibilités d'un Add-in que
je veux créer et pour solutionner un petit problème que je
rencontrais, j'ai pensé à copier tous les Noms-Définis sur
une feuille et de les remettre par la suite dans le
classeur une fois la procédure de mon Add-in terminé.
Lorsque je testais mon Add-in sur une feuille contenant
des Noms définis, cela fonctionnait très bien, sauf
lorsque je rencontrais des formules de type non absolues.
Si toutefois, tu connais la solution pour enlever un non
défini du classeur, alors là je suis aussi preneur.
Mon Add-in crée des Noms Définis dans une procédure, et
excel, par lui même, me crée ses propres Noms définis.
Exemple: Criteria sheet1
Extract Sheet1
Mon Add-in crée une nouvelle feuille et
J'essaie donc détruire ses Noms Définis par:
ActiveWorkbook.Names("Criteria").Delete
ActiveWorkbook.Names("Extract").Delete
Mais cela ne fonctionne pas...
Mais si je fais:
ActiveWorkbook.Names("Sheet1!Criteria").Delete
ActiveWorkbook.Names("Sheet1!Extract").Delete
Là cela fonctionne.
Mon problème est que je suis aussi incapable de trouver la
syntaxe qui ressemblerais à cela:
ActiveWorkbook.Names"(" " & "ActiveSheet" &!
Criteria").Delete
As-tu une idéé?
Merci d'avance AV, mon sauveur
Starwing
-----Message d'origine-----
Si tu mets des références absolues (=Sheet1!$A$7) au lieu
de mixte (ton exemple
Merci pour ta réponse, toutefois, les formules inscritent dans les Noms-Définis sont hors de mon contrôle.
Ben m'est avis qu'il y a un problème là car la façon dont elles sont définies est..... Expérience à faire : Position de départ A1 de Feuil1 Insertion > Non > définir > "toto"
fait réf à : Feuil1!$A7 >> OK la référence est mixte (décalage de ligne = +6)
Mets toi maintenant en B3 et fait Insertion > Nom > définir et regarde comment est défini "toto" : (Ligne de la cellule active +6) En A65534 toto sera égal à þuil1!$A4 (Ligne de la cellule active +6)
AV
En effet, j'essaie de tester toutes les possibilités d'un Add-in que je veux créer et pour solutionner un petit problème que je rencontrais, j'ai pensé à copier tous les Noms-Définis sur une feuille et de les remettre par la suite dans le classeur une fois la procédure de mon Add-in terminé.
Lorsque je testais mon Add-in sur une feuille contenant des Noms définis, cela fonctionnait très bien, sauf lorsque je rencontrais des formules de type non absolues.
Si toutefois, tu connais la solution pour enlever un non défini du classeur, alors là je suis aussi preneur.
Mon Add-in crée des Noms Définis dans une procédure, et excel, par lui même, me crée ses propres Noms définis. Exemple: Criteria sheet1 Extract Sheet1 Mon Add-in crée une nouvelle feuille et J'essaie donc détruire ses Noms Définis par: ActiveWorkbook.Names("Criteria").Delete ActiveWorkbook.Names("Extract").Delete Mais cela ne fonctionne pas... Mais si je fais: ActiveWorkbook.Names("Sheet1!Criteria").Delete ActiveWorkbook.Names("Sheet1!Extract").Delete Là cela fonctionne. Mon problème est que je suis aussi incapable de trouver la syntaxe qui ressemblerais à cela: ActiveWorkbook.Names"(" " & "ActiveSheet" &! Criteria").Delete
As-tu une idéé?
Merci d'avance AV, mon sauveur
Starwing
-----Message d'origine----- Si tu mets des références absolues (=Sheet1!$A$7) au lieu de mixte (ton exemple