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 :

Modifier la largeur d'un objet [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 108
    Par défaut Modifier la largeur d'un objet
    Bonjour,

    Je selectionne un objet dont j'aimerais modifier la hauteur, la largeur, la position. Mon problème c'est que quand je set ma largeur il modifie automatiquement la hauteur, ce qu'il ne fait pas sur Office excel 2003.

    Est-ce que quelqu'un saurait comment je peux faire pour modifier ma largeur sans que ma hauteur ne change?

    Merci d'avance

    Seba_stien

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Je n'ai pas 2007 mais essaies en forcant cette propriete de ton objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LockAspectRatio = msoFalse
    ++
    Minick

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 108
    Par défaut
    Merci pour ton aide mais malheureusement ca ne change rien....

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    For lScan = 1 To BRACES_COUNT
            chtChart.Shapes("shpBrace" & CStr(lScan)).LockAspectRatio = msoFalse
            chtChart.Shapes("shpBrace" & CStr(lScan)).Select
            sngLeft = chtChart.ChartArea.Left + chtChart.Axes(xlValue).Left + ((chtChart.Axes(xlCategory).Width / (BRACES_COUNT * lBarsPerYear + 1)) * ((lScan - 1) * lBarsPerYear + 1)) - 3
            sngTop = chtChart.ChartArea.Top + chtChart.PlotArea.Top + chtChart.PlotArea.Height
            sngWidth = (chtChart.Axes(xlCategory).Width / (BRACES_COUNT * lBarsPerYear + 1)) * (lBarsPerYear - 1)
            Selection.Left = sngLeft
            Selection.Top = sngTop
            Selection.Width = sngWidth 'Ici la hauteur est quand même modifiée
    Next lScan
    J'ai 3 objets que je place et adapte par rapport à un axe de mon graphique.

    Merci vraiment de m'aider....

    Seba_stien

  4. #4
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    As tu essaies de regarder dans les proprietes de ton objet et de modifier tout ce qui concerne les dimensions et proportions en utilisant l'enregistreur de macro
    pour voir si tu n'aurais pas une autre propriete specifique a 2007.

    ++
    Minick

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 108
    Par défaut
    Oui et je n'ai rien trouvé...

    autre idée?

  6. #6
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    A tout hazard, essaie en passant par ShapeRange

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For lScan = 1 To BRACES_COUNT
            chtChart.Shapes("shpBrace" & CStr(lScan)).ShapeRange.LockAspectRatio = msoFalse
            chtChart.Shapes("shpBrace" & CStr(lScan)).Select
            sngLeft = chtChart.ChartArea.Left + chtChart.Axes(xlValue).Left + ((chtChart.Axes(xlCategory).Width / (BRACES_COUNT * lBarsPerYear + 1)) * ((lScan - 1) * lBarsPerYear + 1)) - 3
            sngTop = chtChart.ChartArea.Top + chtChart.PlotArea.Top + chtChart.PlotArea.Height
            sngWidth = (chtChart.Axes(xlCategory).Width / (BRACES_COUNT * lBarsPerYear + 1)) * (lBarsPerYear - 1)
            Selection.ShapeRange.Left = sngLeft
            Selection.ShapeRange.Top = sngTop
            Selection.ShapeRange.Width = sngWidth 'Ici la hauteur est quand même modifiée
    Next lScan

    Quel type d'objet cherches-tu a modifier?
    (Je me souviens avoir vu quelque par qu'on pouvait tester 2007 chez crosoft sans installation, j'essaierai...)

    ++
    Minick

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 108
    Par défaut
    ca ne fonctionne pas...

    erreur:Object doesn't support this property or method

    L'objet en question se trouve dans insert==>Picture==>AutoShapes==>Basic Shapes==>Left Brace

    Je l'ai mis de manière horizontale(Tourne de 45° à gauche) de manière à avoir l'ouverture en haut....

  8. #8
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Essaies comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For lScan = 1 To BRACES_COUNT
            chtChart.Shapes("shpBrace" & CStr(lScan)).ShapeRange.LockAspectRatio = msoFalse
            chtChart.Shapes("shpBrace" & CStr(lScan)).Select
            sngLeft = chtChart.ChartArea.Left + chtChart.Axes(xlValue).Left + ((chtChart.Axes(xlCategory).Width / (BRACES_COUNT * lBarsPerYear + 1)) * ((lScan - 1) * lBarsPerYear + 1)) - 3
            sngTop = chtChart.ChartArea.Top + chtChart.PlotArea.Top + chtChart.PlotArea.Height
            sngWidth = (chtChart.Axes(xlCategory).Width / (BRACES_COUNT * lBarsPerYear + 1)) * (lBarsPerYear - 1)
            Selection.Left = sngLeft
            Selection.Top = sngTop
            Selection.Width = sngWidth
    Next lScan
    Le test que j'ai pu effectuer a fonctionne pour moi...

    ++
    Minick

  9. #9
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 108
    Par défaut
    Merci, mais j'ai trouvé!!!! Sur 2007 quand on fait une rotation d'un objet la largeur devient la hauteur et la hauteur la largeur!!!! MERCI MICROSOFT POUR LEUR LOGIQUE!!!

    Je vais faire une condition qui suivant la version inversera les 2...

    Merci à toi pour ton aide

    à plus

    Seba_stien

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

Discussions similaires

  1. [TBarSeries] Comment modifier la largeur de chaque barre ?
    Par Vodkha dans le forum Composants VCL
    Réponses: 3
    Dernier message: 24/11/2009, 15h40
  2. Réponses: 4
    Dernier message: 19/05/2006, 10h24
  3. Pb pour modifier la largeur d'un état.
    Par Celia1303 dans le forum Access
    Réponses: 5
    Dernier message: 22/11/2005, 11h10
  4. [TDbGrid] Comment modifier la largeur des colonnes ?
    Par colorid dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/11/2005, 18h47
  5. [INPUT TYPE=SUBMIT] Comment modifier la largeur d'1 bouton
    Par Kylen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/08/2005, 12h27

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