Problème de plantage Excel 2007 [Résolu]

Signaler
Messages postés
48
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
29 avril 2020
-
Messages postés
48
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
29 avril 2020
-
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.

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

5 réponses

Messages postés
8196
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
1 octobre 2020
1 480
Bonjour,

Et si tu active Fdest après le copy et avant le paste ?

Messages postés
48
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
29 avril 2020
1
Bonjour et merci pour le temps passé.

En fait la feuille Fdest est toujours active durant les essais.
Cdt
Messages postés
48
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
29 avril 2020
1
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.
Messages postés
8196
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
1 octobre 2020
1 480
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 :
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
 '...

Cordialement
Patrice

Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
Messages postés
48
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
29 avril 2020
1
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