Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Besoin d'un peu d'aide: Workbooks.open + VBA + alerte lecture seule

5 réponses
Avatar
Pat Rednef
Bonsoir =E0 vous,

Pourriez vous me sortir de mon blocage, Ho rien de psy, juste du VBA.
J'ai un fichier de base de donn=E9es en lecture seule pour =E9viter
d'=E9craser ou de faire des erreurs, je souhaite faire une mise =E0 jour
voulue avec donc un enregistrement =E0 la fin:

Comment faire en VBA pour dire ouvrir le fichier toto.xls, mettre les
liens =E0 jours, ne pas poser la question de lecture seule et l'ouvrir
mais pas en lecture seule !!

Ouvrir toto =3D pas de prob
Liens pas de pb
l'argument readonly et IgnoreReadOnlyRecommended je n'arrive pas =E0 les
=E9crire.
Ma mise =E0 jour est automatique et n=E9cessite un enregistrement =E0 la
fin, alors que mon utilisation quotidienne n=E9cessite l'invite et
l'ouverture en lecture seule.

F1 et open explique, mais pas moyen d utiliser les 2 parametres pour
une ouverture par VBA et sans lecture seule.. Excellabo=3D pas trouv=E9 de
routines comme cela,

Merci beaucoup =E0 vous, je craque

A de suite

Bonne soir=E9e

Pat

5 réponses

Avatar
michdenis
Bonsoir Pat,


Voici la liste de tous les paramètres de la méthode Open d'un Classeur

Workbooks.Open ....

expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter,
Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

Ce qui est particulier dans ta demande, tu veux ouvrir un fichier pour le mettre à jour et tu veux que ce fichier s'ouvre en lecture
seule. Comment penses-tu sauvegarder les données de ta mise à jour si le fichier est en lecture seule ?


Salutations!


"Pat Rednef" a écrit dans le message de news:
Bonsoir à vous,

Pourriez vous me sortir de mon blocage, Ho rien de psy, juste du VBA.
J'ai un fichier de base de données en lecture seule pour éviter
d'écraser ou de faire des erreurs, je souhaite faire une mise à jour
voulue avec donc un enregistrement à la fin:

Comment faire en VBA pour dire ouvrir le fichier toto.xls, mettre les
liens à jours, ne pas poser la question de lecture seule et l'ouvrir
mais pas en lecture seule !!

Ouvrir toto = pas de prob
Liens pas de pb
l'argument readonly et IgnoreReadOnlyRecommended je n'arrive pas à les
écrire.
Ma mise à jour est automatique et nécessite un enregistrement à la
fin, alors que mon utilisation quotidienne nécessite l'invite et
l'ouverture en lecture seule.

F1 et open explique, mais pas moyen d utiliser les 2 parametres pour
une ouverture par VBA et sans lecture seule.. Excellabo= pas trouvé de
routines comme cela,

Merci beaucoup à vous, je craque

A de suite

Bonne soirée

Pat
Avatar
Pat Rednef
Bonjour MichDenis,

Merci pour ton début de réponse.

Je n'ai pas été assez clair je crois:

Je souhaite faire 2 actions distinctes:

la première (cas consultation)
1/ ouvrir via VBa un fichier qui est enregistré en lecture seule, sans
l'alerte et en lecture seule (pour consultation des fiches)
il me manque dans ce cas que la commande qui permet de ne pas avoir
l'invite "voulez vous..."
quel est ce code (fichier toto.xls, dans racine C:) ?

La deuxième (cas Mise à Jour / création des données)
2/ Lors d'une MAJ je souhaite ouvrir ce mêm fichier (qui est
sauvegardé en lecture seule) MAIS en lecture "non-seule" pour pouvoir
enregistrer ce fichier à la fin de la MAJ
Dans ce cas, je fais workbooks.open etc etc, mais pas moyen de
renseigner les paramêtres ReadOnly et IgnoreReadOnlyRecommended ma
synthaxe est fausse et produit un bogg.(j'ai cherché plus de
3 heures, dans les aides et autres sites !!, je ne suis pas assez bon
pour résoudre cela seul!!)
Quel est cet autre bout de code ?

Je souhaite donc connaitre, et par la même occasion comprendre, les 2
bouts de code nécessaires à l'ouverture d'un fichier enregistré en
préférence lecture seule mais soit ouvert en lecture seul, soit
ouvert en lecture non seule.

Merci à toi, la compétence de MichDenis étant connu au dela du
forum,

Bien cordialement, et un double merci pour cette question en période
de vacances (pas pour moi !)

Pat
Avatar
michdenis
Bonjour Pat,

Dans la mesure où tu as enregistré ton fichier avec la restriction "Lecture seule", Il semble que ce soit très difficile (impossible
?) de pourvoir l'ouvrir en VBA tout en modifiant le statut du fichier "Lecture seule" pour "Lecture-écriture" et ce sans avoirà
répondre au fameux message à savoir si tu veux vraiment ouvrir le fichier en lecture-écriture.

La raison est celle-ci que tu peux trouver dans l'aide d'excel sous la méthode : "ChangeFileAccess"
"Si vous consultez un fichier ouvert en lecture seule, vous n'y avez pas un accès exclusif. Si vous faites passer le mode d'accès à
un fichier de « lecture seule » en « lecture-écriture », Microsoft Excel doit charger une nouvelle copie du fichier pour être sûr
qu'aucune modification n'y a été apportée pendant que vous le consultiez en lecture seule."

Cependant, si tu enregistres ton fichier sans l'attribut "lecture seule", tu peux modifier à chaque ouverture le "Statut" de ton
fichier très facilement comme ceci :

Ton fichier exemple Test1.xls n'a pas été enregistré en lecture seule
Workbooks.Open "c:Test1.xls"

Cette ligne de commande rendra ton fichier en lecture seule à l'ouverture
Workbooks("Test1.xls").ChangeFileAccess xlReadOnly

Pour qu'il revienne en mode lecture-écriture, tu utilises la commande
Workbooks("Test1.xls").ChangeFileAccess xlReadWrite

En aucun moment ton fichier est enregistré en lecture seule, c'est seulement lorsqu'il est ouvert que son statut est modifié.


À toi de décider, l'approche qui convient mieux à ton application.


Salutations!





"Pat Rednef" a écrit dans le message de news:
Bonjour MichDenis,

Merci pour ton début de réponse.

Je n'ai pas été assez clair je crois:

Je souhaite faire 2 actions distinctes:

la première (cas consultation)
1/ ouvrir via VBa un fichier qui est enregistré en lecture seule, sans
l'alerte et en lecture seule (pour consultation des fiches)
il me manque dans ce cas que la commande qui permet de ne pas avoir
l'invite "voulez vous..."
quel est ce code (fichier toto.xls, dans racine C:) ?

La deuxième (cas Mise à Jour / création des données)
2/ Lors d'une MAJ je souhaite ouvrir ce mêm fichier (qui est
sauvegardé en lecture seule) MAIS en lecture "non-seule" pour pouvoir
enregistrer ce fichier à la fin de la MAJ
Dans ce cas, je fais workbooks.open etc etc, mais pas moyen de
renseigner les paramêtres ReadOnly et IgnoreReadOnlyRecommended ma
synthaxe est fausse et produit un bogg.(j'ai cherché plus de
3 heures, dans les aides et autres sites !!, je ne suis pas assez bon
pour résoudre cela seul!!)
Quel est cet autre bout de code ?

Je souhaite donc connaitre, et par la même occasion comprendre, les 2
bouts de code nécessaires à l'ouverture d'un fichier enregistré en
préférence lecture seule mais soit ouvert en lecture seul, soit
ouvert en lecture non seule.

Merci à toi, la compétence de MichDenis étant connu au dela du
forum,

Bien cordialement, et un double merci pour cette question en période
de vacances (pas pour moi !)

Pat
Avatar
Alain CROS
Bonjour.

Méthode agricole :

Sub OuvreSansRienDire()
SendKeys "{TAB}~"
Workbooks.Open "C:toto.xls"
End Sub

Alain CROS

"Pat Rednef" a écrit dans le message de news:
Bonjour MichDenis,

Merci pour ton début de réponse.

Je n'ai pas été assez clair je crois:

Je souhaite faire 2 actions distinctes:

la première (cas consultation)
1/ ouvrir via VBa un fichier qui est enregistré en lecture seule, sans
l'alerte et en lecture seule (pour consultation des fiches)
il me manque dans ce cas que la commande qui permet de ne pas avoir
l'invite "voulez vous..."
quel est ce code (fichier toto.xls, dans racine C:) ?

La deuxième (cas Mise à Jour / création des données)
2/ Lors d'une MAJ je souhaite ouvrir ce mêm fichier (qui est
sauvegardé en lecture seule) MAIS en lecture "non-seule" pour pouvoir
enregistrer ce fichier à la fin de la MAJ
Dans ce cas, je fais workbooks.open etc etc, mais pas moyen de
renseigner les paramêtres ReadOnly et IgnoreReadOnlyRecommended ma
synthaxe est fausse et produit un bogg.(j'ai cherché plus de
3 heures, dans les aides et autres sites !!, je ne suis pas assez bon
pour résoudre cela seul!!)
Quel est cet autre bout de code ?

Je souhaite donc connaitre, et par la même occasion comprendre, les 2
bouts de code nécessaires à l'ouverture d'un fichier enregistré en
préférence lecture seule mais soit ouvert en lecture seul, soit
ouvert en lecture non seule.

Merci à toi, la compétence de MichDenis étant connu au dela du
forum,

Bien cordialement, et un double merci pour cette question en période
de vacances (pas pour moi !)

Pat
Avatar
michdenis
Merci Alain, ta méthode agricole fonctionne très bien ! ;-)

Je l'avais oubliée celle-là, elle pourtant bien partique.


Salutations!


"Alain CROS" a écrit dans le message de news: ur%
Bonjour.

Méthode agricole :

Sub OuvreSansRienDire()
SendKeys "{TAB}~"
Workbooks.Open "C:toto.xls"
End Sub

Alain CROS

"Pat Rednef" a écrit dans le message de news:
Bonjour MichDenis,

Merci pour ton début de réponse.

Je n'ai pas été assez clair je crois:

Je souhaite faire 2 actions distinctes:

la première (cas consultation)
1/ ouvrir via VBa un fichier qui est enregistré en lecture seule, sans
l'alerte et en lecture seule (pour consultation des fiches)
il me manque dans ce cas que la commande qui permet de ne pas avoir
l'invite "voulez vous..."
quel est ce code (fichier toto.xls, dans racine C:) ?

La deuxième (cas Mise à Jour / création des données)
2/ Lors d'une MAJ je souhaite ouvrir ce mêm fichier (qui est
sauvegardé en lecture seule) MAIS en lecture "non-seule" pour pouvoir
enregistrer ce fichier à la fin de la MAJ
Dans ce cas, je fais workbooks.open etc etc, mais pas moyen de
renseigner les paramêtres ReadOnly et IgnoreReadOnlyRecommended ma
synthaxe est fausse et produit un bogg.(j'ai cherché plus de
3 heures, dans les aides et autres sites !!, je ne suis pas assez bon
pour résoudre cela seul!!)
Quel est cet autre bout de code ?

Je souhaite donc connaitre, et par la même occasion comprendre, les 2
bouts de code nécessaires à l'ouverture d'un fichier enregistré en
préférence lecture seule mais soit ouvert en lecture seul, soit
ouvert en lecture non seule.

Merci à toi, la compétence de MichDenis étant connu au dela du
forum,

Bien cordialement, et un double merci pour cette question en période
de vacances (pas pour moi !)

Pat