J'ai créé un classeur excel standard avec plusieurs feuilles qui va être
utilisé par différents utilisateurs.
Cependant, un autre type de classeur va accéder à ce premier classeur pour
en modifier certaines pages : est-il possible de verrouiller ces pages en
particulier de mon classeur standard, de manière à ce qu'elles puissent être
modifiées (contenu des cellules etc.) par les utilisateurs ou d'autres
fichiers, mais qu'elles ne puissent pas être supprimées et que le nom de la
feuille soit bloqué?
[En effet, la méthode protect semble protéger le contenu de la feuille mais
la feuille en elle-même]
protège le classeur, comme ça le nom et la feuille sont protéger (pas de suppression, pas de modif du nom) Yann
Bonjour
J'ai créé un classeur excel standard avec plusieurs feuilles qui va être utilisé par différents utilisateurs. Cependant, un autre type de classeur va accéder à ce premier classeur pour en modifier certaines pages : est-il possible de verrouiller ces pages en particulier de mon classeur standard, de manière à ce qu'elles puissent être modifiées (contenu des cellules etc.) par les utilisateurs ou d'autres fichiers, mais qu'elles ne puissent pas être supprimées et que le nom de la feuille soit bloqué? [En effet, la méthode protect semble protéger le contenu de la feuille mais la feuille en elle-même]
Merci beaucoup par avance!! Céline
protège le classeur, comme ça le nom et la feuille sont protéger (pas de
suppression, pas de modif du nom)
Yann
Bonjour
J'ai créé un classeur excel standard avec plusieurs feuilles qui va être
utilisé par différents utilisateurs.
Cependant, un autre type de classeur va accéder à ce premier classeur pour
en modifier certaines pages : est-il possible de verrouiller ces pages en
particulier de mon classeur standard, de manière à ce qu'elles puissent être
modifiées (contenu des cellules etc.) par les utilisateurs ou d'autres
fichiers, mais qu'elles ne puissent pas être supprimées et que le nom de la
feuille soit bloqué?
[En effet, la méthode protect semble protéger le contenu de la feuille mais
la feuille en elle-même]
protège le classeur, comme ça le nom et la feuille sont protéger (pas de suppression, pas de modif du nom) Yann
Bonjour
J'ai créé un classeur excel standard avec plusieurs feuilles qui va être utilisé par différents utilisateurs. Cependant, un autre type de classeur va accéder à ce premier classeur pour en modifier certaines pages : est-il possible de verrouiller ces pages en particulier de mon classeur standard, de manière à ce qu'elles puissent être modifiées (contenu des cellules etc.) par les utilisateurs ou d'autres fichiers, mais qu'elles ne puissent pas être supprimées et que le nom de la feuille soit bloqué? [En effet, la méthode protect semble protéger le contenu de la feuille mais la feuille en elle-même]
Merci beaucoup par avance!! Céline
Céline
Merci pour ta réponse ! Malheureusement, après avoir essayé la méthode protect sur le classeur je me rends compte que je ne peux plus créer de feuilles. Or ce que je voulais c'était protéger deux feuilles en particulier et qu'en dehors de celles-ci l'utilisateur puisse créer/ modifier / supprimer / renommer d'autres feuilles sans problème... :s J'ai essayé de parcourir les méthodes proposées par l'objet application mais aucune semble me convenir... Y a-t-il un moyen de déjouer cette ambiguité ? Merci beaucoup (& bon we!!)
Merci pour ta réponse !
Malheureusement, après avoir essayé la méthode protect sur le classeur je me
rends compte que je ne peux plus créer de feuilles.
Or ce que je voulais c'était protéger deux feuilles en particulier et qu'en
dehors de celles-ci l'utilisateur puisse créer/ modifier / supprimer /
renommer d'autres feuilles sans problème...
:s
J'ai essayé de parcourir les méthodes proposées par l'objet application mais
aucune semble me convenir...
Y a-t-il un moyen de déjouer cette ambiguité ?
Merci beaucoup (& bon we!!)
Merci pour ta réponse ! Malheureusement, après avoir essayé la méthode protect sur le classeur je me rends compte que je ne peux plus créer de feuilles. Or ce que je voulais c'était protéger deux feuilles en particulier et qu'en dehors de celles-ci l'utilisateur puisse créer/ modifier / supprimer / renommer d'autres feuilles sans problème... :s J'ai essayé de parcourir les méthodes proposées par l'objet application mais aucune semble me convenir... Y a-t-il un moyen de déjouer cette ambiguité ? Merci beaucoup (& bon we!!)
Sunburn
Sub ProtectionFeuille() tabl = Array("feuil1", "feuil2") For i = LBound(tabl) To UBound(tabl) With Sheets(tabl(i)) .Activate .Protect End With Next End Sub
pour protéger ta feuille. Mais si la barre "Outils" est toujours active, n'importe qui peut faire "Outils / déprotéger la feuille", le mieux c'est de cacher cette barre d'outils, ou de protéger par mot de passe.
BYE et bon WE yann
Merci pour ta réponse ! Malheureusement, après avoir essayé la méthode protect sur le classeur je me rends compte que je ne peux plus créer de feuilles. Or ce que je voulais c'était protéger deux feuilles en particulier et qu'en dehors de celles-ci l'utilisateur puisse créer/ modifier / supprimer / renommer d'autres feuilles sans problème... :s J'ai essayé de parcourir les méthodes proposées par l'objet application mais aucune semble me convenir... Y a-t-il un moyen de déjouer cette ambiguité ? Merci beaucoup (& bon we!!)
Sub ProtectionFeuille()
tabl = Array("feuil1", "feuil2")
For i = LBound(tabl) To UBound(tabl)
With Sheets(tabl(i))
.Activate
.Protect
End With
Next
End Sub
pour protéger ta feuille. Mais si la barre "Outils" est toujours active,
n'importe qui peut faire "Outils / déprotéger la feuille", le mieux c'est de
cacher cette barre d'outils, ou de protéger par mot de passe.
BYE et bon WE
yann
Merci pour ta réponse !
Malheureusement, après avoir essayé la méthode protect sur le classeur je me
rends compte que je ne peux plus créer de feuilles.
Or ce que je voulais c'était protéger deux feuilles en particulier et qu'en
dehors de celles-ci l'utilisateur puisse créer/ modifier / supprimer /
renommer d'autres feuilles sans problème...
:s
J'ai essayé de parcourir les méthodes proposées par l'objet application mais
aucune semble me convenir...
Y a-t-il un moyen de déjouer cette ambiguité ?
Merci beaucoup (& bon we!!)
Sub ProtectionFeuille() tabl = Array("feuil1", "feuil2") For i = LBound(tabl) To UBound(tabl) With Sheets(tabl(i)) .Activate .Protect End With Next End Sub
pour protéger ta feuille. Mais si la barre "Outils" est toujours active, n'importe qui peut faire "Outils / déprotéger la feuille", le mieux c'est de cacher cette barre d'outils, ou de protéger par mot de passe.
BYE et bon WE yann
Merci pour ta réponse ! Malheureusement, après avoir essayé la méthode protect sur le classeur je me rends compte que je ne peux plus créer de feuilles. Or ce que je voulais c'était protéger deux feuilles en particulier et qu'en dehors de celles-ci l'utilisateur puisse créer/ modifier / supprimer / renommer d'autres feuilles sans problème... :s J'ai essayé de parcourir les méthodes proposées par l'objet application mais aucune semble me convenir... Y a-t-il un moyen de déjouer cette ambiguité ? Merci beaucoup (& bon we!!)
J
Bonjour Céline juste un détail pour compléter : tu peux modifier la ligne .protect comme suit, pour mettre par macro un mot de passe : .Protect Password:="toto", userinterfaceonly:=True
Bon courage J@@
Sub ProtectionFeuille() tabl = Array("feuil1", "feuil2") For i = LBound(tabl) To UBound(tabl) With Sheets(tabl(i)) .Activate .Protect End With Next End Sub
pour protéger ta feuille. Mais si la barre "Outils" est toujours active, n'importe qui peut faire "Outils / déprotéger la feuille", le mieux c'est de cacher cette barre d'outils, ou de protéger par mot de passe.
BYE et bon WE yann
Merci pour ta réponse ! Malheureusement, après avoir essayé la méthode protect sur le classeur je me rends compte que je ne peux plus créer de feuilles. Or ce que je voulais c'était protéger deux feuilles en particulier et qu'en dehors de celles-ci l'utilisateur puisse créer/ modifier / supprimer / renommer d'autres feuilles sans problème... :s J'ai essayé de parcourir les méthodes proposées par l'objet application mais aucune semble me convenir... Y a-t-il un moyen de déjouer cette ambiguité ? Merci beaucoup (& bon we!!)
Bonjour Céline
juste un détail pour compléter : tu peux modifier la ligne .protect
comme suit, pour mettre par macro un mot de passe :
.Protect Password:="toto", userinterfaceonly:=True
Bon courage
J@@
Sub ProtectionFeuille()
tabl = Array("feuil1", "feuil2")
For i = LBound(tabl) To UBound(tabl)
With Sheets(tabl(i))
.Activate
.Protect
End With
Next
End Sub
pour protéger ta feuille. Mais si la barre "Outils" est toujours active,
n'importe qui peut faire "Outils / déprotéger la feuille", le mieux c'est de
cacher cette barre d'outils, ou de protéger par mot de passe.
BYE et bon WE
yann
Merci pour ta réponse !
Malheureusement, après avoir essayé la méthode protect sur le classeur je me
rends compte que je ne peux plus créer de feuilles.
Or ce que je voulais c'était protéger deux feuilles en particulier et qu'en
dehors de celles-ci l'utilisateur puisse créer/ modifier / supprimer /
renommer d'autres feuilles sans problème...
:s
J'ai essayé de parcourir les méthodes proposées par l'objet application mais
aucune semble me convenir...
Y a-t-il un moyen de déjouer cette ambiguité ?
Merci beaucoup (& bon we!!)
Bonjour Céline juste un détail pour compléter : tu peux modifier la ligne .protect comme suit, pour mettre par macro un mot de passe : .Protect Password:="toto", userinterfaceonly:=True
Bon courage J@@
Sub ProtectionFeuille() tabl = Array("feuil1", "feuil2") For i = LBound(tabl) To UBound(tabl) With Sheets(tabl(i)) .Activate .Protect End With Next End Sub
pour protéger ta feuille. Mais si la barre "Outils" est toujours active, n'importe qui peut faire "Outils / déprotéger la feuille", le mieux c'est de cacher cette barre d'outils, ou de protéger par mot de passe.
BYE et bon WE yann
Merci pour ta réponse ! Malheureusement, après avoir essayé la méthode protect sur le classeur je me rends compte que je ne peux plus créer de feuilles. Or ce que je voulais c'était protéger deux feuilles en particulier et qu'en dehors de celles-ci l'utilisateur puisse créer/ modifier / supprimer / renommer d'autres feuilles sans problème... :s J'ai essayé de parcourir les méthodes proposées par l'objet application mais aucune semble me convenir... Y a-t-il un moyen de déjouer cette ambiguité ? Merci beaucoup (& bon we!!)
Excel...lent
Salut Céline,
Dans VBE sur les feuilles que tu veux planquer tu passes la propriété "visible" sur "xlSheetVeryHidden" .
Ensuite toujours de VBE tu protèges ton projet VBA et normalement si mes souvenirs sont bons tu ne dois plus voir tes feuilles en question et surtout ne plus pouvoir y accéder en dehors de VBE.
Pour les voir de nouveau il te faudra accéder au projet VBA de ton classeur ( après avoir donné ton MP ) et ensuite repasser la propriété "visible" sur "xlSheetVisible".
Cordialement.
Marc
Salut Céline,
Dans VBE sur les feuilles que tu veux planquer tu passes la propriété
"visible" sur "xlSheetVeryHidden" .
Ensuite toujours de VBE tu protèges ton projet VBA et normalement si mes
souvenirs sont bons tu ne dois plus voir tes feuilles en question et surtout
ne plus pouvoir y accéder en dehors de VBE.
Pour les voir de nouveau il te faudra accéder au projet VBA de ton classeur
( après avoir donné ton MP ) et ensuite repasser la propriété "visible" sur
"xlSheetVisible".
Dans VBE sur les feuilles que tu veux planquer tu passes la propriété "visible" sur "xlSheetVeryHidden" .
Ensuite toujours de VBE tu protèges ton projet VBA et normalement si mes souvenirs sont bons tu ne dois plus voir tes feuilles en question et surtout ne plus pouvoir y accéder en dehors de VBE.
Pour les voir de nouveau il te faudra accéder au projet VBA de ton classeur ( après avoir donné ton MP ) et ensuite repasser la propriété "visible" sur "xlSheetVisible".
Cordialement.
Marc
Céline
bonjour, Merci à tous pour vos conseils, malheureusement je ne suis pas encore satisfaite... :p Je vais prendre un esxemple pour mieux expliquer mon prblème : dans mon workbook "wrkbk" j'ai à la base 2 sheets : "feuil1" et "feuil2". Lorsque mon utilisateur ouvre "wrkbk", il doit compléter certains champs de "feuil1" et "feuil2", mais je ne ve pas qu'il puisse ni supprimer ni renommer ces deux feuilles (--> fct Xlsheetvisible et wrksheet.protect impossible). A la suite de cela, il doit insérer une ou pls nouvelles feuilles (nombre inconnu) qu'il va devoir remplir, renommer "feuil3" --> "TagadaTsoinTsoin" et/ou éventuellement supprimer ! ! (fct Workbook.protect impossible) est-il possible d'utiliser la fonction wrkbk.protect en laissant certaines fonctions accessible (ex. la fonction insérer/nouvelle feuille), ou mon problème a-t-il de fortes chances de rester insoluble ? :s :s Merci & Bonne journée ! Céline
bonjour,
Merci à tous pour vos conseils, malheureusement je ne suis pas encore
satisfaite... :p
Je vais prendre un esxemple pour mieux expliquer mon prblème :
dans mon workbook "wrkbk" j'ai à la base 2 sheets : "feuil1" et "feuil2".
Lorsque mon utilisateur ouvre "wrkbk", il doit compléter certains champs de
"feuil1" et "feuil2", mais je ne ve pas qu'il puisse ni supprimer ni renommer
ces deux feuilles (--> fct Xlsheetvisible et wrksheet.protect impossible).
A la suite de cela, il doit insérer une ou pls nouvelles feuilles (nombre
inconnu) qu'il va devoir remplir, renommer "feuil3" --> "TagadaTsoinTsoin"
et/ou éventuellement supprimer ! ! (fct Workbook.protect impossible)
est-il possible d'utiliser la fonction wrkbk.protect en laissant certaines
fonctions accessible (ex. la fonction insérer/nouvelle feuille), ou mon
problème a-t-il de fortes chances de rester insoluble ?
:s :s
Merci & Bonne journée !
Céline
bonjour, Merci à tous pour vos conseils, malheureusement je ne suis pas encore satisfaite... :p Je vais prendre un esxemple pour mieux expliquer mon prblème : dans mon workbook "wrkbk" j'ai à la base 2 sheets : "feuil1" et "feuil2". Lorsque mon utilisateur ouvre "wrkbk", il doit compléter certains champs de "feuil1" et "feuil2", mais je ne ve pas qu'il puisse ni supprimer ni renommer ces deux feuilles (--> fct Xlsheetvisible et wrksheet.protect impossible). A la suite de cela, il doit insérer une ou pls nouvelles feuilles (nombre inconnu) qu'il va devoir remplir, renommer "feuil3" --> "TagadaTsoinTsoin" et/ou éventuellement supprimer ! ! (fct Workbook.protect impossible) est-il possible d'utiliser la fonction wrkbk.protect en laissant certaines fonctions accessible (ex. la fonction insérer/nouvelle feuille), ou mon problème a-t-il de fortes chances de rester insoluble ? :s :s Merci & Bonne journée ! Céline
Excel...lent
Salut Céline,
Pourquoi ne pas enregistrer ton fichier en * Modèle * .
Avantage : l'utilisateur de ton fichier ne pourra pas changer le modèle puisque celui-ci en s'ouvrant ouvre en fait une copie de lui-même.
Cordialement.
Marc
Salut Céline,
Pourquoi ne pas enregistrer ton fichier en * Modèle * .
Avantage : l'utilisateur de ton fichier ne pourra pas changer le modèle
puisque celui-ci en s'ouvrant ouvre en fait une copie de lui-même.
Pourquoi ne pas enregistrer ton fichier en * Modèle * .
Avantage : l'utilisateur de ton fichier ne pourra pas changer le modèle puisque celui-ci en s'ouvrant ouvre en fait une copie de lui-même.
Cordialement.
Marc
Céline
Effectivement l'idée est bonne; mais le problème reste le même sur la copie créée par l'utilisateur : il pourra toujours faire les manip qu'il veut. L'ennui étant que ces fameuses feuilles "Feuil1" et "Feuil2" sont appelées par des macros VBE (de ce classeur ou d'autres classeurs) :s :s Cordialement Céline
Effectivement l'idée est bonne;
mais le problème reste le même sur la copie créée par l'utilisateur : il
pourra toujours faire les manip qu'il veut. L'ennui étant que ces fameuses
feuilles "Feuil1" et "Feuil2" sont appelées par des macros VBE (de ce
classeur ou d'autres classeurs)
:s :s
Cordialement
Céline
Effectivement l'idée est bonne; mais le problème reste le même sur la copie créée par l'utilisateur : il pourra toujours faire les manip qu'il veut. L'ennui étant que ces fameuses feuilles "Feuil1" et "Feuil2" sont appelées par des macros VBE (de ce classeur ou d'autres classeurs) :s :s Cordialement Céline
JLuc
*Bonjour Céline*, Ce que je peux te proposer, c'est d'utiliser le CodeName de tes feuilles dans tes macros. De cette façon, même si l'utilisateur change le nom de l'onglet, tes macros pointeront toujours sur la bonne feuille : Dans l'explorateur de projet :
-->Feuil1(TagadaTsoinTsoin) Feuil1 = CodeName TagadaTsoinTsoin = Nom donné à l'onglet
Dans tes macros : Au lieu de : ...Sheets("TagadaTsoinTsoin").Range(..... Tu mets : ...Feuil1.Range(...
Effectivement l'idée est bonne; mais le problème reste le même sur la copie créée par l'utilisateur : il pourra toujours faire les manip qu'il veut. L'ennui étant que ces fameuses feuilles "Feuil1" et "Feuil2" sont appelées par des macros VBE (de ce classeur ou d'autres classeurs)
s :s Cordialement
Céline
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
*Bonjour Céline*,
Ce que je peux te proposer, c'est d'utiliser le CodeName de tes
feuilles dans tes macros. De cette façon, même si l'utilisateur change
le nom de l'onglet, tes macros pointeront toujours sur la bonne feuille
:
Dans l'explorateur de projet :
-->Feuil1(TagadaTsoinTsoin)
Feuil1 = CodeName
TagadaTsoinTsoin = Nom donné à l'onglet
Dans tes macros :
Au lieu de : ...Sheets("TagadaTsoinTsoin").Range(.....
Tu mets : ...Feuil1.Range(...
Effectivement l'idée est bonne;
mais le problème reste le même sur la copie créée par l'utilisateur : il
pourra toujours faire les manip qu'il veut. L'ennui étant que ces fameuses
feuilles "Feuil1" et "Feuil2" sont appelées par des macros VBE (de ce
classeur ou d'autres classeurs)
*Bonjour Céline*, Ce que je peux te proposer, c'est d'utiliser le CodeName de tes feuilles dans tes macros. De cette façon, même si l'utilisateur change le nom de l'onglet, tes macros pointeront toujours sur la bonne feuille : Dans l'explorateur de projet :
-->Feuil1(TagadaTsoinTsoin) Feuil1 = CodeName TagadaTsoinTsoin = Nom donné à l'onglet
Dans tes macros : Au lieu de : ...Sheets("TagadaTsoinTsoin").Range(..... Tu mets : ...Feuil1.Range(...
Effectivement l'idée est bonne; mais le problème reste le même sur la copie créée par l'utilisateur : il pourra toujours faire les manip qu'il veut. L'ennui étant que ces fameuses feuilles "Feuil1" et "Feuil2" sont appelées par des macros VBE (de ce classeur ou d'autres classeurs)
s :s Cordialement
Céline
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
Céline
bonjour, bonjour !
effectivement, j'aurais pu utiliser le codename de mes feuilles, mais utiliser le nom "tagadatsointsoin" permettait à ma routine de s'assurer qu'elle récupérait bien la feuille dont le format est celui du modèle. :s en effet j'écris : Do Until apdw.Sheets(1).Name = "tagadatsointsoin" apdw.Close MsgBox "ce classeur ne contient pas les données que je recherche" texte = "" test_extension (--> ouvre une boite de dialogue ou l'utilisateur est censé aller chercher une copie du classeur excel modèle, contenant la fameuse feuille [programme inclus à la fin du message]) If texte = "" Then Exit Do Else Workbooks.Open (texte) Set apdw = ActiveWorkbook End If Loop PARCE QUE ! Imaginons qu'un utilisateur supprime l'onglet tagadatsointsoin, enregistre et ferme le document. Un autre utilisateur réouvre le classeur, crée une nouvelle feuille (pour ses besoins précis) et enregistre : la nouvelle feuille crée prend alors le codename de mon onglet tagadatsointsoin et se fait passer pour lui dans mon code VBE; auquel cas mon pgmme le reconnait et plante 3 ligne plus tard parce que le champ recherché a disparu ! ! (efffectivement on pourrait même envisger l'option ou le nouvel utilisateur renomme la nouvelle feuille tagdatsointsoin auquel cas mon pgmme plante de toute façon, mais on part du principe que c'est pas possible qu'il tombe pile sur le même nom) Ceci est une vision assez simplifiée du problème qui consiste en gros à tester et mettre à jour des données; effectivement je pourrais tester chaque fois la présence ou non de la donnée recherchée, mais comme j'ai régulièrement recours à cet onglet il me paraissait plus simple de trouver un moyen de le laisser modifiable sans pour autant pouvoir ni le supprimer ni le renommer ! :p Mon serpent se mord la queue....
:s
Merci en tous cas pour tous vos conseils, ils me permettent de toute façon d'apporter de bonnes évolutions à mon fichier même je n'arrive pas à résoudre ce problème précis ! Bonne journée Céline
P.S. : ma fonction test_extension : (pour mieux me faire comprendre) Sub test_extension()
Do Until Right(texte, 4) = ".xls" MsgBox "veuillez sélectionner un classeur Excel Organisation de la fête", vbExclamation Set dlg = Application.FileDialog(msoFileDialogFilePicker) dlg.Show If dlg.SelectedItems.Count > 0 Then texte = dlg.SelectedItems(1) Else texte = "" Exit Do End If Loop
End Sub
bonjour, bonjour !
effectivement, j'aurais pu utiliser le codename de mes feuilles, mais
utiliser le nom "tagadatsointsoin" permettait à ma routine de s'assurer
qu'elle récupérait bien la feuille dont le format est celui du modèle. :s
en effet j'écris :
Do Until apdw.Sheets(1).Name = "tagadatsointsoin"
apdw.Close
MsgBox "ce classeur ne contient pas les données que je recherche"
texte = ""
test_extension (--> ouvre une boite de dialogue ou l'utilisateur
est censé aller chercher une copie du classeur excel modèle, contenant la
fameuse feuille [programme inclus à la fin du message])
If texte = "" Then
Exit Do
Else
Workbooks.Open (texte)
Set apdw = ActiveWorkbook
End If
Loop
PARCE QUE ! Imaginons qu'un utilisateur supprime l'onglet tagadatsointsoin,
enregistre et ferme le document. Un autre utilisateur réouvre le classeur,
crée une nouvelle feuille (pour ses besoins précis) et enregistre : la
nouvelle feuille crée prend alors le codename de mon onglet tagadatsointsoin
et se fait passer pour lui dans mon code VBE; auquel cas mon pgmme le
reconnait et plante 3 ligne plus tard parce que le champ recherché a disparu
! ! (efffectivement on pourrait même envisger l'option ou le nouvel
utilisateur renomme la nouvelle feuille tagdatsointsoin auquel cas mon pgmme
plante de toute façon, mais on part du principe que c'est pas possible qu'il
tombe pile sur le même nom)
Ceci est une vision assez simplifiée du problème qui consiste en gros à
tester et mettre à jour des données; effectivement je pourrais tester chaque
fois la présence ou non de la donnée recherchée, mais comme j'ai
régulièrement recours à cet onglet il me paraissait plus simple de trouver un
moyen de le laisser modifiable sans pour autant pouvoir ni le supprimer ni le
renommer ! :p
Mon serpent se mord la queue....
:s
Merci en tous cas pour tous vos conseils, ils me permettent de toute façon
d'apporter de bonnes évolutions à mon fichier même je n'arrive pas à résoudre
ce problème précis !
Bonne journée
Céline
P.S. : ma fonction test_extension : (pour mieux me faire comprendre)
Sub test_extension()
Do Until Right(texte, 4) = ".xls"
MsgBox "veuillez sélectionner un classeur Excel Organisation de la
fête", vbExclamation
Set dlg = Application.FileDialog(msoFileDialogFilePicker)
dlg.Show
If dlg.SelectedItems.Count > 0 Then
texte = dlg.SelectedItems(1)
Else
texte = ""
Exit Do
End If
Loop
effectivement, j'aurais pu utiliser le codename de mes feuilles, mais utiliser le nom "tagadatsointsoin" permettait à ma routine de s'assurer qu'elle récupérait bien la feuille dont le format est celui du modèle. :s en effet j'écris : Do Until apdw.Sheets(1).Name = "tagadatsointsoin" apdw.Close MsgBox "ce classeur ne contient pas les données que je recherche" texte = "" test_extension (--> ouvre une boite de dialogue ou l'utilisateur est censé aller chercher une copie du classeur excel modèle, contenant la fameuse feuille [programme inclus à la fin du message]) If texte = "" Then Exit Do Else Workbooks.Open (texte) Set apdw = ActiveWorkbook End If Loop PARCE QUE ! Imaginons qu'un utilisateur supprime l'onglet tagadatsointsoin, enregistre et ferme le document. Un autre utilisateur réouvre le classeur, crée une nouvelle feuille (pour ses besoins précis) et enregistre : la nouvelle feuille crée prend alors le codename de mon onglet tagadatsointsoin et se fait passer pour lui dans mon code VBE; auquel cas mon pgmme le reconnait et plante 3 ligne plus tard parce que le champ recherché a disparu ! ! (efffectivement on pourrait même envisger l'option ou le nouvel utilisateur renomme la nouvelle feuille tagdatsointsoin auquel cas mon pgmme plante de toute façon, mais on part du principe que c'est pas possible qu'il tombe pile sur le même nom) Ceci est une vision assez simplifiée du problème qui consiste en gros à tester et mettre à jour des données; effectivement je pourrais tester chaque fois la présence ou non de la donnée recherchée, mais comme j'ai régulièrement recours à cet onglet il me paraissait plus simple de trouver un moyen de le laisser modifiable sans pour autant pouvoir ni le supprimer ni le renommer ! :p Mon serpent se mord la queue....
:s
Merci en tous cas pour tous vos conseils, ils me permettent de toute façon d'apporter de bonnes évolutions à mon fichier même je n'arrive pas à résoudre ce problème précis ! Bonne journée Céline
P.S. : ma fonction test_extension : (pour mieux me faire comprendre) Sub test_extension()
Do Until Right(texte, 4) = ".xls" MsgBox "veuillez sélectionner un classeur Excel Organisation de la fête", vbExclamation Set dlg = Application.FileDialog(msoFileDialogFilePicker) dlg.Show If dlg.SelectedItems.Count > 0 Then texte = dlg.SelectedItems(1) Else texte = "" Exit Do End If Loop