Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/11/2011, 18h03   #1
Membre actif
 
Inscription : juillet 2006
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 295
Points : 191
Points : 191
Par défaut Automatisation de titres de graphiques : problème avec Excel 2007

Bonjour à tous,

J'avais fait une macro (sans doute pas optimale) qui automatisait les titres de graphiques en fonction de la date contenu dans le titre d'un fichier externe.
Cela marchait très bien sous Excel 2000.
Depuis quelques jours je suis passé sous Excel 2007 et cette macro ne fonctionnait plus. Quelques détails mineurs à modifier et elle compile de nouveau. Cependant, il subsiste un petit problème : les titres de mes graphiques n'apparaissent plus sur les graphiques... En fait quand je vais sur les graphiques, la zone de titre est bien là, et quand je sélectionne cette zone je vois le texte qui a bien été actualisé. J'ai pensé à la propriété Color ou à ColorIndex mais en les modifiant rien n'a changé. Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
'Graphiques : actualisation des titres
    ActiveSheet.ChartObjects("Graphique 6").Activate
    ActiveChart.ChartTitle.Select
    Selection.Characters.Text = _
        "Aaaaaa aa aaaaaaaaa aaaaaaaaaa aaaaaa aaa aaaaa aa aaaaaaaaa (aaaaaaaaaaaa)" & Chr(10) & "- aaaaaaaaa aa " & Jour & " " & MoisEnLettre(Mois) & " " & Annee & " -"
    Selection.AutoScaleFont = False
    With Selection.Characters(Start:=1, Length:=76).Font
        .Name = "Arial"
        .FontStyle = "Gras"
        .Size = 11.25
        .Color = RGB(153, 0, 0)
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlColorIndexNone
    End With
    Selection.AutoScaleFont = False
    With Selection.Characters(Start:=77, Length:=32).Font
        .Name = "Arial"
        .FontStyle = "Italique"
        .Size = 9.5
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlColorIndexNone
    End With
     ActiveChart.Axes(xlCategory).Select
    With ActiveChart.Axes(xlCategory)
        .MinimumScale = DateValue("01/01/2004")
        .MaximumScale = DateValue(echel_max)
        .BaseUnitIsAuto = True
        .MajorUnit = 1
        .MajorUnitScale = xlMonths
        .MinorUnitIsAuto = True
        .Crosses = xlCustom
        .CrossesAt = DateValue("01/01/2004")
        .AxisBetweenCategories = True
        .ReversePlotOrder = False
    End With
En gras ce que j'ai rajouté mais qui ne change rien.

Si quelqu'un voit une erreur dans ce code, je suis preneur. Merci d'avance !
Alqualonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 18h35   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

Il y a beaucoup de choses de changées en ce qui concerne les graphiques avec XL2007. Le mieux est de te servir de l'enregistreur de macros pour obtenir ce que tu souhaites.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 18h51   #3
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Utiliser les Select , Active , Selection .. est une mauvaise idée.. essai déjà :


Code :
1
2
ThisWorkBook.Sheets("Feuille1").ChartObjects("Graphique 6").ChartTitle.Characters.Text = _
        "Aaaaaa aa aaaaaaaaa aaaaaaaaaa aaaaaa aaa aaaaa aa aaaaaaaaa (aaaaaaaaaaaa)" & Chr(10) & "- aaaaaaaaa aa " & Jour & " " & MoisEnLettre(Mois) & " " & Annee & " -"
avec le bon nom de feuille ....
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 11h55   #4
Membre actif
 
Inscription : juillet 2006
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 295
Points : 191
Points : 191
Bonjour,

Merci à vous deux pour vos réponses. Je vais surement suivre le conseil de Daniel C. en repassant de nouveau par l'enregistreur de macro.

Pour le conseil de bbil, il s'agit donc de remettre à chaque instruction le "chemin complet" ? Ca donnerait un truc de ce genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'Graphiques : actualisation des titres
    ThisWorkBook.Sheets("Feuille1").ChartObjects("Graphique 6").ChartTitle.Characters.Text = _
        "Aaaaaa aa aaaaaaaaa aaaaaaaaaa aaaaaa aaa aaaaa aa aaaaaaaaa (aaaaaaaaaaaa)" & Chr(10) & "- aaaaaaaaa aa " & Jour & " " & MoisEnLettre(Mois) & " " & Annee & " -"
    ThisWorkBook.Sheets("Feuille1").ChartObjects("Graphique 6").ChartTitle.AutoScaleFont = False
    With ThisWorkBook.Sheets("Feuille1").ChartObjects("Graphique 6").ChartTitle.Characters(Start:=1, Length:=76).Font
        .Name = "Arial"
        .FontStyle = "Gras"
        .Size = 11.25
        .Color = RGB(153, 0, 0)
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlColorIndexNone
    End With
    ThisWorkBook.Sheets("Feuille1").ChartObjects("Graphique 6").ChartTitle.AutoScaleFont = False
Est-ce que c'est mieux parce que ça évite les éventuelles confusions ?
Alqualonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 12h40   #5
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
bbil a raison dans l'absolu. Pour être complet, il faudrait même mettre :

Code :
Application.ThisWorkBook.Sheets("Feuille1").ChartObjects("Graphique 6")
Ceci dit, "Application" représente l'application Excel, donc on peut en faire l'économie dans la plupart des cas. De même, si tu travailles avec un seul classeur, tu peux supprimer "ThisWorkbook". Pour éviter d'encombrer le code, en conservant la qualification des objets; il faut travailler avec "With" et "End With".
Ton code devient :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'Graphiques : actualisation des titres
    With ThisWorkbook.Sheets("Feuille1").ChartObjects("Graphique 6")
        .ChartTitle.Characters.Text = _
        "Aaaaaa aa aaaaaaaaa aaaaaaaaaa aaaaaa aaa aaaaa aa aaaaaaaaa (aaaaaaaaaaaa)" & Chr(10) & "- aaaaaaaaa aa " & Jour & " " & MoisEnLettre(Mois) & " " & Annee & " -"
        .ChartTitle.AutoScaleFont = False
        With .ChartTitle.Characters(Start:=1, Length:=76).Font
            .Name = "Arial"
            .FontStyle = "Gras"
            .size = 11.25
            .Color = RGB(153, 0, 0)
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlColorIndexNone
        End With
        .ChartTitle.AutoScaleFont = False
    End With
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/11/2011, 13h03   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par Daniel.C Voir le message
.... De même, si tu travailles avec un seul classeur, tu peux supprimer "ThisWorkbook". ...
Car dans ce cas la tu ne peu être sur d'agir sur le bon classeur ...
bbil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2011, 13h23   #7
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Tu as raison dans l'absolu. Cependant, tu peux coller ta macro dans le mauvais projet et "Thisworkbook" est une fausse sécurité. La seule façon d'être sûr est d'utiliser le nom du classeur.
Il faut faire une part pour la facilité d'emploi. Les objets "ActiveWorkbook", "Activesheet" existent, bien qu'on puisse s'en passer la plupart du temps.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/11/2011, 14h06   #8
Membre actif
 
Inscription : juillet 2006
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 295
Points : 191
Points : 191
Merci pour ces explications complémentaires !

J'ai essayé par l'enregistreur de macros de modifier mon titre et voici ce que j'obtiens en brut :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Macro2()
'
' Macro2 Macro
'
 
'
    ActiveSheet.ChartObjects("Chart 6").Activate
    ActiveChart.ChartTitle.Text = "Nombre de gens" & Chr(13) & "Situation au 02 novembre 2011"
    ActiveSheet.ChartObjects("Chart 6").Activate
    ActiveSheet.ChartObjects("Chart 6").Activate
    ActiveSheet.ChartObjects("Chart 6").Activate
    ActiveSheet.ChartObjects("Chart 6").Activate
    ActiveChart.ChartTitle.Text = _
        "Nombre de gens" & Chr(13) & "- Situation au 02 novembre 2011 -"
    ActiveSheet.ChartObjects("Chart 6").Activate
    ActiveChart.ChartArea.Select
    Range("AM24").Select
End Sub
Que je peux réduire, en enlevant toutes mes manipulations qui ont pollué le code et en appliquant vos conseils en :
Code :
1
2
3
4
5
6
Sub Macro2()
With ThisWorkbook.Sheets("Feuille1").ChartObjects("Chart 6")
   .ChartTitle.Text = _
        "Nombre de gens" & Chr(13) & "- Situation au 02 novembre 2011 -"
End With
End Sub
Mais ce bout de code ne gère par les changements de police, couleur de police... que j'ai pourtant appliqués durant l'enregistrement de la macro et qui n'apparaissent pas dans le code ici, alors que je les avais dans ma macro "Excel 2000". Bizarre.

J'ai d'ailleurs essayé de reprendre tout à zéro et le code suivant me met une erreur d'éxécution 438 "Propriété ou méthode non gérée par cet objet" au premier .ChartTitle.Text :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Sub Macro2()
'
' Macro2 Macro
'
 
'
     'Déclarations
    Dim Fichier As Variant
    Dim NomFichier As String
    Dim Annee As String, Annee2 As String, Mois As String, Jour As String
    Dim echel_max As String
 
    ChDrive "N:"
    ChDir "N:\MonChemin\Truc"
 
    'Attention cela ne va proposer que les .xls
    Fichier = Application.GetOpenFilename("Classeurs Excel (*.xls), *.xls")
    If Fichier = False Then Exit Sub
    Workbooks.Open (Fichier)
 
    'Récupération des informations de date
    NomFichier = Right(Fichier, 23)
    Annee = Mid(NomFichier, 10, 4)
    Annee2 = Mid(Annee, 3, 4)
    Mois = Mid(NomFichier, 15, 2)
    Jour = Mid(NomFichier, 18, 2)
 
    If Mois < 11 Then
            echel_max = Mois + 2 & "/" & Jour & "/" & Annee
    ElseIf Mois = 11 Then
            echel_max = "01/" & Jour & "/" & Annee + 1
    ElseIf Mois = 12 Then
            echel_max = "02/" & Jour & "/" & Annee + 1
    End If
 
    Windows("MonFichier.xls").Activate
 
    With ThisWorkbook.Sheets("Feuil1").ChartObjects("Chart 6")
        .ChartTitle.Text = _
            "Nombre de gens" & Chr(13) & "- situation au " & Jour & " " & MoisEnLettre(Mois) & " " & Annee & " -"
        .ChartTitle.AutoScaleFont = False
        With .ChartTitle.Characters(Start:=1, Length:=15).Font
            .Name = "Arial"
            .FontStyle = "Gras"
            .Size = 11.25
            .Color = RGB(153, 0, 0)
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
        End With
        .ChartTitle.AutoScaleFont = False
        With .ChartTitle.Characters(Start:=16, Length:=32).Font
            .Name = "Arial"
            .FontStyle = "Italique"
            .Size = 9.5
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
        End With
        With .Axes(xlCategory)
            .MinimumScale = DateValue("01/01/2004")
            .MaximumScale = DateValue(echel_max)
            .BaseUnitIsAuto = True
            .MajorUnit = 1
            .MajorUnitScale = xlMonths
            .MinorUnitIsAuto = True
            .Crosses = xlCustom
            .CrossesAt = DateValue("01/01/2004")
            .AxisBetweenCategories = True
            .ReversePlotOrder = False
        End With
    End With
 
End Sub
 
Function MoisEnLettre(Mois As String)
     MoisEnLettre = Switch( _
        Mois = "01", "janvier", _
        Mois = "02", "février", _
        Mois = "03", "mars", _
        Mois = "04", "avril", _
        Mois = "05", "mai", _
        Mois = "06", "juin", _
        Mois = "07", "juillet", _
        Mois = "08", "août", _
        Mois = "09", "septembre", _
        Mois = "10", "octobre", _
        Mois = "11", "novembre", _
        Mois = "12", "décembre")
End Function
J'avoue avoir rajouté la ligne Windows("MonFichier.xls").Activate pour être sûr qu'il travaille sur le bon fichier, mais il y a peut-être moyen de faire comme pour les onglets ?

Je patauge un peu...
Alqualonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 14h19   #9
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Décidément, l'enregistreur de macros 2007 est en dessous de tout. Dis-moi ce que tu veux dans ton titre et avec quelles couleurs (en français, pas en VBA).
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 14h37   #10
Membre actif
 
Inscription : juillet 2006
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 295
Points : 191
Points : 191
J'aurais voulu un titre sur deux lignes :

La première ligne avec du texte seulement comme "Nombre de gens (vivants)"
Et la deuxième avec "- situation au 4 novembre 2011-" avec la date dépendant du nom de fichier que j'ouvre au début de la macro et qui se nomme par exemple "FICHIER 2011-11-04.XLS".

La première ligne, je l'aurais aimée grosso modo écrite en Arial Noir et taille 11, et la deuxième ligne en Arial Noir Italique et taille 9.

C'est à peu près ce que j'avais dans ma première macro.
Alqualonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 14h38   #11
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Ceci fonctionne pour moi. Reste à savoir dans quel classeur se trouve ton graphique. "ThisWorkbook" désigne le classeur dans lequel se trouve la macro. S'il se troouve dans un autre classeur, dis-le.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    With ThisWorkbook.Sheets("Feuil1").ChartObjects("Chart 6").Chart
        .HasTitle = True
        .ChartTitle.Text = _
            "Nombre de gens" & Chr(13) & "- situation au " & "5" & " " & "novembre" & " " & "2011" & " -"
        .ChartTitle.AutoScaleFont = False
        With .ChartTitle.Characters(Start:=1, Length:=15).Font
            .Name = "Arial"
            .FontStyle = "Gras"
            .Size = 11.25
            .Color = RGB(153, 0, 0)
        End With
        .ChartTitle.AutoScaleFont = False
        With .ChartTitle.Characters(Start:=16, Length:=32).Font
            .Name = "Arial"
            .FontStyle = "Italique"
            .Size = 9.5
        End With
        With .Axes(xlCategory)
            .MinimumScale = DateValue("01/01/2004")
            .MaximumScale = DateValue(echel_max)
            .BaseUnitIsAuto = True
            .MajorUnit = 1
            .MajorUnitScale = xlMonths
            .MinorUnitIsAuto = True
            .Crosses = xlCustom
            .CrossesAt = DateValue("01/01/2004")
            .AxisBetweenCategories = True
            .ReversePlotOrder = False
        End With
    End With
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 14h52   #12
Membre actif
 
Inscription : juillet 2006
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 295
Points : 191
Points : 191
J'ai retrouvé un titre en couleur et non plus "en blanc" avec ce code, merci !
J'ai remis mon titre "dynamique" et cela fonctionne également.

Néanmoins, tout est en police 9.5, et pas de gras ni d'italique. Damned... Mais ça progresse !

Edit : ThisWorkBook représente bien le classeur qui contient cette macro.
Alqualonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 15h16   #13
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Regarde ici :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Sub Macro2()
'
' Macro2 Macro
'
 
'
     'Déclarations
    Dim Fichier As Variant
    Dim NomFichier As String
    Dim Annee As String, Annee2 As String, Mois As String, Jour As String
    Dim echel_max As String
    Dim wb As Workbook
 
    ChDrive "N:"
    ChDir "C:\MonChemin\Truc"
    '*** ne fonctionnera pas :
    '*** tu dois préciser dans ChDir un dossier du lecteur défini par ChDrive (N)
 
    'Attention cela ne va proposer que les .xls
    Fichier = Application.GetOpenFilename("Classeurs Excel (*.xls), *.xls")
    If Fichier = False Then Exit Sub
    Set wb = Workbooks.Open(Fichier)
 
    'Récupération des informations de date
    NomFichier = Right(Fichier, 23)
    Annee = Mid(NomFichier, 10, 4)
    Annee2 = Mid(Annee, 3, 4)
    Mois = Mid(NomFichier, 15, 2)
    Jour = Mid(NomFichier, 18, 2)
 
    If Mois < 11 Then
            echel_max = Mois + 2 & "/" & Jour & "/" & Annee
    ElseIf Mois = 11 Then
            echel_max = "01/" & Jour & "/" & Annee + 1
    ElseIf Mois = 12 Then
            echel_max = "02/" & Jour & "/" & Annee + 1
    End If
 
    With wb.Sheets("Feuil1").ChartObjects("Chart 6").Chart
        .HasTitle = True
        .ChartTitle.Text = _
            "Nombre de gens" & Chr(13) & "- situation au " & Jour & " " & MoisEnLettre(Mois) & " " & Annee & " -"
        .ChartTitle.AutoScaleFont = False
        With .ChartTitle.Format.TextFrame2.TextRange.Characters(Start:=1, Length:=15).Font
            .Name = "Arial"
            .Bold = msoTrue
            .Size = 11.25
            With .Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(0, 0, 0)
            .Transparency = 0
            .Solid
            End With
        End With
        .ChartTitle.AutoScaleFont = False
        With .ChartTitle.Format.TextFrame2.TextRange.Characters(Start:=16, Length:=32).Font
            .Name = "Arial"
            .Italic = msoTrue
            .Size = 9.5
            With .Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(0, 0, 0)
            .Transparency = 0
            .Solid
            End With
        End With
        With .Axes(xlCategory)
            .MinimumScale = DateValue("01/01/2004")
            .MaximumScale = DateValue(echel_max)
            .BaseUnitIsAuto = True
            .MajorUnit = 1
            .MajorUnitScale = xlMonths
            .MinorUnitIsAuto = True
            .Crosses = xlCustom
            .CrossesAt = DateValue("01/01/2004")
            .AxisBetweenCategories = True
            .ReversePlotOrder = False
        End With
    End With
 
End Sub
Je n'ai pas trouvé où la variable "NomFichier" était initialisée.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 15h20   #14
Membre actif
 
Inscription : juillet 2006
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 295
Points : 191
Points : 191
Oups, c'est une erreur de copie lors de l'anonymisation de mon programme... C'est bien N:\MonChemin\... et non C:\...

Quant à NomFichier, ai-je besoin de l'initialiser étant donné que je fais ça ligne 25 :
Code :
  NomFichier = Right(Fichier, 23)
?
Alqualonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 15h45   #15
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Citation:
Quant à NomFichier, ai-je besoin de l'initialiser étant donné que je fais ça ligne 25 :
Non, bien sûr. Je ne l'avais pas vu... je vais prendre un café
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2011, 16h08   #16
Membre actif
 
Inscription : juillet 2006
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 295
Points : 191
Points : 191
Je t'en paierais bien un pour te remercier du temps passé sur mon problème mais les e-cafés ne sont pas encore très appréciés alors... bon café !!
Alqualonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h53.


 
 
 
 
Partenaires

Hébergement Web