begin process at 2013 05 25 18:58:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Excel 2007 - Problème de Shapes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Excel 2007 - Problème de Shapes

vendredi 27 juillet 2012 à 17:47:21 | Excel 2007 - Problème de Shapes

cheyenne

Bonjour,

Parmi les feuilles j'en ai une qui possède plusieurs Shapes. Lorsque j'active cette feuille tous les Shapes disparaissent pour réapparaitre dans la seconde.
Lors de l'évènement Activate de cette feuille une macro dispose les Shapes en fonction de la feuille quittée et certains de ceux-ci sont visibles ou pas. Parmi les Shapes il y en a un toujours fixe visible comportant une image jpeg de 150 Ko.
Ceci est dû, je pense, au rafraichissement de la feuille, j'ai essayé ScreenUpdating = False, mais cela reste sans effets.

Avez-vous une solution ? Merci.

Cheyenne
lundi 30 juillet 2012 à 02:28:38 | Re : Excel 2007 - Problème de Shapes

jack

Administrateur CodeS-SourceS
Salut

Une solution à quoi ?
Tu ne poses pas de question.

Ta première phrase : "Parmi les feuilles ... la seconde"
Est-ce un comportement normal et/ou programmé ou bien le sujet de ton problème ?

"Lors de l'évènement Activate ... il y en a un toujours fixe visible"
Là encore : Constatation ou problème ?

"une macro dispose les Shapes"
Montre ton début de la macro pour voir comment tu te réfères à la feuille + comment tu énumères et manipules tes Shapes

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
lundi 30 juillet 2012 à 12:06:52 | Re : Excel 2007 - Problème de Shapes

cheyenne

Bonjour jack,

Certes, je n'ai pas posé de questions mais évoqué le phénomène qui se produit lorsque j'active une feuille.

Je n'ai pas mis le code de manipulation des Shapes car il est assez lourd.
Pour faire simple, disons que dans l'Activate de cette feuille je lance une routine qui exécute divers calculs astro. En fonction de la date et des résultats certains Shapes restent visibles et d'autres pas ou certains visibles sont orientés selon un certain angle.
Le seul Shape qui reste fixe est l'image qui change de teinte selon que le calcul est appelé le jour ou la nuit. Sur cette image vient se positionner un autre Shape (un symbole de planète) à un endroit défini par une partie du calcul.

En résumé, à l'appel de la feuille, plus de Shapes, ceux-ci ne réapparaissant qu'une fois le calcul terminé. A noter que je ne rends pas les Shapes invisibles en début de calcul.

Malgré la présence de ScreenUpdating = False avant la manipulation des Shapes j'ai toujours ce problème lors de l'activation de la feuille.

Cheyenne
mercredi 1 août 2012 à 01:01:37 | Re : Excel 2007 - Problème de Shapes

jack

Administrateur CodeS-SourceS
Je n'ai pas beaucoup d'expérience dans le domaine des Shapes.
L'idée qui me viendrait à l'esprit serait de tenter ces manips de Shape en les lançant bien après le Activate.
Si, comme cela arrive en VB classique avec un Form_Load, les objets graphiques ne sont pas encore initialisés au moment du Activate, cela pourrait produire ce genre de phénomène.
--> Essaye de supprimer l'appel dans Activate et d'installer un bouton pour lancer la lourde procédure.
Dit voir si cela change quelque chose au comportement des objets.

Dans ta réponse, insiste sur ce qui ne fonctionne pas. En effet, tu répètes "le seul Shape qui reste fixe ...", mais on ne sait toujours pas si c'est normal/volontaire ou si c'est un de tes problèmes.
Il nous sera impossible de t'aider si on ne sait pas ce qui se passe / ou ce qui ne se passe pas.
mercredi 1 août 2012 à 01:12:20 | Re : Excel 2007 - Problème de Shapes

jack

Administrateur CodeS-SourceS
Seconde idée : Mets des DoEvents de temps à autre dans ton code afin de laisser Windows agir sur les objets.
mercredi 1 août 2012 à 02:05:36 | Re : Excel 2007 - Problème de Shapes

cheyenne

Bonjour jack,

Merci pour ta réponse. En effet, à l'évènement Activate, quand on clique sur l'onglet, les Shapes ne sont pas initialisés et je pense que c'est de là que vient le problème car la version 2007 n'est pas des plus rapides en ce qui concerne le rafraichissement des Shapes et graphiques.

Quant au bouton pour appeler la procédure, j'ai l'équivalent. Il suffit de cliquer sur certaines cellules dans les autres feuilles pour lancer la procédure de calcul et disposer les Shapes. Mais à la fin de cette procédure j'ai toujours cet inconvénient quand j'active la feuille.

Bien évidement, je dispose les Shapes en utilisant :
Code VBScript :
With Sheets("toto")
   .Shapes("titi").Left = 
   .Shapes("tata").Visible =
   .Shapes("tutu").Rotation =
    '  etc... etc... etc...
   .Activate
End With

Le Shape qui reste fixe, c'est voulu. J'entends par fixe : qui ne change pas de place, ce qui ne veut pas dire que lui aussi ne disparait pas quand j'active la feuille d'une manière ou d'une autre pour réapparaitre ensuite...

Je vais expérimenter les DoEvents en les plaçant judicieusement et te tiens au courant.
Remarques que ce problème relève plus du confort visuel que d'autre chose...

Cheyenne

mercredi 1 août 2012 à 13:49:53 | Re : Excel 2007 - Problème de Shapes

cheyenne

Bonjour,

Les DoEvents, placés aux "endroits stratégiques", ne changent rien à l'affaire.
Sur cette fameuse page il y a des Shapes sur lesquels on peut cliquer. Le fait de cliquer sur un certain Shape entraine l'exécution de cette macro :
Code Visual Basic :
Public Sub cmd_LUNE_SOLEIL()
   bSOLEIL = Not bSOLEIL
 
   Application.ScreenUpdating = False
   With Sheets("AZIMUT")
      .Unprotect

      If .Shapes("cmdACTUALISER").Visible Then
          With .Shapes("shpLIVE")
            .Visible = True
            If bSOLEIL Then .Top = 63 Else .Top = 55
         End With
      End If

      .Protect UserInterfaceOnly:=True
   End With
   
   Call CHOIX_PAGE_AZIMUT
End Sub

A titre d'essai, j'ai inhibé l'appel de la routine Call CHOIX_PAGE_AZIMUT, et bien le fait de cliquer sur le Shape entraine un clignotement de tous les Shapes.
Que le ScreenUpdating soit à True ou False j'ai le clignotement, par contre si je supprimme la ligne ScreenUpdating curieusement je n'ai plus de clignotement !
Si j'appelle la routine les Shapes disparaissent le temps d'exécution de celle-ci puis réapparaissent.
Enfin, rien de bien grave, mais c'est agaçant ! A noter que j'ai une feuille avec des graphiques qui eux scintillent à l'activation de la feuille et pourtant les séries de données ne sont pas changées.
Il semblerait que la version 2007 ne soit pas aboutie, d'ailleurs l'enregistreur de macro ne fonctionne ni pour les Shapes ni pour les graphiques et il n'y a pas que ce problème !

Cheyenne
jeudi 2 août 2012 à 00:15:49 | Re : Excel 2007 - Problème de Shapes

jack

Administrateur CodeS-SourceS
En effet, beaucoup de problèmes (bêtes pour certains) pour les résultats fournis par l'enregistreur de macro de cette version 2007; Condoléances.
En toute logique, et pour t'y retrouver plus facilement, on devrait retrouver un
Application.ScreenUpdating = True
avant la sortie de ta Sub.

S'il y a clignotement, il y a surement du programme qui tourne.
Fais l'essai en pas-à-pas pour vérifier quelle instruction provoque un clignotement. Peut-être découvriras-tu que ton programme demande le visible False avant de le remettre à True, par exemple à cause d'un manque de filtre sur les objets - rappel : Shape désigne tout, bouton comme dessin.

Je le devine, mais confirme quand même : tous tes Shapes sont placés sur une feuille, pas sur une UserForm.
jeudi 2 août 2012 à 01:51:30 | Re : Excel 2007 - Problème de Shapes

cheyenne

Bonjour jack,

Oui, tu devines bien, tous les Shapes qui posent problème sont effectivement placés sur une feuille. Je n'ai pas d'UserForm.
D'après Microsoft mettre le ScreenUpadting à True n'est pas nécessaire car il se fait automatiquement avant de quitter la Sub. Mais par prudence j'en colle toujours un avant le Exit Sub.(Mais effectivement pas dans l'exemple de mon dernier post !!!)

Peut-être découvriras-tu que ton programme demande le visible...


Oui, c'est une piste que j'ai explorée en pratiquant, avant que tu me le conseilles, le pas-à-pas et je n'ai rien découvert de particulier, même en mettant certaines instructions critiques en commentaires.
J'ai 17 feuilles dont 12 (une par mois) qui comportent chacune un Shape indiquant le nom du mois et qui commandent tous une macro. En cliquant sur ces Shapes j'ai également un clignotement, tout comme lorsque j'active ces feuilles !
J'ai 4823 lignes de code dans cette application !.
La Sub principale en appelle beaucoup d'autres en cascades et celles-ci ne font que du calcul. Chaque Sub est dédiée à un type de calcul précis. Ce n'est que la dernière qui manipule les Shapes (sur la feuille "principale") en fonction des résultats et cette feuille n'est pas visible à ce moment. Ce n'est qu'à son activation que se produit le phénomène

Je crois, jack, que l'on va en rester là, car finalement ce n'est pas vraiment un problème de programmation mais peut-être, tout bêtement de "synchro".
En tous cas merci pour l'intérêt que tu as porté à mon "problème".

Bonne continuation,

Cheyenne
jeudi 2 août 2012 à 08:12:44 | Re : Excel 2007 - Problème de Shapes

ucfoutu

Membre Club
Bonjour,
Je viens de tomber sur cette discussion (suis occupé à des tâches matérielles).
Voilà longtemps que j'ai abandonné l'utilisation des shapes de Excel. Trop de problèmes divers et variés.
De mémoire, cependant : les shapes se mettent à "danser la mazurka" dans de nombreuses circonstances, dont :

- la présence de "frozen panes"
- la présente de sauits de page

de tout ce qui, je le pense, doit regérer les dispositions sur la feuille

Essaye, cheyenne, de les inhiber, genre (entre autres) :
ActiveSheet.DisplayPageBreaks = False, pour les sauts de page
Cherche ce qui "va" pour inhiber (mettre à False) les "frozen panes" éventuellement présents
etc ...


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

1 2

Cette discussion est classée dans : problème, excel, feuille, shapes


Répondre à ce message

Sujets en rapport avec ce message

Changer le caption d'un label à partir des valeurs stockées dans une feuille Excel [ par Skysoft ] Salut tout le monde,Voilà quelques heures que je sèche un un problème qui me parait insoluble pourtant je suis sûr que quelqu'un à déjà trouvé une sol Affichage PDF dans Excel2007 [ par mautone32 ] Bonjour le forum,Voici mon problème (enfin, plutôt mes 2 problèmes) :J'aimerais afficher un fichier pdf dans une feuille Excel (Office 2007).J'ai util Problème sur condition dans une macro excel [ par calanthea ] Bonjour, Je suis novice en macro excel. Je viens de réaliser ma première mais j'ai un petit soucis. J'ai réalisé une macro qui part d'une feuille avec Incrémenter une ouverture de feuille excel [ par hubhubfou ] Bonjour, Voici mon problème : Je voudrais pouvoir incrémenter l'ouverture des feuilles de calcul. En effet, lorsque j'appuie sur le bouton "suivant" [déplacé VB6 -> VBA] problème graphique VBA [ par fofy78 ] Bonjour, J'ai quelques petits soucis sous VBA. J'ai fait un code pour générer automatiquement un graphique dans une feuille EXCEL. J'arrive à affiche Problème Sélectionner une feuille dans un autre classeur [ par flostralian ] Bonjour à tous, J'ai cherché une solution sur le forum mais en vain... J'ai essayé de nombreuses solutions énoncées sur ce forum. Mon problème est c A l'aide!! Gros problème pour copier un fichier URGENT [ par Neric ] Voilà mon problème:J'ai mon fichier excel de base avec toutes mes feuilles ecxel, mes modules, mes userForm, ...Mon programme extrait des données d'un Problème de débutant : utilisation d'un objet OLE [ par pignouf ] Salut tout le monde, voici mon problème.Je voudrais via l'intermédiaire de mon petit programme utiliser windows. Je connais bien VBA mais VB c'est pas Problème de débutant : utilisation d'un objet OLE [ par pignouf ] Salut tout le monde, voici mon problème.Je voudrais via l'intermédiaire de mon petit programme utiliser windows. Je connais bien VBA mais VB c'est pas feuille excel et indice...à l'aide!!!!! [ par allfab ] voila, j'ai un problème avec un programme : je veux selectionner une feuille excel dans un classeur excel contenant environ 50 feuilles...Je vous mets


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,713 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales