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 :

Exportation tableau + Graphique


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut Exportation tableau + Graphique
    bonjours a tous ,

    J'ai un compteur qui me donne les resultats des differents status dans une colonne.Exemple: .

    Je voudrais avec une macro exporter ce tableau sur (dans) une nouvelle page et que dans cette nouvelle page il me creer un graphique ou je pourrais voir l'évolution des résultats . Il aurait environ un nouveau tableau (le meme avec d'autres chiffres) tous les jours.

    J'attend vos commentaires merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Bonjour,

    Vous devriez enregistrer une macro pendant que vous faites "à la main" ce que vous voulez. Puis ensuite vous adaptez votre code.

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut
    Merci Access Newbie ,c'est aussi la solution que l'on ma conseillé et sa marche bien.

    J'ai maintenant un projet un peu plus ambicieux:
    Alors petite illustration :
    http://imgur.com/FpYMK.jpg

    Alors le tableau violet est dans un fichier différent de celui du tableau bleu+ le graphique.
    Alors pour faire simple le tableau bleu devrais prendre pour chaques nouvelles dates , les valeurs de la colonne B du tableau violet et les mettres a la suite du tableau (bleu, a chaques fois dans une nouvelle colonne).

    -Puis le graphique dois a chaques fois prendre la nouvelle colonne en compte pour que l'on puisse par exemple bien voir l'évolution sur 1 semaine.


    je vous donne le code que j'ai fais "a la main "

    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
    Sub sebtest()
    '
    ' sebtest Makro
    ' Makro am 16.06.2009 von Sebastian Lett aufgezeichnet
    '
     
    '
        Sheets("Data").Select
        Range("AC42:AD47").Select
        Selection.Copy
        Sheets("Tabelle3").Select
        Range("A16").Select
        ActiveSheet.Paste
    End Sub
     
    Sub sebtest_graphique()
    '
    ' sebtest_graphique Makro
    ' Makro am 16.06.2009 von Sebastian Lett aufgezeichnet
    '
     
    '
        Range("D14:K21").Select
        Charts.Add
        ActiveChart.ChartType = xlLineMarkersStacked
        ActiveChart.SetSourceData Source:=Sheets("Tabelle3").Range("D14:K21"), _
            PlotBy:=xlRows
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle3"
        With ActiveChart
            .HasTitle = False
            .Axes(xlCategory, xlPrimary).HasTitle = False
            .Axes(xlValue, xlPrimary).HasTitle = False
        End With
    End Sub

    ps: Le fichier d'origine du tableau violet comporte la date dans le nom du fichier on pourrait peut etre dire que dès que le nom du fichier change et que l'on lance la macro il doit y avoir une nouvelle colonne dans le tableau bleu.

    J'ai un peu de mal a expliqué ce que je veux j´espère vous arriverez a comprendre et a m'aider . bonne appetit

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Salut,

    En effet, l'enregistreur de macros est ton ami : Outils/Macros/Nouvelle Macro.

    Tu fais ce que tu veux, tu arrêtes ton enregistrement et tu as ta macro. Une fois cela fait, reviens nous voir si tu n'arrives pas à adapter (si tu as besoin d'adapter )

    Bonne chance.

    EDIT : pourquoi je refresh jamais ? Ô pourquoi ?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Bonjour,

    Si je comprends bien, tu as un fichier par mois (dans l'exemple que tu donnes, ca fait 7 fichiers différents). Y a-t'il une règle de nommage de ces fichiers ? (un petit exemple de nom de fichier serait le bienvenu )
    Sur quel "range" se situent les données ? Est-ce toujours le même ?

    Ensuite tu veux que les données (ce qui est en dessous de la date) de chaque fichier viennent se coller automatiquement dans ton fichier ou il y a le tableau.

    C'est bien ca ?

    Enfin, concernant les intitulés, ils sont toujours rangés dans le même ordre ? (ready for SWC,not ready for SWC ...)

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut
    Bonjour Access Newbie,

    Alors oui dans mon exemple sa serait comme si le tableau avait déja eu 7 fichiers différents , comme si 7 jours étaient déja passés (pas 7 mois ).

    Y a-t'il une règle de nommage de ces fichiers
    oui (pour le fichier d'origine des données) exemple :
    PPP-Released_ZX_090513_MY22.xls
    (090513 correspond a la date de création)


    Sur quel "range" se situent les données ? Est-ce toujours le même ?
    oui range AB

    Ensuite tu veux que les données (ce qui est en dessous de la date) de chaque fichier viennent se coller automatiquement dans ton fichier ou il y a le tableau.
    Oui je veux les données en dessous de la date mais aussi la date comme dans l'exemple et qu'il se colle dans le fichier ou il y a le tableau et le graphique et que le graphique le prenne directement en compte .

    Enfin, concernant les intitulés, ils sont toujours rangés dans le même ordre ? (ready for SWC,not ready for SWC ...)
    oui toujours

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Bonjour,

    Désolé pour le temps que j'ai mis a répondre, j'ai pas mal de boulot en ce moment

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Function SearchFile(strDir As String, Optional strExt = "*.*") As String
    'Retourne le nom des fichiers presents dans un dossier passe en parametre(strDir),
    'en fonction de l'extension recherchée (strExt)
    'La recherche ne se fait pas dans les sous répertoires
    'Ex : filesToSearch = SearchFile("C:\","*.xls") -> on recherche toous les fichiers excel presents dans c:
    'retourne un resultat de la forme fichier1;fichier2;....
     
    On Error GoTo ErrSearchFile
     
    Dim i As Integer
    Dim file As String
     
        With Application.FileSearch
            .NewSearch
            .LookIn = strDir
            .FileName = strExt
     
                If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
                    For i = 1 To .FoundFiles.Count
                        file = FileName(.FoundFiles(i))
                        SearchFile = SearchFile & file & ";"
                    Next i
                    SearchFile = Left(SearchFile, Len(SearchFile) - 1)
                End If
     
        End With
     
        Exit Function
     
    ErrSearchFile:
        SearchFile = ""
        MsgBox Err.Number & vbCrLf & vbCrLf & Err.Description, vbCritical
     
    End Function
     
    Function FileName(strFullPath As String) As String
    'retourne un nom de fichier en fonction du chemin complet
     
    Dim result As Variant
    Dim i As Integer
     
    result = Split(strFullPath, "\")
    FileName = result(UBound(result))
     
    End Function
     
    Sub CopyDatas(strCurWorkBookName As String, strWorkBookPath As String)
    'copie les données d'un classeur vers le classeur courant
     
    Dim rRangeToCopy As Range
    Dim iNumColonne As Integer
     
    'copie des données
    Workbooks.Open (strWorkBookPath)
    rRangeToCopy = Range("B1:B6")
    Workbooks.Close
     
    Windows(strCurWorkBookName).Activate
    iNumColonne = ActiveWorkbook.Sheets(1).Cells(1, 255).End(xlToRight).Column
    ActiveWorkbook.Sheets(1).Cells(1, iNumColonne) = rRangeToCopy
     
    End Sub
     
    Sub main()
     
    Dim strCurWorkBookName As String
    Dim vAllFiles As Variant
    Dim strDir As String
    Dim i As Integer
     
    'recupere le nom du workbook courant
    strCurWorkBookName = ActiveWorkbook.Name
    strDir = "Ton repertoire ou se situent les fichiers"
     
    'recupere l'ensemble des fichiers
    vAllFiles = SearchFile(strDir, "*.xls")
     
    For i = LBound(vAllFiles) To UBound(vAllFiles)
        Call CopyDatas(strCurWorkBookName, vAllFiles(i))
    Next i
     
    End Sub
    J'ai pondu ça vite fait, il est possible qu'il y ait des erreurs. Si tu pouvais envoyer 2 ou 3 fichiers exemple ca serait sympa (dénature les données).

    PS : il ne faut pas que le fichier excel dans lequel est le programme se situe dans le meme repertoire que les fichiers a rechercher.

    EDIT : j'ai corrigé quelques petits trucs, cf fichier joint il reste encore le probleme du graphique, je te laisse y reflechir tout seul (n'oublie pas que l enregistreur de macro est ton ami )
    Fichiers attachés Fichiers attachés

  8. #8
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut
    Bonjour,

    Merci Access Newbie je suis entrain d'adapter la macro a mon cas. A première vue sa a l'air de bien fonctionner .
    Je te tien au courant merci encore @+

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    de rien

  10. #10
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut
    bonjour

    Tout va toujours très bien du coté du transfère des données et du graphique , j´ai maintenant une question qui n'a rien voir avec mes questions précedentes^^.

    J'ai créer un bouton "razz" qui supprime toute mes données , je voulais savoir s'il était possible de créer un genre de message box avec 2 possiblitées?


    Exemple : Je clic sur mon bouton et j'obtient un message du genre:
    "êtes-vous sur de vouloir tout supprimer (Oui Non) ".

  11. #11
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut
    J'ai trouvé la solution tout seul finalement dans le tuto sur la message box (http://fring.developpez.com/vba/excel/msgbox/).

    Bonsoir,

    Pour l'instant pour récupérer la date lorsque je transférais mes données d'un fichier excel a un autres j'utilisais la fonction "=TODAY" et sa marchait plutôt bien.

    Le problème c'est que maintenant je dois récupéré des rapport qui peuvent déja avoir été créer depuis plusieurs semaines .
    Existe t'il une fonction qui permet de retourner la date de création du fichier ?
    La date est aussi dans le nom du fichier exemple spec_Readness_26_06_2009), je sais pas si sa peut aider?.

    Si quelqu'un a une idée ou un conseil je suis preneur .

    J'ai un peu avancé j'ai récupéré le nom du fichier avec :

    Le nom du fichier étant spec_Readness_26_06_2009.xls , comment puis-je récupérer uniquement la date ?

  12. #12
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Cela dépendra du format de tes nom. On ne peux pas vraiment savoir si ce sera toujours le même.
    Regarde ce tuto si le coed qui suis ne convient pas
    http://silkyroad.developpez.com/VBA/...nesCaracteres/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim texte As String
    Dim tableau() As String
    Dim datefichier As Date
    'texte = "spec_Readness_26_06_2009.xls"
    texte=ActiveWorkbook.Name
    While Not IsNumeric(Left(texte, 1))
    texte = Right(texte, Len(texte) - 1)
    Wend
    'on enlève le .xls
    texte = Left(texte, InStr(texte, ".") - 1)
    tableau = Split(texte, "_")
    datefichier = DateSerial(tableau(2), tableau(1), tableau(0))
    MsgBox datefichier
    Il te stock la date dans la variable datefichier
    Les conditions pour que cela fonctionne
    Il ne faut pas avaoir de chiffre autre que la date
    Il faut que la date soit bien séparé par des _

    Ps: je n'ai pas commenté le code mais exécute le en mode pas a pas et regarde la variable texte a chaque opération pour bien comprendre
    Le tuto que je t'ai filé t'aidera beaucoup également, ainsi que l'aide excel. Enfin tout ca pour dire que maintenant tu devrais avoir toutes infos pour que ca fonctionne

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Bonjour,

    sinon un petit coup d'oeil du coté de la fonction "mid" devrait t'aider.

    bonne journée.

  14. #14
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut
    Re Krovax j'ai un soucis avec ta macro mais sa fonctionne presque^^

    alors voila 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
     
    Sub test()
     
     
    Dim texte As String
    Dim tableau() As String
    Dim datefichier As Date
    'texte = "spec_Readness_26_06_2009.xls"
    texte = ActiveWorkbook.Name
    While Not IsNumeric(Left(texte, 1))
    texte = Right(texte, Len(texte) - 1)
    Wend
    'on enlève le .xls
    texte = Left(texte, InStr(texte, ".") - 1)
    Cells(1, 1) = texte
     
     
     
     
     
    'tableau = Split(texte, "_")
    'datefichier = DateSerial(tableau(2), tableau(1), tableau(0))
    'MsgBox datefichier
     
    End Sub


    J'ai un soucis(message d'erreur en Allemand^^^) au niveau du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'datefichier = DateSerial(tableau(2), tableau(1), tableau(0))
    .


    Sinon je voulais aussi savoir comment fonctionne ta boucle while (un bref résumé) parce que j'ai l'aide qui est en allemand et c'est un peu dur a comprendre.
    En mode pas a pas j'ai vue que Len prend la valeur 43 (a quoi correspond cette valeur stp?).
    En tout cas merci pour moi ce code est deja presque suffisant @+

  15. #15
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    while = tant que
    il boucle tant que le teste est vrai

    En algo il n'y a que deux boucle, la boucle tant que et la boucle pour
    (la boucle jusqu'a est un tant barre)
    Pour plus d'info, je te conseil de lire attentivement ces cours algo.

    Avant de coder il vaut mieu avoir de bonne notion d'algorithmique ca évite de bloquer sur des truc "idiot". Comme comment faire une fonction qui renvoie deux valeurs (on a eu l'exemple ajourd'hui), la question n'est pas idiote je me la suis déjà posé . Mais connaitre l'algo permet de savoir que c'est impossible,... sans ruser

    Pour len elle est décrite dans le lien que je t'ai filé, essaye de le lire, je donne le code mais ca ne sert a rien si tu ne le comprend pas

  16. #16
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut
    Bonjour,

    les bases de la programmation je les connais j'ai appris le C cette année , mais la dans le cadre de mon stage je viens de commencer la VBA , et mon plus gros probleme (pour le moment)c'est au niveau des fonctions .C'est bien je vais en apprendre quelques unes grâce a ton site .

    Sinon tu ne ma pas donné d'information sur l'erreur qu'il y a dans le code , tu vois d'ou sa pourrai provenir?

  17. #17
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Pour les boucle regarde ceci
    http://silkyroad.developpez.com/vba/boucles/

    Pour ton erreur (je suppose que ca arrive quand la ligne n'est pas en commentaire
    Avance en mode pas a pas (avantage du VBA) et regarde la valeur des variable au fur et a mesure. Voir si tableau 0 1 et 2 sont bien dans l'ordre le jour, le moi et l'année
    (dans affichage affiche les variable local, F8 pour avancer d'un pas)

  18. #18
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut
    Voila j'ai un peu modifié ce que tu m'avais donné au départ , et je l'est placé correctement dans une autre macro .
    Voila la partie ou tu ma aidé :

    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
    While Not IsNumeric(Left(texte, 1))
    texte = Right(texte, Len(texte) - 1)
    Wend
    'on enlève le .xls
    texte = Left(texte, InStr(texte, ".") - 1)
     
     
    jour = Left(texte, 2)
    mois = Mid(texte, 3, 2)
    annee = Mid(texte, 5, 4)
     
    Cells(10, "AD") = jour & "/" & mois & "/" & annee
     
    Range("AD10").Select
        Selection.NumberFormat = "mm/dd/yyyy;@"

    Grand merci sa marche très bien

    Bon maintenant il me reste encore cette affaire de Date Fr/Us je sens que je vais moin m'amuser la .

Discussions similaires

  1. Export Word: centrer image/tableau/graphique
    Par hedidev1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/02/2015, 14h18
  2. Exporter tableau/graphique excel en image Word avec legende auto
    Par hedidev1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/02/2015, 13h29
  3. Réponses: 1
    Dernier message: 23/01/2009, 09h59
  4. exportation tableau acces dans excel
    Par gronul dans le forum Access
    Réponses: 3
    Dernier message: 12/06/2006, 12h49
  5. Exportation des graphiques d'un modèle (Power AMC)
    Par boubaouz dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 16/04/2003, 15h59

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