ActiveChart.Deselect ne fonctionne pas

Je crée un diagramme de dispersion xy à partir de trois colonnes de données – voir l'exemple de données et le code ci-dessous. Le code est exécuté à partir d'un complément, et non du classur actif

Après avoir placé SeriesCollection(1) sur l'axe secondaire, cette ligne tracée est sélectionnée. Selon Excel 2007 HELP, ActiveChart.Deselect doit désélectionner tout. Mais il n'a rien fait lorsqu'il a été ajouté à mon code. .Deselect est répertorié dans les Modifications du model d'object depuis Office XP comme méthode de l'object Chart, avec un statut hidden .

J'ai trouvé une variété de suggestions, y compris la sélection d'une cellule; ou en utilisant SendKeys pour envoyer {ESC}. La seule méthode qui semblait fonctionner était d'autoriser d'abord la mise en veille, puis de protéger le graphique. (Le désactivé après n'est pas nécessaire pour supprimer la sélection, mais pratique pour un travail ultérieur).

Existe-t-il une meilleure méthode, ou cela est-il raisonnable?

Chart.Deselect fonctionne-t- Chart.Deselect dans d'autres versions d'Excel?

Le résultat final devrait être que le graphique sera visible à l'écran, sans que rien ne soit sélectionné.

Échantillon de données courtes

 Time Amps Volts 04/26/2015 01:22:39 PM 4.9 53.4 04/26/2015 01:22:40 PM -0.9 53.2 04/26/2015 01:22:41 PM -1.5 53.4 04/26/2015 01:22:42 PM 8.7 53.4 04/26/2015 01:22:43 PM -2.9 53.3 04/26/2015 01:22:44 PM -3.2 53.2 04/26/2015 01:22:45 PM 11.3 53.8 04/26/2015 01:22:46 PM -3.8 53.3 04/26/2015 01:22:47 PM -3.2 53.3 04/26/2015 01:22:48 PM 11.4 53.6 04/26/2015 01:22:49 PM -3.2 53.3 04/26/2015 01:22:50 PM -2.8 53.2 04/26/2015 01:22:51 PM 5.7 53.3 04/26/2015 01:22:52 PM 7.5 53.5 04/26/2015 01:22:53 PM 2.1 53.3 04/26/2015 01:22:54 PM 2.3 53.4 04/26/2015 01:22:55 PM 2.5 53.3 04/26/2015 01:22:56 PM 2.4 53.4 04/26/2015 01:22:57 PM 2.3 53.4 04/26/2015 01:22:58 PM 1.9 53.5 04/26/2015 01:22:59 PM 2 53.3 04/26/2015 01:23:00 PM 2.3 53.3 04/26/2015 01:23:01 PM 2.7 53.5 04/26/2015 01:23:02 PM 2.5 53.4 04/26/2015 01:23:03 PM -2.4 53.4 04/26/2015 01:23:04 PM -4 53.3 04/26/2015 01:23:05 PM -3.5 53.3 04/26/2015 01:23:06 PM 4.1 53.4 04/26/2015 01:23:07 PM 9.4 53.6 04/26/2015 01:23:08 PM -5.1 53.3 04/26/2015 01:23:09 PM 9.8 53.6 04/26/2015 01:23:10 PM -5.2 53.2 04/26/2015 01:23:11 PM 9.7 53.5 04/26/2015 01:23:12 PM -5.5 53.2 04/26/2015 01:23:13 PM 9.8 53.6 

Utilisation de ce code:

 Sub GraphEmeter() Dim cS As Chart Dim A As Axis Application.ScreenUpdating = False Set cS = ActiveWorkbook.Charts.Add Set cS = ActiveChart With cS .SetSourceData Range("capture!R1").CurrentRegion, xlColumns .ChartType = xlXYScatterLinesNoMarkers Set A = .Axes(xlCategory) With A .CategoryType = xlCategoryScale .BaseUnitIsAuto = True .TickLabels.Orientation = 45 End With .SeriesCollection(1).AxisGroup = 2 'deselect the chart area 'documented method ' ActiveChart.Deslect 'doesn't seem to work 'But this method does Application.ScreenUpdating = True .Protect .Unprotect End With End Sub 

– Réponse donnée–

J'ai ajouté vos exemples de données et créé un complément avec votre code. J'ai confirmé que pour désélectionner la série, vous pouvez simplement sélectionner la zone de graphique avec la ligne suivante:

 cS.ChartArea.Select 

– Réponse originale–

Cela ne fonctionne pas pour l'OP, mais pourrait toujours fonctionner lorsque le graphique n'est pas sur une feuille de graphique, mais sur une feuille de travail standard

Si l'objective est de simplement désélectionner le graphique, vous devriez pouvoir sélectionner n'importe quoi d'autre sur la feuille (scope, object, etc.) pour modifier la sélection. J'ai choisi la cellule A1 , mais vous pouvez choisir n'importe quoi (comme une cellule située derrière le tableau, par exemple).

 ActiveSheet.Range("A1").Select