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 :

Graphique a base des donnees exportees via ACCESS


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut Graphique a base des donnees exportees via ACCESS
    Bonjour,
    je suis un peu perdu , j'ai essayé de faire une solution qui me permette d'eviter le code , mais apparement c'est ma seule solution.
    alors mon soucis :
    * j'exporte des donnees vers Excel via une requete
    * le but est de tracer un graphique d'un champ de la table exporter.
    * je dois avoir des graphiques selon les activites (activites c'est un champ du tableau exporter et qui sont 6)

    Pour cela:
    * j'ai crée un fichier excel avec un onglet Graphique, et j'exporte mes donnes dans des onglets (Res1,Res2,Res3 et Res4)

    * Sachant que l'exportation peux donner une vairance dans la taille du champs , je peux pas creer un graphique de la maniere a chercher les champs de l'onglet correspondant
    je veux tracer que les activites du Res1.
    j'espere que j'aurais une reponse car vraiment je me bloque la dessus
    en vous remerciant

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut,
    je ne comprends pas ce que tu expliques.

    Peux-tu expliquer en montrant ton code et en expliquant ou tu coinces ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    je detaille :
    * j'ai cree une feuille Excel avec un onglet Graphique, et depuis ma base Access j'exporte des Tableaux ce qui me crée d'autre Onglets (Res1,REs2..)
    * ce que je voudrais faire c'est de tracer un Histogramme , correspondant au valeur de l'onglet Res1.
    J'espere que j'etais Clair ?

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Pas très clair pour moi, en tout cas par rapport à ma pauvre connaissance des graphiques en Excel.

    ce que je te demandais surtout c'était ton code VBA actuel.

    As-tu essayé le système suivant, basique mais qui va te produire un code VBA.
    Démarrage l'enregistreur de macro, ensuite effectue toutes les manips nécessaires pour
    tracer un Histogramme , correspondant au valeur de l'onglet Res1.
    Ensuite tu arrêtes l'enregistreur de macro et tu vas voir le code qui est sauvé sour le nom de ta macro dans un Module.

    Essaie cela, bricole le résultat et reviens ensuite.

    Ok pour toi ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    Mais le soucis ça va pas etre automatiser.
    car a chaque fois je fais l'export de donnees ce qui va me permettre de tracer automatiquement l'histogramme qui va avec !!!!

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Mais le soucis ça va pas etre automatiser.
    Pas encore.

    mais d'abord il faut un code de départ, celui que je propose de faire via l'enregistreur de macro.

    L'automatisation on en parle juste après.

    Ou alors je n'ai pas compris et tu veux tout faire depuis access ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ChartS.Add
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.SetSourceData Source:=Sheets("GMS").Range("G7:G14"), PlotBy:= _
            xlColumns
        ActiveChart.SeriesCollection(1).XValues = "=GMS!R7C2:R14C2"
        ActiveChart.Location Where:=xlLocationAsObject, Name:="gra"
        With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "Tx Service Colis GMS Fraise"
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "LB Ent"
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Tx Service %"
        End With
    le soucis c'est que je dois tracer par activites . et le LB_Ent peut varier d'une activite a l'autre
    Donc je me demande si je met des If sur le champ activite qui permet de lire les valeurs et tracer le graphe qui va avec

  8. #8
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Donc je me demande si je met des If sur le champ activite qui permet de lire les valeurs et tracer le graphe qui va avec
    Bonne idée, mais avec SELECT CASE tu auras un résultat plus propre.

    Si je comprends bien, il te faut en variables tout ce qui en couleur dans ton texte.

    C'est jouable, je crois, avec un code du genre (purement exemplatif):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select case champ_dactivite
      case "GMS fraise"
            source_Sheet = "GMS"
            source_range = "G7:G14"
            ....
    end select

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    oui j'ai deja commencé a faire ça,
    il y a toujours un mais , c'est que les ligne peuvent varier d'une extraction a l'autre.
    parce que la c'etais un exple(7 lignes pour Fraise) tu vois , mais je refais une 2 extraction (J'aurais 9 lignes). et elle pourrais me prendre des valeurs de l'activites suivante meme si je definis des cases , car c'est la valeur du Range qui géne
    please HELP!!!

  10. #10
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Sans voir les données difficile de comprendre comment elles se présentent.

    Les données de base du graphe g sont sur une feuille f. ok ?

    Si je connais le nombre de lignes de la feuille f, je peux prendre toutes les lignes et toujours les memes colonnes ou bien il y a encore une subtilité qui m'échappe.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    mon tableau se compose de 8 champs(colonnes) , ce qui m'interesse c'est la colonne B pour recuperer le LB de l'entrepot , la colonne C pour l'activite et la colonne G pour le Taux.
    moi je veux tracer le taux des differentes activites.

    JE voudrais savoir , si je selectionne toute la collone concernant le taux , et je mets des case sur l'activite , ça marchera ?

    je sais plus quoi faire

  12. #12
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    mon tableau se compose de 8 champs(colonnes) , ce qui m'interesse c'est la colonne B pour recuperer le LB de l'entrepot , la colonne C pour l'activite et la colonne G pour le Taux.
    moi je veux tracer le taux des differentes activites.

    JE voudrais savoir , si je selectionne toute la collone concernant le taux , et je mets des case sur l'activite , ça marchera ?

    je sais plus quoi faire
    je décroche un peu aussi. Pour rappel, je ne suis pas expert en graph .
    Si tu pouvais montrer un exemple de données, le cas le plus compliqué que tu as, et mettre les explication sur ce que tu veux en faire, je parviendrais à reprendre le train en marche.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    Je t'ai mi en piece jointe mon fichier excel

  14. #14
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Voilà le 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    Sub analyse_Activite()
    Dim lrow        As Long
    Dim xlrow       As String
    Dim Activite_nom() As String
    Dim Activite_From() As Integer
    Dim Activite_to() As Integer
    Dim idx           As Integer
    Dim offset        As Integer
    Dim activite      As String
     
    lrow = Worksheets("GMS").UsedRange.Rows.Count
    xlrow = lrow
    ReDim Activite_nom(1)
    ReDim Activite_From(1)
    ReDim Activite_to(1)
     
    activite = "*wazaaaaaaha"
    idx = 2
    offset = 0
    For idx = 2 To lrow
     If Worksheets("GMS").Range("C" & idx) <> "" Then
        If activite = Worksheets("GMS").Range("C" & idx) Then
           Activite_to(offset) = idx
         Else
           offset = offset + 1
           activite = Worksheets("GMS").Range("C" & idx)
           ReDim Preserve Activite_nom(offset)
           ReDim Preserve Activite_From(offset)
           ReDim Preserve Activite_to(offset)
           Activite_nom(offset) = Worksheets("GMS").Range("C" & idx)
           Activite_From(offset) = idx
           Activite_to(offset) = idx
        End If
     End If
    Next idx
     
    'generation des graphiques
    For idx = 1 To offset
      'Le nom de l'activité est Activite_Nom(idx)
      'Les lignes a prendre en compte pour le range du grapgh sont:
      '   de Activite_from(idx)
      '   a  Activite_to(idx)
     
      '*** generation du graph
    Next idx
     
     
    End Sub
    La première boucle repère les différentes activités et stocke nom, ligne de départ et ligne de fin en table.
    J'ai testé la boucle 1, elle fonctionne impec.

    la deuxième boucle traite les différentes activités pour créer les graphes. Je n'ai pas fait ce deuxième travail . C'est pour ta pomme

    Fais signe si tu ne comprends pas. A 14h je quitte.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    ok j'esseirai de comprendre le plus vite
    merci tt de mm
    un tres grand merci

  16. #16
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Re,

    Pour la deuxième boucle
    cela devrait donner un truc du genre (je tape direct dans le post et donc pas de test de syntaxe ni de compil....)

    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
     
    'generation des graphiques
    For idx = 1 To offset
      'Le nom de l'activité est Activite_Nom(idx)
      'Les lignes a prendre en compte pour le range du grapgh sont:
      '   de Activite_from(idx)
      '   a  Activite_to(idx)
     
    ChartS.Add
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.SetSourceData Source:=Sheets("GMS").Range("G" & Activite_from(idx) & ":G" & Activite_to(idx)), PlotBy:= _
            xlColumns
        ActiveChart.SeriesCollection(1).XValues = "=GMS!R" & Activite_from(idx) & "C2:R" & activite_to(idx) & "C2"
        ActiveChart.Location Where:=xlLocationAsObject, Name:="gra"
        With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "Tx Service Colis GMS " & Activite_nom(idx)
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "LB Ent"
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Tx Service %"
        End With
    Next idx
    tu piges ?
    reste à voir pour le positionnement des différents graphiques.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    oui merci , c'est gentil de ta part
    j'en susi tres reconnaissant de ton aide , elle m'est tres utiles

    D'apres ce que j'ai compris ,
    la 1 boucle , cherche le nom de l'activité la par exple "Fraise" et il me permette de definir le nombre de ligne qui vont avec "indx"
    est bien ca ?

  18. #18
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    la 1 boucle , cherche le nom de l'activité la par exple "Fraise" et il me permette de definir le nombre de ligne qui vont avec "idx"
    est bien ca ?
    Oui

    Active_nom(idx) = nom (par exemple fraise)
    Active_from(idx) = première ligne ou "fraise" apparait
    Actite_to(idx) = dernière ligne ou "fraise" apparait

    la boucle de 1 à offset traite les différentes activités.


  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Par défaut
    oui j'ai compris ,
    sincerment respect Mr
    mm un grand respect

  20. #20
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    sincerment respect Mr
    mm un grand respect
    Pas de quoi, c'est mon métier.
    Mais merci pour la reconnaissance.

    Et avec plaisir.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Securite de la Base des donnees sous Access
    Par oussoumane dans le forum Sécurité
    Réponses: 1
    Dernier message: 10/11/2008, 20h27
  2. Réponses: 8
    Dernier message: 23/01/2007, 21h02
  3. Connexion à une base de données mysql via access
    Par eautret dans le forum Access
    Réponses: 2
    Dernier message: 07/04/2006, 10h02
  4. Réponses: 4
    Dernier message: 08/03/2006, 20h45
  5. Réponses: 10
    Dernier message: 16/03/2005, 18h25

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