Problème de plantage Excel 2007
Résolu
RLAPT
Messages postés
50
Statut
Membre
-
RLAPT Messages postés 50 Statut Membre -
RLAPT Messages postés 50 Statut Membre -
Bonjour, à tous,
Je rencontre un problème que je n'arrive pas à résoudre malgré pas mal d'essais.
Je copie un dessin (flèche standard) dans une feuille où sont stockées mes dessins de référence et je le colle sur une feuille destinataire (voir macro ci-dessous). J'ai opté pour cette méthode car je n'ai pas trouvé comment créer cet objet par programmation.
Si j'exécute la macro pas à pas, pas de problème cela se déroule bien. Par contre, si je lance le programme cela plante Excel.
J'ai comme l'impression qu'il s'agit d'un problème de temps d'exécution du 'Paste'. Les instructions de modification de l'objet arrivant avant que l'objet soit créé.
Quelqu'un aurait-il une solution ?
Si oui, merci d'avance à tous.
Je rencontre un problème que je n'arrive pas à résoudre malgré pas mal d'essais.
Je copie un dessin (flèche standard) dans une feuille où sont stockées mes dessins de référence et je le colle sur une feuille destinataire (voir macro ci-dessous). J'ai opté pour cette méthode car je n'ai pas trouvé comment créer cet objet par programmation.
Si j'exécute la macro pas à pas, pas de problème cela se déroule bien. Par contre, si je lance le programme cela plante Excel.
J'ai comme l'impression qu'il s'agit d'un problème de temps d'exécution du 'Paste'. Les instructions de modification de l'objet arrivant avant que l'objet soit créé.
Quelqu'un aurait-il une solution ?
Si oui, merci d'avance à tous.
Sub PoseLiaison(Depart As Range, Arrivee As Range, TypeForme As Object)
'Depart = Cellule de Depart de la fl?che (milieu droit de la cellule)
'Arrivee = Cellule d'Arrivee de la fl?che (milieu gauche de la cellule)
'TypeForme = Dessin (Fl?che) ? copier
Application.ScreenUpdating = False
TypeForme.Copy
Fdest.Paste 'Endroit o? ?a plante
Cpt = Cpt + 1
With Selection
.Left = Depart.Left + Depart.Width
.Top = Depart.Top + Depart.Height / 2
.Height = Abs(Arrivee.Top - Depart.Top)
.Width = Arrivee.Left - Depart.Left - Depart.Width
.Name = "Ligne_" & Cpt + 1
End With
Application.ScreenUpdating = True
End Sub
Configuration: Windows 10/ Edge 18.18362 / Excel 2007
A voir également:
- Problème de plantage Excel 2007
- Save as pdf office 2007 - Télécharger - Bureautique
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
5 réponses
Bonjour et merci pour le temps passé.
En fait la feuille Fdest est toujours active durant les essais.
Cdt
En fait la feuille Fdest est toujours active durant les essais.
Cdt
En fait le problème venait de la ligne:
Application.ScreenUpdating = False
Je pose plusieurs flèches à la suite et il semble que la fonction ScreenUpdating comporte comme une tâche de fond qui n'a pas le temps de s'exécuter complètement avant que je la relance.
Il faut supprimer le rafraichissement de l'écran pendant toute la durée du programme et non pas uniquement durant la pose des dessins.
Cdt
Je viens de m'apercevoir que ce n'est pas la solution. Ca & marché une fois puis ça plante de nouveau.
Je vais chercher encore et peu être réparer Excel.
Application.ScreenUpdating = False
Je pose plusieurs flèches à la suite et il semble que la fonction ScreenUpdating comporte comme une tâche de fond qui n'a pas le temps de s'exécuter complètement avant que je la relance.
Il faut supprimer le rafraichissement de l'écran pendant toute la durée du programme et non pas uniquement durant la pose des dessins.
Cdt
Je viens de m'apercevoir que ce n'est pas la solution. Ca & marché une fois puis ça plante de nouveau.
Je vais chercher encore et peu être réparer Excel.
Bonjour,
J'ai déjà eu des soucis avec le ScreenUpdating, lorsqu'il y a plusieurs fichiers ouverts à cause de la nouvelle interface SDI mise en place depuis Excel 2013
Essaies en laissant ScreenUpdating=True durant toute la macro.
Si ça vient de là, essaies de remettre ScreenUpdating=False en ajoutant un DoEvents sur chaque instance ouverte, entre le copy et le paste.
1. Ajoutes au module la procédure suivante :
2. Dans ton code, ajoutes la ligne d'appel :
J'ai déjà eu des soucis avec le ScreenUpdating, lorsqu'il y a plusieurs fichiers ouverts à cause de la nouvelle interface SDI mise en place depuis Excel 2013
Essaies en laissant ScreenUpdating=True durant toute la macro.
Si ça vient de là, essaies de remettre ScreenUpdating=False en ajoutant un DoEvents sur chaque instance ouverte, entre le copy et le paste.
1. Ajoutes au module la procédure suivante :
Sub ForEachWinDoEvents() Dim win As Window For Each win In Application.Windows DoEvents Next win End Sub
2. Dans ton code, ajoutes la ligne d'appel :
'... TypeForme.Copy ForEachWinDoEvents Fdest.Paste '...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci des idées et du temps passé.
Pour mon cas en fait, il semble que cela venait de la configuration mémoire vidéo du GPU de l'ordinateur. J'ai augmenté l'allocation de mémoire vidéo et maintenant cela fonctionne.
Il faut dire qu'avec des écrans 4K l'allocation de base est à revoir
.
Merci encore pour vos idées.
Cordialement
Merci des idées et du temps passé.
Pour mon cas en fait, il semble que cela venait de la configuration mémoire vidéo du GPU de l'ordinateur. J'ai augmenté l'allocation de mémoire vidéo et maintenant cela fonctionne.
Il faut dire qu'avec des écrans 4K l'allocation de base est à revoir
.
Merci encore pour vos idées.
Cordialement