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 :

affichage des labels grâce à VB ? [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut affichage des labels grâce à VB ?
    Bonjour,

    en pj, vous trouverez un projet dont je n'arrive à terme.
    Je souhaite, lorsque je pointe un point du nuage de point, que le label s'affiche en haut du graph.
    Tout va bien pour la série 1 mais les résultats sont erronés pour la série 2.

    Quelqu'un a t-il une idée ?

    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Je pense qu'il te manque simplement un DoEvents, dans ton cas juste avant ton End sub.

    A+

  3. #3
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    Merci pour l'info.
    Je ne te cache pas que ce n'est pas moi qui ai créé ce code et du coup, je vais tenter d'ajouter ce que tu m'as dit mais sans trop d'espoir.

    Pourrais tu m'assister sur cette fonction ?

    Merci beaucoup

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    Pas de soucis, je suis à nouveau sur ton fichier, car en effet leDoEvents était peut-être un peu trop simpliste
    A+

  5. #5
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    Je pense avoir trouvé...
    Pour récupérer les valeurs il fait un offset sur base la variable Arg2 qui est "l'ordre" des points dans la série, sauf que il ne tient pas compte des différentes séries, car la premier point de la série 2 renvoi 1 et pas 20 comme il devrait pour que le code fonctionne.
    Ma question est donc, auras tu toujours le même nombre de points par série ?
    Si non, peux t'on imaginer d'ajouter une colonne pour faciliter l'identification d'une nouvelle série ?
    A+

  6. #6
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    Voici une proposition qui se base sur des nombres de points variables (Limité à la plage A1:A100 via le .Find, que tu peux modifier ).
    L'idée, sur base de l'argument 1 (variable Arg1) qui renvoi le numéro de série.
    Ce numéro sert à un Select Case, suivant le Case on récupère le numéro de la ligne du premier point de la série grâce à un .Find (pour la série 2 j'ai utilisé 1ha1400CC)
    Ce numéro de ligne (décrémenté de 1 pour pouvoir faire l'offset sur base de l'argument 2) est donc la cellule de référence pour les Offset.

    En espérant que ce soit clair ...

    Au fait il me semble que ton code couleur jaune n'est pas sur la bonne ligne, sauf erreur de ma part ta série 3 commence à la ligne 33 et non pas 34.

    A+


    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
    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
    Option Explicit
     
    Public WithEvents Graph As Chart
     
     
    '*** Utilisation des évènements *********
     
    Private Sub Graph_MouseMove(ByVal Button As Long, ByVal Shift As Long, _
                        ByVal x As Long, ByVal y As Long)
     
        Dim ElementID As Long
        Dim Arg1 As Long, Arg2 As Long
        Dim MaRech As Range
        Dim MaLigne As Long
     
        On Error Resume Next
        ActiveChart.GetChartElement x, y, ElementID, Arg1, Arg2
            If Arg2 = 0 Then
                ActiveChart.Shapes("Rectangle 1").Visible = msoFalse
            Else
                Select Case Arg1
     
                    Case 1
                    MaLigne = 1
     
                    Case 2
                    Set MaRech = Sheets("Y.S Densité").Range("A1:A100").Find("1ha1400C", LookIn:=xlValues, lookat:=xlPart)
                    MaLigne = MaRech.Row - 1
     
                    Case 3
                    Set MaRech = Sheets("Y.S Densité").Range("A1:A100").Find("4ha1400C", LookIn:=xlValues, lookat:=xlPart)
                    MaLigne = MaRech.Row - 1
     
                End Select
     
                With ActiveChart.Shapes("Rectangle 1")
                    .Visible = msoTrue
                    .TextFrame.Characters.Text = _
                        Sheets("Y.S Densité").Cells(MaLigne, 3).Offset(Arg2, -2) & vbCrLf & _
                        "Porosité" & "=" & Sheets("Y.S Densité").Cells(MaLigne, 3).Offset(Arg2, -1) & vbCrLf & _
                        "YS" & "=" & Sheets("Y.S Densité").Cells(MaLigne, 3).Offset(Arg2, 0)
                    .Left = 0
                    .Top = 0
                    .Width = "200"
                    .Height = "50"
                End With
            End If
    End Sub

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

Discussions similaires

  1. Pas d'affichage des labels avec IE7
    Par jeanluc35 dans le forum IGN API Géoportail
    Réponses: 15
    Dernier message: 19/02/2011, 17h07
  2. Réponses: 5
    Dernier message: 03/12/2010, 10h47
  3. [Geoserver] Problème d'affichage des labels en arabe
    Par chouf2 dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 06/09/2010, 16h59
  4. Affichage des labels pour les courbes
    Par spakhen dans le forum iReport
    Réponses: 6
    Dernier message: 29/07/2009, 15h03
  5. Réponses: 4
    Dernier message: 11/04/2008, 08h45

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