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 :

[VBA-E] Tableau de synthèse


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Par défaut [VBA-E] Tableau de synthèse
    Bonjour,

    Je souhaiterai créé un tableau de synthèse avec des données issues d'un premier tableau de données :
    Je m'explique :

    Tableau de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Date            Marque	Couleur
    10/01/2007	citroen	blanche
    10/03/2007	renault	noire
    Tableau de synthèse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	Janvier	Février	Mars
    Citroen	1		
    Renault			1
    Blanche	1		
    Noire			1
    Pas très cohérents ces tableaux, mais c'est pour l'exemple.

    Je souhaite donc, pour un mois donné, compter le nombre de citroen, de rENAULT .....

    J'ai essayé de le faire en utilisant les fonctions Excel, mais je n'y suis pas arrivé.
    Ce doit-être faisable en VB, mais malheureusement je n'y connait rien.

    Quelqu'un peut'il m'aiguiller.

    Merci

  2. #2
    Membre éclairé Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut
    Utilises un tableau croisé dynamique, rapide, précis et flexible comme tout

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 366
    Par défaut
    Effectivement un Tableau croisé dynamique semble tout indiqué ici !

    Je pense toutefois qu'il te faudra créer une variable date qui soit homogène pour pouvoir agréger correctement les valeurs. Avec les fonctions mois(), jour() ... tu devrais t'en sortir !

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Citation Envoyé par doringen
    Utilises un tableau croisé dynamique, rapide, précis et flexible comme tout

    Je confirme
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Par défaut
    Merci à tous les deux.

    Je n'ai jamais utlisé de tableau croisé dynamique.
    Je ne vois pas comment créer une colonne pour chaque mois de l'année.
    Après je pense qu'il faut que je jongle entre zone de données quand je veux le nombre total d'une colonne, et zone de ligne lorsque je veux les totaux détaillés des éléments de la colonne.

    Si vous pouvez m'indiquer comment créer ces colonnes pour chaque mois de l'année.

    Merci

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Une tite idée de la chose avec la pièce jointe : sur la feuil1, tu as les données, sur la feuil4 tu as le TCD a toi de faire joujou avec et comprendre comment il marche
    Fichiers attachés Fichiers attachés
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  7. #7
    Membre éclairé Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut
    le problème, c´est que comme semble être foutue ta source de données, il ne te créera jamais une colonne par mois mais une colonne par date dans ta source.
    Pour ce que tu cherches, il faut que dans ta source tu ajoutes une colonne où tu extrais le mois de chaque date ( formule: =MOIS(CelluleOuEstLaDate) ) et que tu joues sur cette colonne dans le tableau croisé dynamique.
    Pour utiliser les tableaux croisés dynamiques, il existe sûrement des tutoriaux bien faits sur le Ouèbe , bien que je trouve que l´utilisation d´un TCD soit relativement intuitive.

  8. #8
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 366
    Par défaut
    Si tu utilises le tableau croisé dynamique tu n'auras pas besoin de créer une colonne pour chaque mois. Il te suffit juste de créer une colonne à côté de ta colonne date qui contienne non plus la date mais seulement le mois (et éventuellement l'année si tu as des données qui se chevauchent sur plusieurs)

    Ex :

    Tu avais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Date            Marque	Couleur
    10/01/2007	citroen	blanche
    10/03/2007	renault	noire

    Il faudrait obtenir un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Date            Mois          Marque	Couleur
    10/01/2007	Janvier2007          citroen	blanche
    10/03/2007	Mars2007          renault	noire
    Ensuite tu fais un tableau croisé dynamique à partir de ces données, comme ça tu pourras croiser tes données en fonction du mois et non pas d'une date particulière.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Par défaut
    Merci a tous les deux, au moins vous êtes d'accord sur la réponse.
    Pas de pb pour l'utilisation d'un TCD, mais c'est plus sur les petites astuces de programmation que je coince.

    Une dernière petite question : Est-il possible dans un TCD, de rajouter indépendant de la plage d'origine.

    Encore merci

  10. #10
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 366
    Par défaut
    Montre nous ce que tu as essayé qu'on puisse essayer de te guider

    Sinon un truc que j'ai pas compris, tu veux programmer ça pour un but précis ou c'est pour une utilisation occasionnelle ?

    Si ça s'inscrit dans un but d'automatisation qui au final te fournit le tableau de synthèse, oui effectivement tu peux coder ton TDC et t'arranger pour que la plage choisie soit indépendante de tes données.

    Faut juste que tu saches où trouver tes données, tu recherches la première donnée puis tu fais une extension de la sélection par des :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Et après le TCD et le tour est joué.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Par défaut
    Je veux programmer ça dans un but bien précis, et pour utilisation quotidienne par des utilisateurs qui ne maitrise pas excel. Donc tout doit être automatisé.

    Je joint un exemple du tableau de synthèse dont j'ai besoin avec la provenance des données.
    J'espère que cela sera plus clair.

    Existe t'il une fonction qui me permette d'affecter pour chaque mois en chiffre, l'équivalent en lettre (SI = 1 alors Janvier) Malheureusement, on ne peut imbriquer que 7 SI à la suite.

    Merci
    Fichiers attachés Fichiers attachés

  12. #12
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par encoupe
    Existe t'il une fonction qui me permette d'affecter pour chaque mois en chiffre, l'équivalent en lettre (SI = 1 alors Janvier)
    Oui, ça s'appelle un tableau (Array).
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  13. #13
    Membre éclairé Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Par défaut
    dans la série des "JeVaisYAllerCommeUnVeau", j´ai cru comprendre que tu voulais une fonction à pour voir utiliser dans les cellules de ton tableau, alors voilà :
    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
    Public Function datez(source) As String
    Dim erreur As Boolean
    erreur = False
    Select Case source
    Case Is = "janvier"
    datez = "1"
    erreur = True
    Case Is = "fevrier"
    datez = "2"
    erreur = True
    Case Is = "mars"
    datez = "3"
    erreur = True
    Case Is = "avril"
    datez = "4"
    erreur = True
    Case Is = "mai"
    datez = "5"
    erreur = True
    Case Is = "juin"
    datez = "6"
    erreur = True
    Case Is = "juillet"
    datez = "7"
    erreur = True
    Case Is = "aout"
    datez = "8"
    erreur = True
    Case Is = "septembre"
    datez = "9"
    erreur = True
    Case Is = "octobre"
    datez = "10"
    erreur = True
    Case Is = "novembre"
    datez = "11"
    erreur = True
    Case Is = "decembre"
    datez = "12"
    erreur = True
    End Select
    If erreur = False Then datez = "#ERREUR"
    End Function
    Et là, c´est le moment que je redoute où vous m´annoncez que j´aurais pu coder cette fonction en seulement 5 lignes...

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Par défaut
    Merci Doringen, pour la fonction, elle marche parfaitement. Dans mon cas j'ai juste inversé le case et la source.

  15. #15
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Avec un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function Mois(i As Integer) As String
      Dim aMois
      aMois = Array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", _
                    "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
      Mois = aMois(i)
    End Function
    Pour l'utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
      MsgBox Mois(3)
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. [VBA Excel] Tableau avec données du userform et de formules
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2006, 13h29
  2. [VBA-E] tableau dynamique
    Par bricereyem dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/06/2006, 17h57
  3. [VBA - ACCESS] tableau en tant que prametre optionel
    Par jarod_bx dans le forum Access
    Réponses: 1
    Dernier message: 30/04/2006, 11h31
  4. [VBA-E] Tableau de données <=> Fichier Texte
    Par P50 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2005, 16h02
  5. [VBA-E] Tableau croisé dynammique et Init
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/11/2005, 12h34

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