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

Copier dans un classeur déjà ouvert ou pas

20 réponses
Avatar
HD
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur (fermé
et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert, il y a
une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi bien avec
le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé

10 réponses

1 2
Avatar
LeSteph
Bonsoir,
au debut de ta macro
fermer le classeur:

Sub fermit()
Dim wb
For Each wb In Workbooks
If wb.Name = "Classeur2" Then wb.Close True
Next

End Sub
'attention au nom du classeur c'est sensible à la casse

'lsteph

"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert, il y
a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé



Avatar
Joël GARBE
Bonsoir,

faire une boucle qui test si le clsseur est déjà ouvert, du genre :

Dim oClass as workbook
dim EstOuvert as boolen
estouvertúlse
for each oclass in workbooks
if oclass.name = "NomDuClasseur" then
estouvert = true
exit for
endif
next
if estouvert then
workbooks("Nom DuClasseur").Activate ' (si nécessaire)
else
ouvrir le classeur
endif


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert, il y
a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé



Avatar
jps
ben moi, je mets un
On Error Resume Next
avant la ligne qui exécute l'ouverture du second classeur
puis en dessous un petit coup de
workbooks("Nom DuClasseur").Activate
ça devrait marcher non?
jps

"Joël GARBE" a écrit dans le message de
news:41a7a650$0$31688$
Bonsoir,

faire une boucle qui test si le clsseur est déjà ouvert, du genre :

Dim oClass as workbook
dim EstOuvert as boolen
estouvertúlse
for each oclass in workbooks
if oclass.name = "NomDuClasseur" then
estouvert = true
exit for
endif
next
if estouvert then
workbooks("Nom DuClasseur").Activate ' (si nécessaire)
else
ouvrir le classeur
endif


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert, il
y


a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé







Avatar
Joël GARBE
Certe, à condition que l'erreur vienne du fait que le classeur est déjà
ouvert, et non du fait qu'il n'existe pas dans le dossier indiqué par exmple
;-)

Pour ma part, je préfère analyser les sources possibles d'erreur, et prendre
les décisions qui s'imposent (sauf quand la source d'erreur est unique, il
va sans dire...)

cela signifie qu'avant d'ouvir le classeur, je vérifie qu'il existe à
l'endroit attendu

Tout est question de goût

Bonne soirée JP ;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"jps" a écrit dans le message de
news:
ben moi, je mets un
On Error Resume Next
avant la ligne qui exécute l'ouverture du second classeur
puis en dessous un petit coup de
workbooks("Nom DuClasseur").Activate
ça devrait marcher non?
jps

"Joël GARBE" a écrit dans le message de
news:41a7a650$0$31688$
Bonsoir,

faire une boucle qui test si le clsseur est déjà ouvert, du genre :

Dim oClass as workbook
dim EstOuvert as boolen
estouvertúlse
for each oclass in workbooks
if oclass.name = "NomDuClasseur" then
estouvert = true
exit for
endif
next
if estouvert then
workbooks("Nom DuClasseur").Activate ' (si nécessaire)
else
ouvrir le classeur
endif


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert, il
y


a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé










Avatar
LeSteph
Dites les copaings
croyez pas que ma solution elle est plus simple
si c'est le classeur on le ferme et sinon c'est bon
ô peuchère

lSteph
"Joël GARBE" a écrit dans le message de news:
41a7aa3b$0$795$
Certe, à condition que l'erreur vienne du fait que le classeur est déjà
ouvert, et non du fait qu'il n'existe pas dans le dossier indiqué par
exmple ;-)

Pour ma part, je préfère analyser les sources possibles d'erreur, et
prendre les décisions qui s'imposent (sauf quand la source d'erreur est
unique, il va sans dire...)

cela signifie qu'avant d'ouvir le classeur, je vérifie qu'il existe à
l'endroit attendu

Tout est question de goût

Bonne soirée JP ;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"jps" a écrit dans le message de
news:
ben moi, je mets un
On Error Resume Next
avant la ligne qui exécute l'ouverture du second classeur
puis en dessous un petit coup de
workbooks("Nom DuClasseur").Activate
ça devrait marcher non?
jps

"Joël GARBE" a écrit dans le message de
news:41a7a650$0$31688$
Bonsoir,

faire une boucle qui test si le clsseur est déjà ouvert, du genre :

Dim oClass as workbook
dim EstOuvert as boolen
estouvertúlse
for each oclass in workbooks
if oclass.name = "NomDuClasseur" then
estouvert = true
exit for
endif
next
if estouvert then
workbooks("Nom DuClasseur").Activate ' (si nécessaire)
else
ouvrir le classeur
endif


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert,
il
y


a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé














Avatar
Joël GARBE
Peut-être, mais on la voit pas ta solution !!!

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"LeSteph" a écrit dans le message de news:
%
Dites les copaings
croyez pas que ma solution elle est plus simple
si c'est le classeur on le ferme et sinon c'est bon
ô peuchère

lSteph
"Joël GARBE" a écrit dans le message de news:
41a7aa3b$0$795$
Certe, à condition que l'erreur vienne du fait que le classeur est déjà
ouvert, et non du fait qu'il n'existe pas dans le dossier indiqué par
exmple ;-)

Pour ma part, je préfère analyser les sources possibles d'erreur, et
prendre les décisions qui s'imposent (sauf quand la source d'erreur est
unique, il va sans dire...)

cela signifie qu'avant d'ouvir le classeur, je vérifie qu'il existe à
l'endroit attendu

Tout est question de goût

Bonne soirée JP ;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"jps" a écrit dans le message
de news:
ben moi, je mets un
On Error Resume Next
avant la ligne qui exécute l'ouverture du second classeur
puis en dessous un petit coup de
workbooks("Nom DuClasseur").Activate
ça devrait marcher non?
jps

"Joël GARBE" a écrit dans le message de
news:41a7a650$0$31688$
Bonsoir,

faire une boucle qui test si le clsseur est déjà ouvert, du genre :

Dim oClass as workbook
dim EstOuvert as boolen
estouvertúlse
for each oclass in workbooks
if oclass.name = "NomDuClasseur" then
estouvert = true
exit for
endif
next
if estouvert then
workbooks("Nom DuClasseur").Activate ' (si nécessaire)
else
ouvrir le classeur
endif


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert,
il
y


a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi
bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé


















Avatar
LeSteph
:?
juste sous le topic de hd à 22h53
'---
au debut de ta macro
fermer le classeur:

Sub fermit()
Dim wb
For Each wb In Workbooks
If wb.Name = "Classeur2" Then wb.Close True
Next

End Sub
'--

"Joël GARBE" a écrit dans le message de news:
41a7ac6b$0$16331$
Peut-être, mais on la voit pas ta solution !!!

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"LeSteph" a écrit dans le message de news:
%
Dites les copaings
croyez pas que ma solution elle est plus simple
si c'est le classeur on le ferme et sinon c'est bon
ô peuchère

lSteph
"Joël GARBE" a écrit dans le message de news:
41a7aa3b$0$795$
Certe, à condition que l'erreur vienne du fait que le classeur est déjà
ouvert, et non du fait qu'il n'existe pas dans le dossier indiqué par
exmple ;-)

Pour ma part, je préfère analyser les sources possibles d'erreur, et
prendre les décisions qui s'imposent (sauf quand la source d'erreur est
unique, il va sans dire...)

cela signifie qu'avant d'ouvir le classeur, je vérifie qu'il existe à
l'endroit attendu

Tout est question de goût

Bonne soirée JP ;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"jps" a écrit dans le message
de news:
ben moi, je mets un
On Error Resume Next
avant la ligne qui exécute l'ouverture du second classeur
puis en dessous un petit coup de
workbooks("Nom DuClasseur").Activate
ça devrait marcher non?
jps

"Joël GARBE" a écrit dans le message de
news:41a7a650$0$31688$
Bonsoir,

faire une boucle qui test si le clsseur est déjà ouvert, du genre :

Dim oClass as workbook
dim EstOuvert as boolen
estouvertúlse
for each oclass in workbooks
if oclass.name = "NomDuClasseur" then
estouvert = true
exit for
endif
next
if estouvert then
workbooks("Nom DuClasseur").Activate ' (si nécessaire)
else
ouvrir le classeur
endif


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert,
il
y


a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi
bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé






















Avatar
HD
Merci pour toutes ces réponses si variées!!
Par contre, en fermant le classeur, est-ce qu'il se sauvegarde?

Hervé

"LeSteph" a écrit dans le message de news:
%
Dites les copaings
croyez pas que ma solution elle est plus simple
si c'est le classeur on le ferme et sinon c'est bon
ô peuchère

lSteph
"Joël GARBE" a écrit dans le message de news:
41a7aa3b$0$795$
Certe, à condition que l'erreur vienne du fait que le classeur est déjà
ouvert, et non du fait qu'il n'existe pas dans le dossier indiqué par
exmple ;-)

Pour ma part, je préfère analyser les sources possibles d'erreur, et
prendre les décisions qui s'imposent (sauf quand la source d'erreur est
unique, il va sans dire...)

cela signifie qu'avant d'ouvir le classeur, je vérifie qu'il existe à
l'endroit attendu

Tout est question de goût

Bonne soirée JP ;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"jps" a écrit dans le message
de news:
ben moi, je mets un
On Error Resume Next
avant la ligne qui exécute l'ouverture du second classeur
puis en dessous un petit coup de
workbooks("Nom DuClasseur").Activate
ça devrait marcher non?
jps

"Joël GARBE" a écrit dans le message de
news:41a7a650$0$31688$
Bonsoir,

faire une boucle qui test si le clsseur est déjà ouvert, du genre :

Dim oClass as workbook
dim EstOuvert as boolen
estouvertúlse
for each oclass in workbooks
if oclass.name = "NomDuClasseur" then
estouvert = true
exit for
endif
next
if estouvert then
workbooks("Nom DuClasseur").Activate ' (si nécessaire)
else
ouvrir le classeur
endif


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert,
il
y


a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi
bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé


















Avatar
Joël GARBE
Et ben, il est pas arrivé jusqu'en Normandie ;-)

--

Bien cordialement,

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

:?
juste sous le topic de hd à 22h53
'---
au debut de ta macro
fermer le classeur:

Sub fermit()
Dim wb
For Each wb In Workbooks
If wb.Name = "Classeur2" Then wb.Close True
Next

End Sub
'--

"Joël GARBE" a écrit dans le message de news:
41a7ac6b$0$16331$
Peut-être, mais on la voit pas ta solution !!!

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"LeSteph" a écrit dans le message de news:
%
Dites les copaings
croyez pas que ma solution elle est plus simple
si c'est le classeur on le ferme et sinon c'est bon
ô peuchère

lSteph
"Joël GARBE" a écrit dans le message de news:
41a7aa3b$0$795$
Certe, à condition que l'erreur vienne du fait que le classeur est déjà
ouvert, et non du fait qu'il n'existe pas dans le dossier indiqué par
exmple ;-)

Pour ma part, je préfère analyser les sources possibles d'erreur, et
prendre les décisions qui s'imposent (sauf quand la source d'erreur est
unique, il va sans dire...)

cela signifie qu'avant d'ouvir le classeur, je vérifie qu'il existe à
l'endroit attendu

Tout est question de goût

Bonne soirée JP ;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"jps" a écrit dans le message
de news:
ben moi, je mets un
On Error Resume Next
avant la ligne qui exécute l'ouverture du second classeur
puis en dessous un petit coup de
workbooks("Nom DuClasseur").Activate
ça devrait marcher non?
jps

"Joël GARBE" a écrit dans le message de
news:41a7a650$0$31688$
Bonsoir,

faire une boucle qui test si le clsseur est déjà ouvert, du genre :

Dim oClass as workbook
dim EstOuvert as boolen
estouvertúlse
for each oclass in workbooks
if oclass.name = "NomDuClasseur" then
estouvert = true
exit for
endif
next
if estouvert then
workbooks("Nom DuClasseur").Activate ' (si nécessaire)
else
ouvrir le classeur
endif


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre
classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est
ouvert, il
y


a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi
bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé


























Avatar
Joël GARBE
workbooks("??").close False (ou True) , tu choisis

--

Bien cordialement,

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

Merci pour toutes ces réponses si variées!!
Par contre, en fermant le classeur, est-ce qu'il se sauvegarde?

Hervé

"LeSteph" a écrit dans le message de news:
%
Dites les copaings
croyez pas que ma solution elle est plus simple
si c'est le classeur on le ferme et sinon c'est bon
ô peuchère

lSteph
"Joël GARBE" a écrit dans le message de news:
41a7aa3b$0$795$
Certe, à condition que l'erreur vienne du fait que le classeur est déjà
ouvert, et non du fait qu'il n'existe pas dans le dossier indiqué par
exmple ;-)

Pour ma part, je préfère analyser les sources possibles d'erreur, et
prendre les décisions qui s'imposent (sauf quand la source d'erreur est
unique, il va sans dire...)

cela signifie qu'avant d'ouvir le classeur, je vérifie qu'il existe à
l'endroit attendu

Tout est question de goût

Bonne soirée JP ;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"jps" a écrit dans le message
de news:
ben moi, je mets un
On Error Resume Next
avant la ligne qui exécute l'ouverture du second classeur
puis en dessous un petit coup de
workbooks("Nom DuClasseur").Activate
ça devrait marcher non?
jps

"Joël GARBE" a écrit dans le message de
news:41a7a650$0$31688$
Bonsoir,

faire une boucle qui test si le clsseur est déjà ouvert, du genre :

Dim oClass as workbook
dim EstOuvert as boolen
estouvertúlse
for each oclass in workbooks
if oclass.name = "NomDuClasseur" then
estouvert = true
exit for
endif
next
if estouvert then
workbooks("Nom DuClasseur").Activate ' (si nécessaire)
else
ouvrir le classeur
endif


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"HD" a écrit dans le message de news:
u$O2o%23$
Bonsoir,
J'ai réalisé une macro qui copie des cellules vers un autre classeur
(fermé et qui s'ouvre donc à ce moment).
Par contre si je réactive ma macro alors que le classeur est ouvert,
il
y


a une erreur.
Comment gérer cette erreur et faire que ma macro fonctionne aussi
bien
avec le classeur ouvert que fermé?
MErci de votre aide par avance.
Hervé






















1 2