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 :

sélection séries pour 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é
    Homme Profil pro
    technicien
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Par défaut sélection séries pour graphique
    Bonjour,

    je sollicite votre aide pour une ligne de code, cela doit être simple, mais à force j'ai des peaux de sauss dans les yeux...!
    je veux sélectionner un tableau pour faire un graphique. je ne connais le nombre de ligne et le nombre de colonne. Je pense avoir trouvé le code pour trouver ces 2 nombres, reste la sélection des cellules pour le graphique...et là je plante...

    voici mon bout de code:

    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
    Dim ligne As Long
    Dim Feuil1 As Worksheet
      Dim i As Integer
    Dim compt As Integer
    Dim ncol As Integer
     
    'détection nombre de colonnes
     
     
    compt = 0
    Cells(13, 6).Select
    For i = 7 To 11
    If Cells(13, i).Value <> "" Then
    compt = compt + 1
    End If
    Next i
    ncol = compt + 6
     
    'detection nombre lignes
        ligne = Worksheets("Feuil1").Range("A35536").End(xlUp).Row
        MsgBox Worksheets("Feuil1").Cells(ligne, 1)
     
        Range(Cells(13, 6), Cells(ligne, ncol)).Select
        Charts.Add
        ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
        ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range(Cells(13, 6), Cells(ligne, ncol)).Select, PlotBy _
            :=xlColumns
    Bon, je pense que mon code n'est pas académique, mais je débute...je vous suis tout ouï.

    Merci

    Tremens

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 124
    Par défaut
    Salut
    En regle general il faut eviter l'utilisation des "select", ils sont trés souvent superflu, une cellule n'a pas besoin d'etre selectionnée pour qu'on modifie sa valeur.

    Je pense que l'erreur dans ton code se situe ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range(Cells(13, 6), Cells(ligne, ncol)).Select, PlotBy _
            :=xlColumns
    Le .Select est en trop, la sélection, si besoin de sélectionner il y a, voir remarque au dessus, doit se faire avant ou après l'appel a une function, mais jamais pendant.

    Une autre remarque tu testes tes colonne une a une est compte le nombre de cellule non vide dans une boucle, mais imagine qu'une cellule soit vide, tu va compter seulement les cellule non vide et faire ta sélection, donc tu vas décaler ta sélection d'une colonne et perdre les données contenu dans la dernière colonne de ton tableau.
    On peut donc supposer que les cellules ne sont jamais vide? si c'est le cas ton code fonctionne mais du coup pourquoi ne pas utiliser End(xlleft) comme tu as fait pour les lignes?

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Par défaut
    Merci Qwazerty de me venir en aide,

    J'ai mis cette boucle pour connaitre le nombre de voies d'acquisition. ce nombre varie de 1 à 5 et l'appli qui me permet de récupérer les valeurs pour les exporter en fichiers excel, enregistre les voies de façon continu (colonne) meme si par exemple j'ai la voie 0 et la voie 4 connectées.
    je viens de tester la macro sans select, car plus haut comme tu l'a écris j'avais déja sélectionné la zone pour le graphique...mais cela ne marche pas!
    enfin pas comme je le veux. Il me crée un graphique dans une feuille graphique or je le veux dans la feuille de calcul.

    Quel autre moyen ai-je pour sélectionner des series?

    Tremens

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 124
    Par défaut
    Salut et bienvenu au fait
    Je n'ai pas Excel sous la main actuellement, le plus simple pour avoir le résulta que tu recherches c'est d'enregistrer une macro, tu lances l'enregistrement, tu sélectionnes ta plage de données et crées ton graphique.
    Ensuite tu regardes le code généré par Excel pour créer le graphique associé aux données.
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Par défaut
    merci,

    J'ai commencé par la, ca marche pour un nombre de ligne donné, en revanche ça se corse quand je veux mettre une variable à la place du nombre de ligne.

    je continu de cherche, mais j'en perds mon latin...

    Sera-t-il possible que je vous donne ma macro, une fois fini, pour avoir votre avis et me donner les points à améliorer?

    Tremens

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 124
    Par défaut
    Salut
    Alors voila un bout de code
    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
    Sub test()
    Dim ligne As Long
    'Dim Feuil1 As Worksheet 'Surtout pas! Feuil1 est déjà déclaré puisqu'il existe dans ton classeur Excel
    'Dim i As Integer
    'Dim compt As Integer
    Dim ncol As Integer
    Dim Sh As Worksheet
    'détection nombre de colonnes
     
     
    'compt = 0
    'Cells(13, 6).Select
    'For i = 7 To 11
    'If Cells(13, i).Value <> "" Then
    'compt = compt + 1
    'End If
    'Next i
    'ncol = compt + 6
     
    Set Sh = Worksheets("Feuil1") 'permet de faire reference a la feuille sans avoir a tout taper
     
    'detection nombre lignes & colonnes
    ncol = Sh.Cells(13, Columns.Count).End(xlToLeft).Column
    ligne = Sh.Cells(Rows.Count, "F").End(xlUp).Row 'je suppose que tu testes en colonne F (6)
     
    'MsgBox Sh.Cells(ligne, 1)
     
    'Range(Cells(13, 6), Cells(ligne, ncol)).Select
    With Charts.Add
        .ChartType = xlXYScatterSmoothNoMarkers
        'penser à faire reference à la feuille à l'interieur de Range()
        .SetSourceData Source:=Sh.Range("F13", Sh.Cells(ligne, ncol)), PlotBy:=xlColumns
        .Location Where:=xlLocationAsObject, Name:="Feuil1"
    End With
    End Sub
    Je l'ai retravaillé un peu
    Attention, Feuil1 n'a pas besoin d'être déclarée, puisque celle ci existe dans ton classeur.
    Chart.Location te permet de placer ton graphic ou tu le souhaites.
    Quand tu recherches la dernière ligne non vide, tu te placé sur la colonne A, tes données ne commence t'elle pas en colonne F? j'ai pris la liberté de me placer en F, a toi de modifier au besoin.
    J'ai pris en compte la dernière cellule non vide de la ligne 13 pour avoir le nombre de colonnes utilisées.
    Il est preferable de faire reference a la feuille dans le corp de la "funtion" Range()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Feuil.Range(cells(r,c),cells(r2,c2))
    Feuil.Range(Feuil.cells(r,c),Feuil.cells(r2,c2))
    'Dans ce cas encore mieux
    Feuil.Range("F13",,Feuil.cells(r2,c2))
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. [XL-2007] Selection de n séries pour graphique
    Par Mister Max dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/02/2011, 12h26
  2. [Recherche] Librairie pour graphique
    Par Crayon dans le forum Visual C++
    Réponses: 8
    Dernier message: 14/04/2007, 14h20
  3. (vba excel) echelle horaire pour graphique
    Par DirtyA:ex dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/06/2006, 14h00
  4. applet pour graphique (X,Y)
    Par Satanas_et_diabolo dans le forum Applets
    Réponses: 1
    Dernier message: 17/02/2006, 11h21
  5. Librairies pour graphiques
    Par Fiquet dans le forum ASP
    Réponses: 7
    Dernier message: 09/11/2005, 00h02

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