IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA pour titre graphique [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Par défaut VBA pour titre graphique
    Bonjour
    Nouvelle sur le forum, j'aurais besoin d'aide pour faciliter mon travail.
    J'ai plusieurs graphiques dans un fichier Excel (environ 15). Je dois changer dans chaque titre du graphique le mois. Là pas de problème j'ai réussi (tant bien que mal à faire par VBA, je précise que je débute complétement en vba).
    J'ai tapé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub Graph()
    For i = 1 To Sheets.Count
    For j = 1 To Sheets(i).ChartObjects.Count
    With Worksheets(i).ChartObjects(j).Chart
    .ChartTitle.Characters.Text = Replace(.ChartTitle.Characters.Text, "Mois", "Mai")
    With .ChartTitle.Font
    .Name = "Arial"
    .FontStyle = "Gras italique"
    .Size = 10
    .ColorIndex = 1
    End With
    End With
    Next
    Next
    End Sub
    Mon titre est en 2 parties et par mon code VBA il me change la mise en forme de tout mon titre. Moi j'aimerai qu'il ne me change que la deuxième partie de mon titre.
    En cherchant encore un peu j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With .ChartTitle.Characters(start:=20).Font
    .Name = "Arial"
    .FontStyle = "Gras italique"
    .Size = 10
    .ColorIndex = 1
    End With
    Donc là effectivement il me prend en compte une partie du texte pour me changer ma mise en forme. Sauf que ma 1ère ligne n'a pas toujours le même nombre de caractère en fonction des graphiques.
    Seule ma 2ème ligne possède le même nombre de caractère.
    Y a-t-il une solution pour lui dire de ne toucher qu'à la 2ème ligne?
    Merci pour votre aide.
    Je vous joint un exemple de fichier (simplifié car il est trop volumineux pour le site)..

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Salut,
    j'ai quand même une question :
    Le mot Test est-il toujours dans ton titre ou est-ce pour l'exemple ?
    Car si c'est le cas tu peux rechercher la position de ce mot dans ta chaine de caractère grâce à l'instruction INSTR. Une fois que tu as sa postion tu applique la mise en forme comme tu l'as fait dans ton code en changeant deux choses comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     With Worksheets(i).ChartObjects(j).Chart
            'Donne à la variable val la position du mot Test dans ta chaine de caractère
            val = InStr(.ChartTitle.Characters.Text, "Test")
            .ChartTitle.Characters.Text = Replace(.ChartTitle.Characters.Text, "Mois", "Mai")
                'Tu donnes à Start la valeur de val
                With .ChartTitle.Characters(Start:=val).Font
                   .Name = "Arial"
                   .Bold = True 'écriture gras
                   .Italic = True 'écriture italique
                   .Size = 10
                   .ColorIndex = 1
                End With

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Par défaut
    salut
    Merci d'essayer.
    le mot Test est pour l'exemple mais ma 2ème ligne est toujours la même sur chaque graphique (seule la 1ère ligne diffère).
    est ce que ca marche s'il y a 2 ou 3 mois à la place de Test?
    Bon de toute façon je vais essayer et je te dirai...
    Merci encore

  4. #4
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 148
    Par défaut
    Merci je vais d'essayer cela marche.
    J'ai juste mis le 1er mot de ma 2ème ligne et il le prend en compte... Donc c'est vraiment cool
    Et un problème de régler...
    Encore merci tu me facilite beaucoup le travail là...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] VBA: Tri de range collection pour les graphiques
    Par Holger dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/10/2011, 09h35
  2. [Toutes versions] VBA pour graphique automatique
    Par alex.du.09 dans le forum Excel
    Réponses: 1
    Dernier message: 22/07/2011, 12h24
  3. Réponses: 1
    Dernier message: 09/11/2010, 15h50
  4. [VBA-E] range discontinue pour un graphique
    Par gruget dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/05/2006, 01h56
  5. [VBA-E]range discontinue pour un graphique
    Par gruget dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/03/2006, 12h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo