OVH Cloud OVH Cloud

ouverture d'un autre classeur

5 réponses
Avatar
testou
bonjour,
pour louverture d'un autre classeur via a un bouton de commande sur le
classeur 1
ja'i ce code vba
Workbooks.Add ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\classeurs1.xls
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

le probleme qui se pose c'est que si le fichier est ouvert sur un autre
ordi, mon code va génerer une erreur, car je ne saurai pas sur le meme
emplacement c:\documentsand settings

y'a t'il un autre moyen pour que toutes les personnes puisse utiliser ce
fichier depuis n'importe quel ordi avec les meme fonctionalités.

merci

5 réponses

Avatar
Joël GARBE
Coucou !

Workbooks.Add n'a jamais ouvert un classeur ;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"testou" a écrit dans le message de news:

bonjour,
pour louverture d'un autre classeur via a un bouton de commande sur le
classeur 1
ja'i ce code vba
Workbooks.Add ActiveWorkbook.SaveAs Filename:= _
"C:Documents and Settingsclasseurs1.xls
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
End Sub

le probleme qui se pose c'est que si le fichier est ouvert sur un autre
ordi, mon code va génerer une erreur, car je ne saurai pas sur le meme
emplacement c:documentsand settings

y'a t'il un autre moyen pour que toutes les personnes puisse utiliser ce
fichier depuis n'importe quel ordi avec les meme fonctionalités.

merci



Avatar
Clément Marcotte
news://msnews.microsoft.com/microsoft.public.fr.excel


"testou" a écrit dans le message de
news:
bonjour,
pour louverture d'un autre classeur via a un bouton de commande sur
le

classeur 1
ja'i ce code vba
Workbooks.Add ActiveWorkbook.SaveAs Filename:= _
"C:Documents and Settingsclasseurs1.xls
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
End Sub

le probleme qui se pose c'est que si le fichier est ouvert sur un
autre

ordi, mon code va génerer une erreur, car je ne saurai pas sur le
meme

emplacement c:documentsand settings

y'a t'il un autre moyen pour que toutes les personnes puisse
utiliser ce

fichier depuis n'importe quel ordi avec les meme fonctionalités.

merci



Avatar
LeSteph
Bonsoir testou,
Comme dit Joel ,
Workbooks.Add sert plutôt à creer un nouveau classeur
donc
il n'a pas besoin d'un chemin particulier
sauf
si tu utilises (Versions récentes d'excel)
Workbooks.Add ("C:MoncheminMonclasseur.xlt")
ce qui génère un nouveau classeur selon un modèle existant.
Sinon pour réenregistrer un nouveau classeur sur d'autres postes
à toi de jouer pour creer un projet qui utilise des chemins analogues sur
les
différents postes où il va servir sinon pour un nouveau chemin le cas
échéant
MkDir ou changer ChDir...peuvent t'aider.

lSteph

"testou" a écrit dans le message de news:

bonjour,
pour louverture d'un autre classeur via a un bouton de commande sur le
classeur 1
ja'i ce code vba
Workbooks.Add ActiveWorkbook.SaveAs Filename:= _
"C:Documents and Settingsclasseurs1.xls
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
End Sub

le probleme qui se pose c'est que si le fichier est ouvert sur un autre
ordi, mon code va génerer une erreur, car je ne saurai pas sur le meme
emplacement c:documentsand settings

y'a t'il un autre moyen pour que toutes les personnes puisse utiliser ce
fichier depuis n'importe quel ordi avec les meme fonctionalités.

merci



Avatar
michdenis
Bonjour Testou,

'Pour ajouter(ouvrir) un classeur standard
Workbooks.Add

'Pour ouvrir un classeur
Workbooks.OPen "C:ExcelClasseur1.xls"

'Pour enregistrer un classeur sous un nom particulier :
ThisWorkbook.SaveAs "c:ExcelLe nom Désiré"

'Pour sauvegarder le classeur :
ThisWorkbook.Save

Regarde dans l'aide d'excel, chacune des méthodes énoncés "Open", "SaveAs"," Save", "ADD" ont des paramêtres qui peuvent
être très utile selon les circonstances.

Voici le message déjà paru sur ce forum pour un problème identique. Maintenant, Essaie de comprendre comme elle
fonctionne et adapte là à ta situation.

La Question était :

Lors de l'utilisation d'un fichier accessible par plusieurs
utilisateurs: si un utilisateur A ouvre le fichier, un
utilisateur B voulant ouvrir le fichier obtient une message
lui annonçant que ce fichier n'est accessible qu'en lecture seule.
Comment détecter et faire patienter l'utilisateur B le temps
de l'utilisation du fichier par l'utilisateur A.


----------Début de copie----------


Moi j'ai un eu problème similaire en réseau NT avec Excel 2000.
Suite à l'aide de plusieurs sur ce forum, (encore merci à El-Joker, Frédéric
Sigonneau et Thierry Rural, voir ficelle "Macro Workbooks.Open sur fichier
déjà en cours de lecture" du 10/12/2001 11:54) j'ai fini par réussir à faire
çà...

Pour ce genre de fichiers qui sont souvent ouverts (pas longtemps) par
d'autres utilisateur, j'ai créé une interface d'ouverture, (en fait un
personnal.xls dans le startup).
Cette interface (non hiden) contient les boutons d'ouverture directe des
fichiers en question.
Dans l'exemple le bouton d'ouverture de "Demand.xls" lance la macro
"CallDemands"

C'est radical! si le fichier est ouvert = Message (et il s'ouvre pas) sinon
il s'ouvre.

Voici le code : (à mettre dans un module standard du personnal.xls)

Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer

On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function

Sub CallDemands()
Dim Msg, Style, Title
If IsFileOpen("P:DevelopmentsDemand.xls") Then
MsgBox "File Already in use" & Chr(13) & "Please Try Latter"
Else
Workbooks.Open "P:DevelopmentsDemand.xls"
End If
End Sub

----------Fin de copie----------


Salutations!




"testou" a écrit dans le message de news:

bonjour,
pour louverture d'un autre classeur via a un bouton de commande sur le
classeur 1
ja'i ce code vba
Workbooks.Add ActiveWorkbook.SaveAs Filename:= _
"C:Documents and Settingsclasseurs1.xls
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
End Sub

le probleme qui se pose c'est que si le fichier est ouvert sur un autre
ordi, mon code va génerer une erreur, car je ne saurai pas sur le meme
emplacement c:documentsand settings

y'a t'il un autre moyen pour que toutes les personnes puisse utiliser ce
fichier depuis n'importe quel ordi avec les meme fonctionalités.

merci
Avatar
testou
effectivement je cree un autre classeur via le code vba que tu as cité
mais le nouveau classeur que j'ai creer je voudrai lui donner un nom via du
code vba

mais le probleme c'est que si je teste le bouton de commande qui me permet
d'executer la macro et de créer ce nouveau classeur et lenommer, mon probleme
sera que je pourrai le faire sur mon ordinateur mais si le fichier est copié
sur un autre ordi, il y aura un probleme au niveau du répertoire.

voila merci

"michdenis" wrote:

Bonjour Testou,

'Pour ajouter(ouvrir) un classeur standard
Workbooks.Add

'Pour ouvrir un classeur
Workbooks.OPen "C:ExcelClasseur1.xls"

'Pour enregistrer un classeur sous un nom particulier :
ThisWorkbook.SaveAs "c:ExcelLe nom Désiré"

'Pour sauvegarder le classeur :
ThisWorkbook.Save

Regarde dans l'aide d'excel, chacune des méthodes énoncés "Open", "SaveAs"," Save", "ADD" ont des paramêtres qui peuvent
être très utile selon les circonstances.

Voici le message déjà paru sur ce forum pour un problème identique. Maintenant, Essaie de comprendre comme elle
fonctionne et adapte là à ta situation.

La Question était :

Lors de l'utilisation d'un fichier accessible par plusieurs
utilisateurs: si un utilisateur A ouvre le fichier, un
utilisateur B voulant ouvrir le fichier obtient une message
lui annonçant que ce fichier n'est accessible qu'en lecture seule.
Comment détecter et faire patienter l'utilisateur B le temps
de l'utilisation du fichier par l'utilisateur A.


----------Début de copie----------


Moi j'ai un eu problème similaire en réseau NT avec Excel 2000.
Suite à l'aide de plusieurs sur ce forum, (encore merci à El-Joker, Frédéric
Sigonneau et Thierry Rural, voir ficelle "Macro Workbooks.Open sur fichier
déjà en cours de lecture" du 10/12/2001 11:54) j'ai fini par réussir à faire
çà...

Pour ce genre de fichiers qui sont souvent ouverts (pas longtemps) par
d'autres utilisateur, j'ai créé une interface d'ouverture, (en fait un
personnal.xls dans le startup).
Cette interface (non hiden) contient les boutons d'ouverture directe des
fichiers en question.
Dans l'exemple le bouton d'ouverture de "Demand.xls" lance la macro
"CallDemands"

C'est radical! si le fichier est ouvert = Message (et il s'ouvre pas) sinon
il s'ouvre.

Voici le code : (à mettre dans un module standard du personnal.xls)

Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer

On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function

Sub CallDemands()
Dim Msg, Style, Title
If IsFileOpen("P:DevelopmentsDemand.xls") Then
MsgBox "File Already in use" & Chr(13) & "Please Try Latter"
Else
Workbooks.Open "P:DevelopmentsDemand.xls"
End If
End Sub

----------Fin de copie----------


Salutations!




"testou" a écrit dans le message de news:

bonjour,
pour louverture d'un autre classeur via a un bouton de commande sur le
classeur 1
ja'i ce code vba
Workbooks.Add ActiveWorkbook.SaveAs Filename:= _
"C:Documents and Settingsclasseurs1.xls
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
End Sub

le probleme qui se pose c'est que si le fichier est ouvert sur un autre
ordi, mon code va génerer une erreur, car je ne saurai pas sur le meme
emplacement c:documentsand settings

y'a t'il un autre moyen pour que toutes les personnes puisse utiliser ce
fichier depuis n'importe quel ordi avec les meme fonctionalités.

merci