Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 27/08/2008, 14h21   #1 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2008
Messages: 202
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

Dernière modification par Chikatilo ; 28/08/2008 à 08h59
Chikatilo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 09h31   #2 (permalink)
Membre Expert
 
Avatar de Godzestla
 
Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 072
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 ?
__________________
Cordialement
G@dz

Question technique par MP = Vous avez des neurones. Sollicitez-les. Question mal formulée réponse inadaptée.
Si la solution est absente, le problème n'est plus.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 09h56   #3 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2008
Messages: 202
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 ?
Chikatilo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 10h06   #4 (permalink)
Membre Expert
 
Avatar de Godzestla
 
Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 072
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
Citation:
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 ?
__________________
Cordialement
G@dz

Question technique par MP = Vous avez des neurones. Sollicitez-les. Question mal formulée réponse inadaptée.
Si la solution est absente, le problème n'est plus.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 10h16   #5 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2008
Messages: 202
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 !!!!
Chikatilo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 10h25   #6 (permalink)
Membre Expert
 
Avatar de Godzestla
 
Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 072
Par défaut

Citation:
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 ?
__________________
Cordialement
G@dz

Question technique par MP = Vous avez des neurones. Sollicitez-les. Question mal formulée réponse inadaptée.
Si la solution est absente, le problème n'est plus.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 10h43   #7 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2008
Messages: 202
Par défaut

Code :
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
Chikatilo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 11h13   #8 (permalink)
Membre Expert
 
Avatar de Godzestla
 
Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 072
Par défaut

Citation:
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 :
 
select case champ_dactivite
  case "GMS fraise"
        source_Sheet = "GMS"
        source_range = "G7:G14"
        ....
end select
 
__________________
Cordialement
G@dz

Question technique par MP = Vous avez des neurones. Sollicitez-les. Question mal formulée réponse inadaptée.
Si la solution est absente, le problème n'est plus.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 11h19   #9 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2008
Messages: 202
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!!!
Chikatilo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 11h25   #10 (permalink)
Membre Expert
 
Avatar de Godzestla
 
Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 072
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.
__________________
Cordialement
G@dz

Question technique par MP = Vous avez des neurones. Sollicitez-les. Question mal formulée réponse inadaptée.
Si la solution est absente, le problème n'est plus.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 11h29   #11 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2008
Messages: 202
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
Chikatilo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 11h35   #12 (permalink)
Membre Expert
 
Avatar de Godzestla
 
Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 072
Par défaut

Citation:
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.
__________________
Cordialement
G@dz

Question technique par MP = Vous avez des neurones. Sollicitez-les. Question mal formulée réponse inadaptée.
Si la solution est absente, le problème n'est plus.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2008, 13h36   #13 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2008
Messages: 202
Par défaut

Je t'ai mi en piece jointe mon fichier excel

Dernière modification par Chikatilo ; 19/11/2008 à 12h10
Chikatilo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/08/2008, 09h53   #14 (permalink)
Membre Expert
 
Avatar de Godzestla
 
Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 072
Par défaut

Voilà le code
Code :
 
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.
__________________
Cordialement
G@dz

Question technique par MP = Vous avez des neurones. Sollicitez-les. Question mal formulée réponse inadaptée.
Si la solution est absente, le problème n'est plus.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/08/2008, 10h26   #15 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2008
Messages: 202
Par défaut

ok j'esseirai de comprendre le plus vite
merci tt de mm
un tres grand merci
Chikatilo est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBA

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide