quelle serait la meilleure procédure à faire pour aller d'un classeur
à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si
le classeur n'est pas ouvert ça plante,
donc il faudrait que ce soit
ou
une activation s'il est ouvert
ou
l'ouvrir s'il ne l'est pas
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé Branchu
Bonjour Zoltan
La référence suivante permet de tester si un fichier excel est ouvert http://support.microsoft.com/default.aspx?scid=KB;EN-US;213383
dixit le code ci dessous Sub TestFileOpened()
' Test to see if the file is open. If IsFileOpen("c:Book2.xls") Then ' Display a message stating the file in use. MsgBox "File already in use!" ' ' Add code here to handle case where file is open by another ' user. ' Else ' Display a message stating the file is not in use. MsgBox "File not in use!" ' Open the file in Microsoft Excel. Workbooks.Open "c:Book2.xls" ' ' Add code here to handle case where file is NOT open by another ' user. ' End If
End Sub
' This function checks to see if a file is open or not. If the file is ' already open, it returns True. If the file is not open, it returns ' False. Otherwise, a run-time error occurs because there is ' some other problem accessing the file.
Function IsFileOpen(filename As String) Dim filenum As Integer, errnum As Integer
On Error Resume Next ' Turn error checking off. filenum = FreeFile() ' Get a free file number. ' Attempt to open the file and lock it. Open filename For Input Lock Read As #filenum Close filenum ' Close the file. errnum = Err ' Save the error number that occurred. On Error GoTo 0 ' Turn error checking back on.
' Check to see which error occurred. Select Case errnum
' No error occurred. ' File is NOT already open by another user. Case 0 IsFileOpen = False
' Error number for "Permission Denied." ' File is already opened by another user. Case 70 IsFileOpen = True
' Another error occurred. Case Else Error errnum End Select
End Function
A partir du moment ou le fichier est fermer on doit pouvoir l'ouvrir au besoin
-- Bonne Journée =================================================== Hervé Branchu, Sitel France pour l'Assistance Utilisateur Microsoft
"Zoltan" a écrit dans le message de news:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si le classeur n'est pas ouvert ça plante, donc il faudrait que ce soit ou une activation s'il est ouvert ou l'ouvrir s'il ne l'est pas
La référence suivante permet de tester si un fichier excel est ouvert
http://support.microsoft.com/default.aspx?scid=KB;EN-US;213383
dixit le code ci dessous
Sub TestFileOpened()
' Test to see if the file is open.
If IsFileOpen("c:Book2.xls") Then
' Display a message stating the file in use.
MsgBox "File already in use!"
'
' Add code here to handle case where file is open by another
' user.
'
Else
' Display a message stating the file is not in use.
MsgBox "File not in use!"
' Open the file in Microsoft Excel.
Workbooks.Open "c:Book2.xls"
'
' Add code here to handle case where file is NOT open by another
' user.
'
End If
End Sub
' This function checks to see if a file is open or not. If the file is
' already open, it returns True. If the file is not open, it returns
' False. Otherwise, a run-time error occurs because there is
' some other problem accessing the file.
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next ' Turn error checking off.
filenum = FreeFile() ' Get a free file number.
' Attempt to open the file and lock it.
Open filename For Input Lock Read As #filenum
Close filenum ' Close the file.
errnum = Err ' Save the error number that occurred.
On Error GoTo 0 ' Turn error checking back on.
' Check to see which error occurred.
Select Case errnum
' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False
' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True
' Another error occurred.
Case Else
Error errnum
End Select
End Function
A partir du moment ou le fichier est fermer on doit pouvoir l'ouvrir au besoin
--
Bonne Journée
=================================================== Hervé Branchu, Sitel France pour l'Assistance Utilisateur Microsoft
"Zoltan" <zoltan@wanadoo.fr> a écrit dans le message de news:
uE5PV3mZDHA.384@TK2MSFTNGP12.phx.gbl...
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur
à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si
le classeur n'est pas ouvert ça plante,
donc il faudrait que ce soit
ou
une activation s'il est ouvert
ou
l'ouvrir s'il ne l'est pas
La référence suivante permet de tester si un fichier excel est ouvert http://support.microsoft.com/default.aspx?scid=KB;EN-US;213383
dixit le code ci dessous Sub TestFileOpened()
' Test to see if the file is open. If IsFileOpen("c:Book2.xls") Then ' Display a message stating the file in use. MsgBox "File already in use!" ' ' Add code here to handle case where file is open by another ' user. ' Else ' Display a message stating the file is not in use. MsgBox "File not in use!" ' Open the file in Microsoft Excel. Workbooks.Open "c:Book2.xls" ' ' Add code here to handle case where file is NOT open by another ' user. ' End If
End Sub
' This function checks to see if a file is open or not. If the file is ' already open, it returns True. If the file is not open, it returns ' False. Otherwise, a run-time error occurs because there is ' some other problem accessing the file.
Function IsFileOpen(filename As String) Dim filenum As Integer, errnum As Integer
On Error Resume Next ' Turn error checking off. filenum = FreeFile() ' Get a free file number. ' Attempt to open the file and lock it. Open filename For Input Lock Read As #filenum Close filenum ' Close the file. errnum = Err ' Save the error number that occurred. On Error GoTo 0 ' Turn error checking back on.
' Check to see which error occurred. Select Case errnum
' No error occurred. ' File is NOT already open by another user. Case 0 IsFileOpen = False
' Error number for "Permission Denied." ' File is already opened by another user. Case 70 IsFileOpen = True
' Another error occurred. Case Else Error errnum End Select
End Function
A partir du moment ou le fichier est fermer on doit pouvoir l'ouvrir au besoin
-- Bonne Journée =================================================== Hervé Branchu, Sitel France pour l'Assistance Utilisateur Microsoft
"Zoltan" a écrit dans le message de news:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si le classeur n'est pas ouvert ça plante, donc il faudrait que ce soit ou une activation s'il est ouvert ou l'ouvrir s'il ne l'est pas
sub ouvre() on error goto piegeerreur ----- ----- ----- exit sub piegeerreur: select case err case le numéro d'erreur pour fichier non ouvert (disponible à quelque part dans l'aide) worbooks.open le nom du fichier resume
case else end select end sub
"Zoltan" a écrit dans le message de news:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur
à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si le classeur n'est pas ouvert ça plante, donc il faudrait que ce soit ou une activation s'il est ouvert ou l'ouvrir s'il ne l'est pas
sub ouvre()
on error goto piegeerreur
-----
-----
-----
exit sub
piegeerreur:
select case err
case le numéro d'erreur pour fichier non ouvert (disponible à quelque
part dans l'aide)
worbooks.open le nom du fichier
resume
case else
end select
end sub
"Zoltan" <zoltan@wanadoo.fr> a écrit dans le message de
news:uE5PV3mZDHA.384@TK2MSFTNGP12.phx.gbl...
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un
classeur
à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si
le classeur n'est pas ouvert ça plante,
donc il faudrait que ce soit
ou
une activation s'il est ouvert
ou
l'ouvrir s'il ne l'est pas
sub ouvre() on error goto piegeerreur ----- ----- ----- exit sub piegeerreur: select case err case le numéro d'erreur pour fichier non ouvert (disponible à quelque part dans l'aide) worbooks.open le nom du fichier resume
case else end select end sub
"Zoltan" a écrit dans le message de news:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur
à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si le classeur n'est pas ouvert ça plante, donc il faudrait que ce soit ou une activation s'il est ouvert ou l'ouvrir s'il ne l'est pas
bonsoir zoltan si ta macro ouvre le classeur avec Workbooks.Open FileName:="C:tartanpion.xls" il te suffit ensuite de faire Workbooks("tartanpion.xls").Activate pour y revenir si tu l'as quitté sans le fermer
mais j'ai du mal comprendre la question et je vais m'auto-punir en doublant la punition d'AV, sauf que je vais remplacer le gothique par l'arabe, ce qui nécessitera que je tourne mon clavier dans l'autre sens pour pouvoir écrire de droite à gauche
jps
Zoltan wrote:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si le classeur n'est pas ouvert ça plante, donc il faudrait que ce soit ou une activation s'il est ouvert ou l'ouvrir s'il ne l'est pas
bonsoir zoltan
si ta macro ouvre le classeur avec
Workbooks.Open FileName:="C:tartanpion.xls"
il te suffit ensuite de faire
Workbooks("tartanpion.xls").Activate
pour y revenir si tu l'as quitté sans le fermer
mais j'ai du mal comprendre la question et je vais m'auto-punir en
doublant la punition d'AV, sauf que je vais remplacer le gothique par
l'arabe, ce qui nécessitera que je tourne mon clavier dans l'autre sens
pour pouvoir écrire de droite à gauche
jps
Zoltan wrote:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur
à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si
le classeur n'est pas ouvert ça plante,
donc il faudrait que ce soit
ou
une activation s'il est ouvert
ou
l'ouvrir s'il ne l'est pas
bonsoir zoltan si ta macro ouvre le classeur avec Workbooks.Open FileName:="C:tartanpion.xls" il te suffit ensuite de faire Workbooks("tartanpion.xls").Activate pour y revenir si tu l'as quitté sans le fermer
mais j'ai du mal comprendre la question et je vais m'auto-punir en doublant la punition d'AV, sauf que je vais remplacer le gothique par l'arabe, ce qui nécessitera que je tourne mon clavier dans l'autre sens pour pouvoir écrire de droite à gauche
jps
Zoltan wrote:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si le classeur n'est pas ouvert ça plante, donc il faudrait que ce soit ou une activation s'il est ouvert ou l'ouvrir s'il ne l'est pas
C'est pas le clavier qu'il faut retourner, c'est l'écran pffffffffffffff!!!
MacBob 8°)))
Le 19/08/03 18:44, dans , « sabatier » a écrit :
bonsoir zoltan si ta macro ouvre le classeur avec Workbooks.Open FileName:="C:tartanpion.xls" il te suffit ensuite de faire Workbooks("tartanpion.xls").Activate pour y revenir si tu l'as quitté sans le fermer
mais j'ai du mal comprendre la question et je vais m'auto-punir en doublant la punition d'AV, sauf que je vais remplacer le gothique par l'arabe, ce qui nécessitera que je tourne mon clavier dans l'autre sens pour pouvoir écrire de droite à gauche
jps
Zoltan wrote:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si le classeur n'est pas ouvert ça plante, donc il faudrait que ce soit ou une activation s'il est ouvert ou l'ouvrir s'il ne l'est pas
C'est pas le clavier qu'il faut retourner, c'est l'écran pffffffffffffff!!!
MacBob 8°)))
Le 19/08/03 18:44, dans 3F4253E3.749FCD9D@wanadoo.fr, « sabatier »
<jpsabat@wanadoo.fr> a écrit :
bonsoir zoltan
si ta macro ouvre le classeur avec
Workbooks.Open FileName:="C:tartanpion.xls"
il te suffit ensuite de faire
Workbooks("tartanpion.xls").Activate
pour y revenir si tu l'as quitté sans le fermer
mais j'ai du mal comprendre la question et je vais m'auto-punir en
doublant la punition d'AV, sauf que je vais remplacer le gothique par
l'arabe, ce qui nécessitera que je tourne mon clavier dans l'autre sens
pour pouvoir écrire de droite à gauche
jps
Zoltan wrote:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur
à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si
le classeur n'est pas ouvert ça plante,
donc il faudrait que ce soit
ou
une activation s'il est ouvert
ou
l'ouvrir s'il ne l'est pas
C'est pas le clavier qu'il faut retourner, c'est l'écran pffffffffffffff!!!
MacBob 8°)))
Le 19/08/03 18:44, dans , « sabatier » a écrit :
bonsoir zoltan si ta macro ouvre le classeur avec Workbooks.Open FileName:="C:tartanpion.xls" il te suffit ensuite de faire Workbooks("tartanpion.xls").Activate pour y revenir si tu l'as quitté sans le fermer
mais j'ai du mal comprendre la question et je vais m'auto-punir en doublant la punition d'AV, sauf que je vais remplacer le gothique par l'arabe, ce qui nécessitera que je tourne mon clavier dans l'autre sens pour pouvoir écrire de droite à gauche
jps
Zoltan wrote:
Salut à tous,
quelle serait la meilleure procédure à faire pour aller d'un classeur à un autre avec une macro?
j'ai bien fait des macros qui le font, mais le problème est que si le classeur n'est pas ouvert ça plante, donc il faudrait que ce soit ou une activation s'il est ouvert ou l'ouvrir s'il ne l'est pas
comment mettre un bouton et lui affecter cette procédure? j'ai oublié de préciser que j'ai fais un bouton avec la boite à outils
et j'ai ça : Private Sub CommandButton1_Click()
End Sub
le problème c'est que la procédure commence par : Sub TestFileOpened()
donc je pense qu'il y a un conflit entre les deux "Sub" qq chose à enlever mais quoi?
Zoltan
Private Sub CommandButton1_Click()
End Sub
le problème c'est que la procédure commence par : Sub TestFileOpened()
donc je pense qu'il y a un conflit entre les deux "Sub" qq chose à enlever mais quoi?
ok, ça fonctionne maintenant, j'ai remplacé Sub TestFileOpened() par Sub CommandButton1_Click()
le souci c'est que si le fichier est ouvert il dit MsgBox "File already in use!" mais ne l'active pas, pourquoi n'exécute -t-il pas la suite de la procédure?
Private Sub CommandButton1_Click()
End Sub
le problème c'est que la procédure commence par :
Sub TestFileOpened()
donc je pense qu'il y a un conflit entre les deux "Sub"
qq chose à enlever mais quoi?
ok, ça fonctionne maintenant, j'ai remplacé
Sub TestFileOpened()
par
Sub CommandButton1_Click()
le souci c'est que si le fichier est ouvert il dit
MsgBox "File already in use!"
mais ne l'active pas, pourquoi n'exécute -t-il pas la suite de
la procédure?
le problème c'est que la procédure commence par : Sub TestFileOpened()
donc je pense qu'il y a un conflit entre les deux "Sub" qq chose à enlever mais quoi?
ok, ça fonctionne maintenant, j'ai remplacé Sub TestFileOpened() par Sub CommandButton1_Click()
le souci c'est que si le fichier est ouvert il dit MsgBox "File already in use!" mais ne l'active pas, pourquoi n'exécute -t-il pas la suite de la procédure?