Pb VBA entre 2003 et 2007

Bonjour à tous,

Je suis autodidacte en VBA.

J'ai une macro qui rafraichit une liste insérée dans un graphique.

Voici le bout de code qui correspond :

Sheets(2).Select

ActiveChart.Shapes("Drop Down 3").Select

With Selection

.ListFillRange = "Graphs!$B$8:$B$" & Max

.LinkedCell = "Graphs!$C$14"

.DropDownLines = 8

.Display3DShading = False

End With

ça fonctionne nikel en 2003 et par contre en 2007, ça ne fonctionne plus, l'instruction "ActiveChart.Shapes("Drop Down 3").Select" renvoie une erreur.

Ce qui est d'autant plus étonnant est que si j'utilise l'enregistreur de macro et sélectionne ma listbox, ça me crée la même instruction.

Quelqu'un a une astuce ?

Bonjour,

Vérifie que "Drop Down 3" est bien le nom de l'objet en question.

Peut-être dans une version es-tu en Français et dans l'autre en Anglais.

essaie aussi comme ceci :

ActiveChart.DrawingObjects(3).Select

Amicalement

Dan

fronck

Ton astuce ne fonctionne pas non plus ! Aussi, j'ai bien validé le nom de mon objet et enfin les 2 versions d'excel sont en anglais même si à mon avis dans le cas présent ça change rien car ma macro fonctionne à merveille sur 2003 FR t EN

Peut être manque t il des détails dans mon explication ??

En gros, j'ai inséré une listbox dans un graphique afin de faire varier les affichages du graph en fonction de cette liste.

Ma macro a pour but de rafraichir le contenu de ma listbox à partir de données d'un autre onglet, càd rafraichir le contenu du menu "Format de controle".

Sheets(2).Select
ActiveChart.Shapes("Drop Down 3").Select
With Selection
    .ListFillRange = "Graphs!$B$8:$B$51"
    .LinkedCell = "Graphs!$C$14"
    .DropDownLines = 8
    .Display3DShading = False
End With

Je suis vraiment ennuyé avec ce problème ! Please help

Bonjour

Essaye de nommer ta plage.

Exemple :

Nom ==> MaListe

Fait référence à : =DECALER(Graphs!$B$8;;;NBVAL(Graphs!$B:$B))

Si tu as des données en B1:B7 tu adaptes entre les 2 dernières parenthèses le nombre de lignes à enlever

=DECALER(Graphs!$B$8;;;NBVAL(Graphs!$B:$B)-4)

La macro devient

Sheets(2).Select
ActiveChart.Shapes("Drop Down 3").Select
With Selection
    .ListFillRange = "MaListe"
    .LinkedCell = "Graphs!$C$14"
    .DropDownLines = 8
    .Display3DShading = False
End With

Comme cela la plage est toujours à jour.

Amicalement

Nad

Hello Nad et tous les autres aussi

Désolé de n'être pas revenu aux affaires avant !

Pour revenir sur mon pb d'instruction VBA, ton conseil est utile mais malheureusement ne répond pas à mon problème.

En effet, c'est l'instruction

ActiveChart.Shapes("Drop Down 3").Select

qui plante en 2007 et qui fonctionnait très bien en 2003

J'envoie un fichier d'exemple avec la macro qui fonctionne sur 2003 mais plus sur 2007.(faire tourner la macro 2 et vous verrez le résultat.)

Merci pour votre aide !

-- 08 Mar 2010, 15:10 --

En fouinant un peu sur les sites de Microsoft, j'ai appris que le pb que je rencontre est tout simplement un BUG qui a priori a été corrigé après la SP1 d'Office 2007.

http://social.msdn.microsoft.com/forums/en-US/isvvba/thread/e22edec6-9251-446a-bcc1-1043ae5304be/

19macro-2003-2007.zip (15.14 Ko)

Bonjour

el_gussos a écrit :

En fouinant un peu sur les sites de Microsoft, j'ai appris que le pb que je rencontre est tout simplement un BUG qui a priori a été corrigé après la SP1 d'Office 2007

Cela doit être juste, car chez moi la macro tourne sous 2007.

Amicalement

Nad

Rechercher des sujets similaires à "vba entre 2003 2007"