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]
L'image, c'etait pour te faire voir le nom et le codename de l'onglet :D Sinon, est ce que les utilisateur ont beaucoup de donnees a saisir ? Tu pourrais, par exemple masquee la feuille sur laquelle tu prends les donnees et sur les feuilles d'utilisateur mettre des macros qui rempliraient cette feuille masquee :oÞ
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
-- JLuc
L'image, c'etait pour te faire voir le nom et le codename de l'onglet
:D
Sinon, est ce que les utilisateur ont beaucoup de donnees a saisir ? Tu
pourrais, par exemple masquee la feuille sur laquelle tu prends les
donnees et sur les feuilles d'utilisateur mettre des macros qui
rempliraient cette feuille masquee :oÞ
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
L'image, c'etait pour te faire voir le nom et le codename de l'onglet :D Sinon, est ce que les utilisateur ont beaucoup de donnees a saisir ? Tu pourrais, par exemple masquee la feuille sur laquelle tu prends les donnees et sur les feuilles d'utilisateur mettre des macros qui rempliraient cette feuille masquee :oÞ
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
-- JLuc
Céline
est-ce que je pourrais te transférer mon document exel pour que tu constates l'ampleur des dégats ? ce serait plus simple pour expliciter le pourquoi de mes comment.... si oui, quelle est la procédure ? (je suis sur le forum par l'intermédiaire d'ie) Mercii beaucoup Céline
est-ce que je pourrais te transférer mon document exel pour que tu constates
l'ampleur des dégats ?
ce serait plus simple pour expliciter le pourquoi de mes comment....
si oui, quelle est la procédure ? (je suis sur le forum par l'intermédiaire
d'ie)
Mercii beaucoup
Céline
est-ce que je pourrais te transférer mon document exel pour que tu constates l'ampleur des dégats ? ce serait plus simple pour expliciter le pourquoi de mes comment.... si oui, quelle est la procédure ? (je suis sur le forum par l'intermédiaire d'ie) Mercii beaucoup Céline
JLuc
est-ce que je pourrais te transférer mon document exel pour que tu constates l'ampleur des dégats ? ce serait plus simple pour expliciter le pourquoi de mes comment.... si oui, quelle est la procédure ? (je suis sur le forum par l'intermédiaire d'ie) Mercii beaucoup Céline
S'il est moins gros que 500ko, passe par www.cjoint.com sinon direct dans ma bal (enleve les : ns. et .ns)
-- JLuc
est-ce que je pourrais te transférer mon document exel pour que tu constates
l'ampleur des dégats ?
ce serait plus simple pour expliciter le pourquoi de mes comment....
si oui, quelle est la procédure ? (je suis sur le forum par l'intermédiaire
d'ie)
Mercii beaucoup
Céline
S'il est moins gros que 500ko, passe par www.cjoint.com
sinon direct dans ma bal (enleve les : ns. et .ns)
est-ce que je pourrais te transférer mon document exel pour que tu constates l'ampleur des dégats ? ce serait plus simple pour expliciter le pourquoi de mes comment.... si oui, quelle est la procédure ? (je suis sur le forum par l'intermédiaire d'ie) Mercii beaucoup Céline
S'il est moins gros que 500ko, passe par www.cjoint.com sinon direct dans ma bal (enleve les : ns. et .ns)