Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel > Forum spécial EXCEL 2007


Réponse
 
LinkBack Outils de la discussion
Vieux 09/11/2007, 12h38   #1 (permalink)
XLDnaute Nouveau
 
Date d'inscription: juillet 2007
Messages: 15
Par défaut Protection et charts (2007 versus 2003)

Bonjour,

Voici deux petites macro simples représentatives de mon problème.
La première, initChart, crée des valeurs dans la feuille, crée une chart vide et protège la feuille.
Certaines cellules sont déprotégées.

la seconde, Chart, recopie des valeurs dans la feuille et trace une courbe.

Les macro sont ok sous Excel 2003.
J'ai une erreur en 2007 à la ligne "Item.Delete" de la macro "Chart".
Lorsque je commente la ligne de initChart qui protège la feuille, c'est OK.

J'en déduit que les protections concernant les Charts sont traitées différemment sous 2007 que 2003, mais je ne sais pas pourquoi et comment résoudre mon problème proprement.
J'ai essayé un "ActiveSheet.ChartObjects(1).Locked = False" mais ça ne change rien...

Merci d'avance pour vos eclaircissements,
Stabilo

PS: Problème reproduit sous XP 64 et Vista 32



Sub initChart()

ActiveSheet.Cells(1, 1) = 0
ActiveSheet.Cells(2, 1) = 1
ActiveSheet.Cells(3, 1) = 2

ActiveSheet.Cells(5, 2) = 0
ActiveSheet.Cells(6, 2) = 2
ActiveSheet.Cells(7, 2) = 3

ActiveSheet.Cells(5, 2).Locked = False
ActiveSheet.Cells(6, 2).Locked = False
ActiveSheet.Cells(7, 2).Locked = False

MySheetName = ActiveSheet.name

Range(ActiveSheet.Cells(1, 3), ActiveSheet.Cells(15, 7)).Select
With Selection
.MergeCells = True
End With

Charts.Add

ActiveChart.DisplayBlanksAs = xlZero
ActiveChart.PlotVisibleOnly = False
ActiveChart.ChartType = xlLine

ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
ActiveChart.Location Where:=xlLocationAsObject, name:=MySheetName

areaoffset = 5

size_X_pixel = ActiveSheet.Cells(1, 1).Width * 5 - 2 * areaoffset
size_Y_pixel = ActiveSheet.Cells(1, 1).Height * 15 - 2 * areaoffset

With ActiveSheet.ChartObjects(1)
.Width = size_X_pixel
.Height = size_Y_pixel
.Left = ActiveSheet.Cells(rowpos + 1, 3).Left + areaoffset
.Top = ActiveSheet.Cells(rowpos + 1, 3).Top + areaoffset
End With

ActiveSheet.Protect Contents:=True, Scenarios:=True, UserInterfaceOnly:=True

End Sub

Sub Chart()

ActiveSheet.Cells(1, 2) = ActiveSheet.Cells(5, 2)
ActiveSheet.Cells(2, 2) = ActiveSheet.Cells(6, 2)
ActiveSheet.Cells(3, 2) = ActiveSheet.Cells(7, 2)

MySheetName = ActiveSheet.name

For Each Item In ActiveSheet.ChartObjects(1).Chart.SeriesCollection
Item.Delete
Next

ActiveSheet.ChartObjects(1).Chart.SeriesCollection .NewSeries

ActiveSheet.ChartObjects(1).Chart.SeriesCollection (1).XValues = "=" & MySheetName & "!R1C1:R3C1"
ActiveSheet.ChartObjects(1).Chart.SeriesCollection (1).Values = "=" & MySheetName & "!R1C2:R3C2"
ActiveSheet.ChartObjects(1).Chart.SeriesCollection (1).name = "My curve"

End Sub
stabilo2 est déconnecté   Réponse avec citation
ANNONCES
Vieux 09/11/2007, 13h50   #2 (permalink)
XLDnaute Impliqué
 
Avatar de fred65200
 
Date d'inscription: septembre 2007
Localisation: BAGNÈRES DE BIGORRE
Version Excel : Excel 2007 (PC)
Messages: 699
Par défaut Re : Protection et charts (2007 versus 2003)

bonjour,

ajoute
Code:
    ActiveSheet.Unprotect
en début de code Chart et
Code:
    ActiveSheet.protect
avant End Sub.

N'hesite pas à renommer ta macro Chart() par un nom qui n'est pas utiliser par VBA.

cordialement
__________________
fred65200
fred65200 est déconnecté   Réponse avec citation
Vieux 09/11/2007, 14h03   #3 (permalink)
XLDnaute Nouveau
 
Date d'inscription: juillet 2007
Messages: 15
Par défaut Re : Protection et charts (2007 versus 2003)

Effectivement, c'est un by-pass tout à fait valable, mais je pense qu'il doit être possible de gérer le problème de manière plus élégante en déprotégeant la Chart ou ses composants lors de la création de celle-ci ? (comme les cellules)

Pour le nom, c'est le cas dans mes macro. celle-ci est juste un petit exemple...

Merci fred65200.
stabilo2 est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Protection et charts (2007 versus 2003) stabilo2 Forum Excel 8 09/11/2007 12h29
Adaptation feuille 2003 / 2007 Chaps Forum spécial EXCEL 2007 3 29/06/2007 12h34
excel 200 / 2003 / 2007 et 65536 mutzik Le salon de XLD 1 24/05/2007 12h47
Compatibilité 2003 2007 hester Forum spécial EXCEL 2007 3 19/05/2007 21h24
la différence excel 2007 et 2003 ? eric123 Forum spécial EXCEL 2007 1 29/03/2007 19h47


Fuseau horaire GMT +2. Il est actuellement 01h18.


(C) 2006 Excel Downloads