OVH Cloud OVH Cloud

VBA - Conserver les infos d'un formulaire (référence à une feuil le

5 réponses
Avatar
Alex St-Pierre
Bonjour!
J'ai un programme (formulaire) dans lequel il y a cinq "Zone de liste
modifiable". Pour chacune de ces zones, on doit associer une feuille parmi
les feuilles du classeur (menu déroulant). Je me questionne à savoir quel est
la meilleur façon de conserver l'information contenu dans le formulaire.
1- Je voudrais bien inscrire le nom des feuilles dans une cellule excel
d'une feuille donnée x mais si le nom de la feuille change, l'information ne
sera plus bonne.
2- Si je met un liens vers d'une feuille importante x vers la feuille reliée
y, il y a des risque qu'en modiant la feuille y, le lien se brise.
Je me demande s'il y a une information qui est unique à chaque feuille et
qui se perd seulement si la feuille s'efface. Idéalement, une information que
je n'aurais pas besoin de mettre à jour si le nom de la feuille change par
exemple.

Merci !
--
Alex St-Pierre

5 réponses

Avatar
MichDenis
Dans ton code, au lieu d'utiliser le nom des onglets de ton classeur,
utilise plutôt la propriété CodeName de tes feuilles. Même si l'usager
modifie le nom des onglets, le codeName ne change pas.

Dans la fenêtre de l'éditeur de code dans la section "ProjetVBA"

Feuil1(toto)
Feuil1 fait référence au nom de l'objet Feuille
toto est le nom de l'onglet de la feuille.

Dans ton code, au lieu d'utiliser :

With Worksheets("toto")
'....
End with

Tu utilises :

With Feuil1
'....
End with



"Alex St-Pierre" a écrit dans le message de news:

Bonjour!
J'ai un programme (formulaire) dans lequel il y a cinq "Zone de liste
modifiable". Pour chacune de ces zones, on doit associer une feuille parmi
les feuilles du classeur (menu déroulant). Je me questionne à savoir quel est
la meilleur façon de conserver l'information contenu dans le formulaire.
1- Je voudrais bien inscrire le nom des feuilles dans une cellule excel
d'une feuille donnée x mais si le nom de la feuille change, l'information ne
sera plus bonne.
2- Si je met un liens vers d'une feuille importante x vers la feuille reliée
y, il y a des risque qu'en modiant la feuille y, le lien se brise.
Je me demande s'il y a une information qui est unique à chaque feuille et
qui se perd seulement si la feuille s'efface. Idéalement, une information que
je n'aurais pas besoin de mettre à jour si le nom de la feuille change par
exemple.

Merci !
--
Alex St-Pierre
Avatar
Alex St-Pierre
Si je comprends bien, Excel donne par défaut un codeName différent à chacune
des feuilles qui sont créées. Est-ce que ce codename s'incrémente de 1 à
chaque foie sans jamais retourner en arrière? exemple, si j'ai un codename
Feuil1, Feuil3, Feuil6 dans mon fichier, est-ce que le futur CodeName sera
Feuil7 ou bien Feuil2?

En supposant que je stock l'information du formulaire sur une feuille du
style:
Colonne1=#Boite; Colonne2=Nom du codename
A1: Feuille liée à la 1ère boite B1: Feuil3
A2: Feuille liée à la 2e boite B2: Feuil6
Puisque la colonne #2 "Codename" ne se mettra plus à jour, si jamais
l'utilisateur efface la feuille avec CodeName = Feuil3, il faudrait s'assurer
qu'Excel n'utilisera pas ce nom lors de la création de nouvelle feuille (même
si le fichier est fermé et ré-ouvert).
Merci !
--
Alex St-Pierre



Dans ton code, au lieu d'utiliser le nom des onglets de ton classeur,
utilise plutôt la propriété CodeName de tes feuilles. Même si l'usager
modifie le nom des onglets, le codeName ne change pas.

Dans la fenêtre de l'éditeur de code dans la section "ProjetVBA"

Feuil1(toto)
Feuil1 fait référence au nom de l'objet Feuille
toto est le nom de l'onglet de la feuille.

Dans ton code, au lieu d'utiliser :

With Worksheets("toto")
'....
End with

Tu utilises :

With Feuil1
'....
End with



"Alex St-Pierre" a écrit dans le message de news:

Bonjour!
J'ai un programme (formulaire) dans lequel il y a cinq "Zone de liste
modifiable". Pour chacune de ces zones, on doit associer une feuille parmi
les feuilles du classeur (menu déroulant). Je me questionne à savoir quel est
la meilleur façon de conserver l'information contenu dans le formulaire.
1- Je voudrais bien inscrire le nom des feuilles dans une cellule excel
d'une feuille donnée x mais si le nom de la feuille change, l'information ne
sera plus bonne.
2- Si je met un liens vers d'une feuille importante x vers la feuille reliée
y, il y a des risque qu'en modiant la feuille y, le lien se brise.
Je me demande s'il y a une information qui est unique à chaque feuille et
qui se perd seulement si la feuille s'efface. Idéalement, une information que
je n'aurais pas besoin de mettre à jour si le nom de la feuille change par
exemple.

Merci !
--
Alex St-Pierre





Avatar
Alex St-Pierre
Lorsque je cré une feuille, si je pars les codename à 1000 et que je ne recul
pas la numérotation, ça devrait fonctionner.
ex: S'il y a un Feuil1000, Feuil1002 et Feuil1010, la prochaine feuille aura
un Codename = Feuil1011
Si on cré une feuille sans utiliser la macro (ex:Feuil3), cela ne risquera
pas de remplacer un codename d'une feuille créer avec la macro. Je vais
stocké seulement des infos pour des codename >00
--
Alex St-Pierre



Dans ton code, au lieu d'utiliser le nom des onglets de ton classeur,
utilise plutôt la propriété CodeName de tes feuilles. Même si l'usager
modifie le nom des onglets, le codeName ne change pas.

Dans la fenêtre de l'éditeur de code dans la section "ProjetVBA"

Feuil1(toto)
Feuil1 fait référence au nom de l'objet Feuille
toto est le nom de l'onglet de la feuille.

Dans ton code, au lieu d'utiliser :

With Worksheets("toto")
'....
End with

Tu utilises :

With Feuil1
'....
End with



"Alex St-Pierre" a écrit dans le message de news:

Bonjour!
J'ai un programme (formulaire) dans lequel il y a cinq "Zone de liste
modifiable". Pour chacune de ces zones, on doit associer une feuille parmi
les feuilles du classeur (menu déroulant). Je me questionne à savoir quel est
la meilleur façon de conserver l'information contenu dans le formulaire.
1- Je voudrais bien inscrire le nom des feuilles dans une cellule excel
d'une feuille donnée x mais si le nom de la feuille change, l'information ne
sera plus bonne.
2- Si je met un liens vers d'une feuille importante x vers la feuille reliée
y, il y a des risque qu'en modiant la feuille y, le lien se brise.
Je me demande s'il y a une information qui est unique à chaque feuille et
qui se perd seulement si la feuille s'efface. Idéalement, une information que
je n'aurais pas besoin de mettre à jour si le nom de la feuille change par
exemple.

Merci !
--
Alex St-Pierre





Avatar
Alex St-Pierre
Ma dernière solution peut me causer des problèmes si j'importe des feuilles
d'un autre classeur. Je pourrais me ramasser avec 2 fois le même codename.
--
Alex St-Pierre



Dans ton code, au lieu d'utiliser le nom des onglets de ton classeur,
utilise plutôt la propriété CodeName de tes feuilles. Même si l'usager
modifie le nom des onglets, le codeName ne change pas.

Dans la fenêtre de l'éditeur de code dans la section "ProjetVBA"

Feuil1(toto)
Feuil1 fait référence au nom de l'objet Feuille
toto est le nom de l'onglet de la feuille.

Dans ton code, au lieu d'utiliser :

With Worksheets("toto")
'....
End with

Tu utilises :

With Feuil1
'....
End with



"Alex St-Pierre" a écrit dans le message de news:

Bonjour!
J'ai un programme (formulaire) dans lequel il y a cinq "Zone de liste
modifiable". Pour chacune de ces zones, on doit associer une feuille parmi
les feuilles du classeur (menu déroulant). Je me questionne à savoir quel est
la meilleur façon de conserver l'information contenu dans le formulaire.
1- Je voudrais bien inscrire le nom des feuilles dans une cellule excel
d'une feuille donnée x mais si le nom de la feuille change, l'information ne
sera plus bonne.
2- Si je met un liens vers d'une feuille importante x vers la feuille reliée
y, il y a des risque qu'en modiant la feuille y, le lien se brise.
Je me demande s'il y a une information qui est unique à chaque feuille et
qui se perd seulement si la feuille s'efface. Idéalement, une information que
je n'aurais pas besoin de mettre à jour si le nom de la feuille change par
exemple.

Merci !
--
Alex St-Pierre





Avatar
MichDenis
Les codename fonctionne de cette manière,

Tant et aussi longtemps qu'excel est ouvert,
si tu as feuil1, feuil2 , feuil3, la prochaine feuille que tu créeras
sera Feuil4

Si tu supprimes la feuil1 et que tu fermes excel, à la ré-ouverture
la première feuille que tu créeras aura le codename1, la seconde
aura le codename Feuil5 etc...(en supposant que ma mémoire ne
me fasse pas faux bond) c'est assez facile à vérifier !

Lorsque tu fermes Excel et que tu réouvres, Excel examine tous
les codename et s'il manque un numéro, il le créera.

Cependant, rien ne t'oblige à leur donner le nom (racine) de Feuil1.
à chaque fois que tu crées une feuille tu peux la baptiser
denis1 (c'est un très beau nom ;-) ... de même tu auras le contrôle
sur l'appellation des feuilles au lieu de compter sur Excel.





"Alex St-Pierre" a écrit dans le message de news:

Ma dernière solution peut me causer des problèmes si j'importe des feuilles
d'un autre classeur. Je pourrais me ramasser avec 2 fois le même codename.
--
Alex St-Pierre



Dans ton code, au lieu d'utiliser le nom des onglets de ton classeur,
utilise plutôt la propriété CodeName de tes feuilles. Même si l'usager
modifie le nom des onglets, le codeName ne change pas.

Dans la fenêtre de l'éditeur de code dans la section "ProjetVBA"

Feuil1(toto)
Feuil1 fait référence au nom de l'objet Feuille
toto est le nom de l'onglet de la feuille.

Dans ton code, au lieu d'utiliser :

With Worksheets("toto")
'....
End with

Tu utilises :

With Feuil1
'....
End with



"Alex St-Pierre" a écrit dans le message de news:

Bonjour!
J'ai un programme (formulaire) dans lequel il y a cinq "Zone de liste
modifiable". Pour chacune de ces zones, on doit associer une feuille parmi
les feuilles du classeur (menu déroulant). Je me questionne à savoir quel est
la meilleur façon de conserver l'information contenu dans le formulaire.
1- Je voudrais bien inscrire le nom des feuilles dans une cellule excel
d'une feuille donnée x mais si le nom de la feuille change, l'information ne
sera plus bonne.
2- Si je met un liens vers d'une feuille importante x vers la feuille reliée
y, il y a des risque qu'en modiant la feuille y, le lien se brise.
Je me demande s'il y a une information qui est unique à chaque feuille et
qui se perd seulement si la feuille s'efface. Idéalement, une information que
je n'aurais pas besoin de mettre à jour si le nom de la feuille change par
exemple.

Merci !
--
Alex St-Pierre