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

Un bout de code plein de malice!!!

29 réponses
Avatar
MichD
Bonjour,

Ce bout de code à la fin de la procédure. Si je l'exécute par F8 (pas à
pas), tout est OK. Sauf que l'on exécute cette procédure 2 à 4 fois
de manière rapprochée, cela fait planter Excel et il est obligé de
fermer. J'ai ajouté des boucles à titre de temporisation, cela ne change
en rien le résultat...

Est-ce que quelqu'un a une explication?

'=============================================================
ThisWorkbook.Sheets.Copy

'--------------------------------------
T = Timer + 2
Do While Timer < T
DoEvents
Loop
'--------------------------------------

Set Wk = ActiveWorkbook
Wk.SaveAs ThisWorkbook.Path & "\" & Nom, FileFormat:=51

'--------------------------------------
T = Timer + 2
Do While Timer < T
DoEvents
Loop
'--------------------------------------

Application.DisplayAlerts = True
ThisWorkbook.Close False
Application.ScreenUpdating = True
Set Wk = Nothing
'=============================================================


Merci pour votre collaboration.

Denis

10 réponses

1 2 3
Avatar
Jacquouille
Ah, ce n'était pas ta mémoire à toi ? -))))
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
njck55$120h$
Ce triple message, un cadeau de Thunderbird!
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
isabelle
salut Denis,
je ne te décrierai pas les problèmes que je rencontre avec la version xl2010,
ils sont trop nombreux.
je trouvais que la version XP sp3 (+) étais la version parfaite, puis avec le
temps mon ordi ayant rendu l’âme et beaucoup de changement de version Windows,
je suis passé à la version xl2010.
après toutes ces années je pensais voir une version nettement plus puissante...,
amélioré, bref un gros pas en avant, malheureusement cette nouvelle version
n'est faite que de gadget tape-à-l'œil et
une obésité de lignes et de colonnes dont ce tableur n'est même pas capable de
supporter (mémoire) les données que ces cases peuvent contenir.
j’avais espoir que certaines des fonctions créées par les membres du MPFE soient
intégrées aux nouvelles versions xl, puisque celles-ci étaient une demande
direct des utilisateurs et que par ce fait étaient très utiles.
désolé mais je ne suis pas surprise de voir ta déception pour la version 2016
ps/ rien n’est perdu, je suis peut-être à la retraite mais j’ai gardé en stock
le cd original du logiciel XP et toutes les copies des màj et aussi tous plein
de circuit très utile à la restauration, qui sait le métier d’électrotechnicienne
n’est peut-être pas si osselet...mais ces supports de données n’ont qu’une vie
très réduite (10 ans gros max) alors que faire … ?
isabelle
Le 2016-06-09 à 16:34, MichD a écrit :
Bonjour Jacky,
Je suis d'accord avec toi, j'ai fait cela et je n'ai jamais eu un problème
avec les anciennes versions. Comme Géo et Jacquoille y font référence, c'est
peut-être une gestion de mémoire...mais moi, je ne me souviens pas avoir eu
autant de problèmes avec quelques lignes de code!
Dans la même application, j'ai eu tout un problème avec le déverrouillage de
cellules alors que certaines doivent demeurer verrouillées, et cela sur des
plages où il y a plusieurs cellules fusionnées.
Je n'exposerai pas le problème, ce serait trop long à expliquer et je ne peux
pas publier l'application. C'est décevant d'éprouver ces difficultés sur des
actions de base sur la version Excel 2016.
Mon application est terminée. C'est navrant de devoir passer un temps fou
sur de pareils trucs!
Merci à tous pour vos remarques.
MichD
Avatar
Jacky
Hello
La seule et unique solution
http://www.cjoint.com/c/FFkh2UYAWch
;o))
Salutations
JJ
Avatar
Jacquouille
Bonjour Denis
Je reviens encore avec mon idée de mémorisation.
Il est difficile pour moi d'oser suggérer quelque chose à un MVP....
As-tu essayé une remise à zéro de la var T à chaque couplet?
T= 0
T = Timer + 2
Do While Timer < T
DoEvents
Loop
Bonne journée
Jac
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
Bonjour Jacky,
Je suis d'accord avec toi, j'ai fait cela et je n'ai jamais eu un
problème avec les anciennes versions. Comme Géo et Jacquoille y font
référence, c'est peut-être une gestion de mémoire...mais moi, je ne me
souviens pas avoir eu autant de problèmes avec quelques lignes de code!
Dans la même application, j'ai eu tout un problème avec le
déverrouillage de cellules alors que certaines doivent demeurer
verrouillées, et cela sur des plages où il y a plusieurs cellules
fusionnées.
Je n'exposerai pas le problème, ce serait trop long à expliquer et je ne
peux pas publier l'application. C'est décevant d'éprouver ces
difficultés sur des actions de base sur la version Excel 2016.
Mon application est terminée. C'est navrant de devoir passer un temps
fou sur de pareils trucs!
Merci à tous pour vos remarques.
MichD
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
Jacky
Bonjour Jacques
Il a mis Excel à la poubelle ;o))
Ce code plante même sans temporisation.
Néanmoins, il devrait fonctionner sur ton xl2003
As-tu testé ?
Salutations
JJ
Jacquouille a exposé le 10/06/2016 :
Bonjour Denis
Je reviens encore avec mon idée de mémorisation.
Il est difficile pour moi d'oser suggérer quelque chose à un MVP....
As-tu essayé une remise à zéro de la var T à chaque couplet?
T= 0
T = Timer + 2
Do While Timer < T
DoEvents
Loop
Bonne journée
Jac
Avatar
MichD
Bonjour Isabelle,
| je trouvais que la version XP sp3 (+) étais la version parfaite
*** Dernière version avec une aide complète incorporée au logiciel.
On n'est pas probablement pas très loin du moment où Microsoft va
laisser tomber l'aide sur les formules dans Excel pour une solution
MSDN comme en VBA.
| j’avais espoir que certaines des fonctions créées par les membres du
| MPFE soient intégrées aux nouvelles versions
*** La version 2016 inclut "quelques" formules de date iso comme :
"No.Semaine.Iso". Ils ont bien raison ces américains, c'est un
problème essentiellement européen et il n'y avait pas urgence. ;-))
*** J'ai cessé d'intervenir sur les forums Microsoft depuis un an, Excel
en particulier. La majeure partie des questions (98%) portait sur des
problèmes d'installation, des bogues, etc. Pour Microsoft, c’est leur
service après-vente assuré par des bénévoles.
*** Si cela te tente de discuter formules ou procédures, je te suggère
d'adhérer au forum suivant. Plusieurs anciens membres du MPFE sont
devenus assidus à ce groupe dont Modeste. Un forum très dynamique!
http://www.excel-downloads.com/forum/forum-excel/
Salutations,
MichD
Le 10/06/16 à 00:29, isabelle a écrit :
salut Denis,
je ne te décrierai pas les problèmes que je rencontre avec la version
xl2010,
ils sont trop nombreux.
je trouvais que la version XP sp3 (+) étais la version parfaite, puis
avec le
temps mon ordi ayant rendu l’âme et beaucoup de changement de version
Windows,
je suis passé à la version xl2010.
après toutes ces années je pensais voir une version nettement plus
puissante...,
amélioré, bref un gros pas en avant, malheureusement cette nouvelle
version n'est faite que de gadget tape-à-l'œil et
une obésité de lignes et de colonnes dont ce tableur n'est même pas
capable de
supporter (mémoire) les données que ces cases peuvent contenir.
j’avais espoir que certaines des fonctions créées par les membres du
MPFE soient
intégrées aux nouvelles versions xl, puisque celles-ci étaient une demande
direct des utilisateurs et que par ce fait étaient très utiles.
désolé mais je ne suis pas surprise de voir ta déception pour la version
2016
ps/ rien n’est perdu, je suis peut-être à la retraite mais j’ai gardé en
stock
le cd original du logiciel XP et toutes les copies des màj et aussi tous
plein
de circuit très utile à la restauration, qui sait le métier
d’électrotechnicienne
n’est peut-être pas si osselet...mais ces supports de données n’ont
qu’une vie
très réduite (10 ans gros max) alors que faire … ?
isabelle
Le 2016-06-09 à 16:34, MichD a écrit :
Bonjour Jacky,
Je suis d'accord avec toi, j'ai fait cela et je n'ai jamais eu un
problème
avec les anciennes versions. Comme Géo et Jacquoille y font référence,
c'est
peut-être une gestion de mémoire...mais moi, je ne me souviens pas
avoir eu
autant de problèmes avec quelques lignes de code!
Dans la même application, j'ai eu tout un problème avec le
déverrouillage de
cellules alors que certaines doivent demeurer verrouillées, et cela
sur des
plages où il y a plusieurs cellules fusionnées.
Je n'exposerai pas le problème, ce serait trop long à expliquer et je
ne peux
pas publier l'application. C'est décevant d'éprouver ces difficultés
sur des
actions de base sur la version Excel 2016.
Mon application est terminée. C'est navrant de devoir passer un temps fou
sur de pareils trucs!
Merci à tous pour vos remarques.
MichD
Avatar
Geo
Bonjour
... La majeure partie des questions (98%) portait sur des problèmes
d'installation, des bogues, etc. Pour Microsoft, c’est leur service
après-vente assuré par des bénévoles.

+1
Le plus fort c'est que le support Microsoft (inclus dans les
abonnements 365) renvoie sur les forums quand il ne sait pas ou n'a pas
envie de répondre.
Avatar
LSteph
Bonjour,
Avec excel 2010 ce code plante dès le 1er lancement
Contexte: copié ton code dans un module standard d'un classeur prà ©alablement
mis du texte dans les 2 premières feuilles
enregistré sous TestMD.xlsm
Si je ne définis pas nom évidemment cà plante direct au Save As
J'ai donc ajouté au début du code
dim nom as string
nom="toto"
Lorsque j'exécute ton code je ne peux l'éxecuter qu'une seule foi s!
Je me retrouve avec un toto.xlsx contenant le texte des feuilles de TestMD
et TestMD a disparu
je le rouvre là où jel'avais enregistré
le contenu des feuilles a disparu et aussi le code!
Cordialement.
--
LSteph
Le jeudi 9 juin 2016 18:48:33 UTC+2, MichD a écrit :
Bonjour,
Ce bout de code à la fin de la procédure. Si je l'exécute par F8 (pas à
pas), tout est OK. Sauf que l'on exécute cette procédure 2 à   4 fois
de manière rapprochée, cela fait planter Excel et il est oblig é de
fermer. J'ai ajouté des boucles à titre de temporisation, cela ne change
en rien le résultat...
Est-ce que quelqu'un a une explication?
'======================== ========================= ============
ThisWorkbook.Sheets.Copy
'--------------------------------------
T = Timer + 2
Do While Timer < T
DoEvents
Loop
'--------------------------------------
Set Wk = ActiveWorkbook
Wk.SaveAs ThisWorkbook.Path & "" & Nom, FileFormat:Q
'--------------------------------------
T = Timer + 2
Do While Timer < T
DoEvents
Loop
'--------------------------------------
Application.DisplayAlerts = True
ThisWorkbook.Close False
Application.ScreenUpdating = True
Set Wk = Nothing
'======================== ========================= ============
Merci pour votre collaboration.
Denis
Avatar
Jacquouille
Hello Steph,
Chez nous, nous avons un service national qui s'occupe des disparitions
inquiétantes...
Toto serait-il du 3° type?
J'aimerais vous faire plaisir en testant ce code inquiétant sur mon 2003,
mais j'ai peur que le fichier ne disparaisse en emportant mon PC...
Mais, si tu me garantis que cela fonctionnera, fais-moi un doc avec ton
texte et la macro. Je pousserai sur le bouton de mise à feu et je vous tiens
au courant ....
Jacques, pas rassuré.
" Le vin est au repas ce que le parfum est à la femme."
.
"LSteph" a écrit dans le message de groupe de discussion :
Bonjour,
Avec excel 2010 ce code plante dès le 1er lancement
Contexte: copié ton code dans un module standard d'un classeur préalablement
mis du texte dans les 2 premières feuilles
enregistré sous TestMD.xlsm
Si je ne définis pas nom évidemment cà plante direct au SaveAs
J'ai donc ajouté au début du code
dim nom as string
nom="toto"
Lorsque j'exécute ton code je ne peux l'éxecuter qu'une seule fois!
Je me retrouve avec un toto.xlsx contenant le texte des feuilles de TestMD
et TestMD a disparu
je le rouvre là où jel'avais enregistré
le contenu des feuilles a disparu et aussi le code!
Cordialement.
--
LSteph
Le jeudi 9 juin 2016 18:48:33 UTC+2, MichD a écrit :
Bonjour,
Ce bout de code à la fin de la procédure. Si je l'exécute par F8 (pas à
pas), tout est OK. Sauf que l'on exécute cette procédure 2 à 4 fois
de manière rapprochée, cela fait planter Excel et il est obligé de
fermer. J'ai ajouté des boucles à titre de temporisation, cela ne change
en rien le résultat...
Est-ce que quelqu'un a une explication?
'============================================================ > ThisWorkbook.Sheets.Copy
'--------------------------------------
T = Timer + 2
Do While Timer < T
DoEvents
Loop
'--------------------------------------
Set Wk = ActiveWorkbook
Wk.SaveAs ThisWorkbook.Path & "" & Nom, FileFormat:Q
'--------------------------------------
T = Timer + 2
Do While Timer < T
DoEvents
Loop
'--------------------------------------
Application.DisplayAlerts = True
ThisWorkbook.Close False
Application.ScreenUpdating = True
Set Wk = Nothing
'============================================================ >
Merci pour votre collaboration.
Denis

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
LSteph
Re,
je reviens après avoir réitéré (j'avais probablement om is un truc au 1er Essai.
Donc selon le code ci après sous mon post
mis dans TestMD.xlsm
je peux l'executer 3 ou 4 fois de suite sans erreur
Nota: je suis juste obligé à chaque fois de fermer le toto.xslx q ui a été créé puis de rouvrir TestMD pour executer de n ouveau.
--
LSteph
Sub testIt()
'======================== ========================= ============
Dim nom As String
nom = "toto"
Application.DisplayAlerts = False
ThisWorkbook.Sheets.Copy
'--------------------------------------
T = Timer + 2
Do While Timer < T
DoEvents
Loop
'--------------------------------------
Set Wk = ActiveWorkbook
Wk.SaveAs ThisWorkbook.Path & "" & nom, FileFormat:Q
'--------------------------------------
T = Timer + 2
Do While Timer < T
DoEvents
Loop
'--------------------------------------
Application.DisplayAlerts = True
ThisWorkbook.Close False
Application.ScreenUpdating = True
Set Wk = Nothing
'======================== ========================= ============
End Sub
1 2 3