1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

Tableaux dans vba

Discussion dans 'Forum Excel' démarrée par akni, 8 Mars 2017.

?

Tableau

  1. Choix du sondage...

  2. Choix du sondage...

Les résultats sont uniquement visibles après avoir voté.
  1. akni

    akni XLDnaute Nouveau

    Inscrit depuis le :
    10 Novembre 2016
    Messages :
    25
    "J'aime" reçus :
    0
    Bonjour,
    J'ai un tableau des quantités vendues par articles, clients et mois, je veux faire une récap par client sans passer par TCD quand j'utilise la méthode FOR NEXT elle tarde un peu, je crois qu'avec les tableaux Ubound et Lbound le résultat sera rapide.
    ci joint mon fichier avec la macro FOR NEXT.


    Merci beaucoup pour toute aide.
     

    Pièces jointes:

  2. Chargement...

    Discussions similaires - Tableaux vba Forum Date
    vba dupliquer certaines en-tête sur plusieurs tableaux sur une même feuille Forum Excel 18 Novembre 2018
    Tableaux VBA Forum Excel 16 Août 2018
    XL 2013 Graphique tableaux VBA Forum Excel 28 Juin 2017
    Tableaux _ VBA Forum Excel 17 Mai 2017
    XL 2016 Aide VBA pour concaténation de 3 tableaux Forum Excel 25 Août 2016

  3. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14943
    "J'aime" reçus :
    925
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Bonjour.
    Je le ferais certainement comme ça.
     

    Pièces jointes:

  4. Lone-wolf

    Lone-wolf XLDnaute Barbatruc

    Inscrit depuis le :
    25 Mars 2010
    Messages :
    7110
    "J'aime" reçus :
    528
    Sexe :
    Masculin
    Travail/Loisirs :
    SE/Programmation (VBA Excel)
    Habite à:
    Ouest-Suisse
    Utilise:
    Excel 2013 (PC)
    Bonjour akni :), Dranreb :)

    Une autre façon de faire, mais il faut ajouter les autres codes clients en colonne G.
     

    Pièces jointes:

  5. chris

    chris XLDnaute Barbatruc

    Inscrit depuis le :
    21 Février 2005
    Messages :
    11335
    "J'aime" reçus :
    622
    Habite à:
    près de St Quentin en Yvelines/ Excel 2010 à 2019
    Utilise:
    Excel 2010 (PC)
    Bonjour

    J'avais divisé le temps par 2 (14 secondes au lieu de 29) avec dictionary mais les sumifs étant très consommateurs...

    Je suis totalement bluffé par le résultat obtenu en 1 seconde par Dranreb que je salue bien bas !

    Chapeau !
     
    Dranreb aime votre message.
  6. akni

    akni XLDnaute Nouveau

    Inscrit depuis le :
    10 Novembre 2016
    Messages :
    25
    "J'aime" reçus :
    0
    Merci beaucoup et principalement à Dranreb le resultat atteint en un temps record.

    A+
     
  7. akni

    akni XLDnaute Nouveau

    Inscrit depuis le :
    10 Novembre 2016
    Messages :
    25
    "J'aime" reçus :
    0
    Bonjour,
    comment puis-je ajouter des criteres pour avoir une récap par groupe d'articles, zone et ville.

    Merci pour toute aide.
     

    Pièces jointes:

  8. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14943
    "J'aime" reçus :
    925
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Bonsoir
    Du coté de l'appel de fonction Gigogne, il suffit de la terminer par la suite de numéros des colonnes contenant les critères souhaités, là où il n'y a actuellement que le 3 qui devait correspondre au code client, ce qui ne semble plus être le cas. Donc dans la nouvelle liste: 3, 6, 5 pour ceux que vous citez.
    Pour chacun d'eux, il faut prévoir une variable As SsGr et, dans le code, imbriquer des boucles For Each SGry In SGrx.Co supplémentaires avant de pouvoir utiliser la For Each Détail In SGrz.Co la plus interne. Tout cela est expliqué en détail dans le module MGigogne et aussi, un peu différemment, dans le module de classe SsGr.
     
  9. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14943
    "J'aime" reçus :
    925
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Par exemple comme ça, ça a l'air pas mal :
    Code (Visual Basic):
    Sub Recap2()
    Dim T(), L As Long, C As Long, GrpArt As SsGr, Zone As SsGr, Ville As SsGr, Client As SsGr, Détail
    ReDim T(1 To 10000, 1 To 6)
    For C = 1 To 3: T(1, C + 3) = "Mois " & C: Next C
    L = 1
    For Each GrpArt In Gigogne(Feuil1.[A2:H2].Resize([A1000000].End(xlUp).Row - 1), 3, 6, 5)
       L = L + 1: T(L, 1) = "Groupe d'articles " & GrpArt.Id
       For Each Zone In GrpArt.Co
          L = L + 1: T(L, 2) = "Zone " & Zone.Id
          For Each Ville In Zone.Co
             L = L + 1: T(L, 3) = Ville.Id
             For Each Détail In Ville.Co
                C = Détail(8) + 3: T(L, C) = T(L, C) + Détail(7)
                Next Détail, Ville, Zone, GrpArt
    Feuil1.[L1:Q10000].Value = T
    End Sub
    Mais c'est un peu plus long, forcément, 3 comparaisons au lieu d'une pour le classement…
     
  10. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Bonjour à tous,

    J'avais commencé à coder puis oublié l'ouvrage. Je publie donc tardivement. Durée d'exécution similaire à Dranreb mais adaptation aux données source pas souple du tout :( (ma macro s'adapte malgré tout au nombre de valeurs de la colonne 'mois'). La boîte à outils de Dranreb est top.
     

    Pièces jointes:

    Dernière édition: 10 Mars 2017
    Dranreb aime votre message.
  11. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Bonjour à tous,

    J'ai voulu adapter ma première macro en y ajoutant des paramètres. Contrairement à Dranreb, j'ai dû tout réécrire pour aboutir à la procédure :
    Les explications sur l'utilisation de la procédure sont dans l'onglet "Guide".
    La feuille "Data" est la feuille de départ. On y a mis deux exemples d'utilisation de la procédure.
     

    Pièces jointes:

    Dernière édition: 11 Mars 2017
  12. akni

    akni XLDnaute Nouveau

    Inscrit depuis le :
    10 Novembre 2016
    Messages :
    25
    "J'aime" reçus :
    0
    Merci beaucoup mapomme pour le fichier,
    dans mon boulot je dois envoyer à chaque responsable de zone ses ventes :
    fichier ventes zone nord ou sud avec ventes de chaque groupe d'article dans un onglet different, je n'arrive pas à automatiser cette opération si vous pouvez m'aider.

    Merci beaucoup
     

    Pièces jointes:

  13. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14943
    "J'aime" reçus :
    925
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Bonjour.
    Vous n'y arrivez pas, mais qu'avez vous essayé au juste ?
    Tout ce que je peux vous dire c'est que ce serait assez facile en partant d'un algorithme très similaire à celui du poste #8, et donc à l'aide du module de service MGigogne et du module de classe SsGr.
     
  14. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14943
    "J'aime" reçus :
    925
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Il n'y a que vous qui puissiez le faire, d'ailleurs, puisque vous seul savez ce que vous voulez mettre dans chaque feuille en cellule B4 et dans les colonnes C et D à partir de la ligne 7.
    (Le reste, ainsi que les noms des feuilles (sauf s'il en fallait plusieurs, une pour chaque mois), on peut le deviner)
     
  15. akni

    akni XLDnaute Nouveau

    Inscrit depuis le :
    10 Novembre 2016
    Messages :
    25
    "J'aime" reçus :
    0
    Bonjour Dranreb, merci beaucoup pour l'interet que vous donnez à mes demandes,
    pour cequi est de la cellule B4 elle est égale au mois du tableau par exemple si c'est 6 (juin) je devrai avoir dans la colonne C les ventes du mois de juin et dans la colonne D le cumul des ventes à fin juin.
    Pour ce qui est des modules MGigogne SsGr j'ai essayé de comprendre leur fonctionnement mais je n'y ai pas arrivé, je vous serai tres reconnaissant si vous pouviez m'expliquer le rôle de ces 2 modules .

    Merci beaucoup.
     
  16. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14943
    "J'aime" reçus :
    925
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Qu'est-ce que vous appelez le mois du tableau ? D'où est-ce qu'on le prend ?
    Le Cumul à fin n c'est le cumul de tous les mois ?
    Qu'y a-t-il dans les explications figurant dans ces modules qui n'est pas clair pour vous ?
    Me le dire permettrait de les améliorer.
    Remarque: c'est le fonctionnement que doit avoir une programmation d'application utilisant la fonction Gigogne qu'il faut comprendre. La compréhension du processus exécuté par cette fonction n'a aucune importance, il faut seulement bien comprendre la structure de la collection qu'elle renvoie. Ou plus exactement savoir quoi lui spécifier comme paramètres pour lui faire fabriquer la collection dont on a besoin.
     
    Dernière édition: 14 Mars 2017
    akni aime votre message.
  17. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Bonsoir à tous,

    Un petit bricolage pour essai.

    Attention! La zone et le groupe du 1ier onglet (nord_ groupe A) ne correspondent pas au nom de l'onglet, il faut rétablir les bonnes valeurs (Nord et A)
     

    Pièces jointes:

    Dernière édition: 15 Mars 2017
    akni aime votre message.
  18. akni

    akni XLDnaute Nouveau

    Inscrit depuis le :
    10 Novembre 2016
    Messages :
    25
    "J'aime" reçus :
    0
    Bonsoir à tous,

    M. Dranreb je veux dire par mois du tableau le mois du reporting par exemple j'envoie les ventes des clients selon les critères (zone et groupe d'article) et pour chaque code client répondant à ces deux critères j'aurais en face dans la colonne C les ventes du mois choisi dans la cellule B4 et dans la colonne D j'aurais le cumul des ventes (du mois de janvier "1" jusqu'au mois du reporting cellule B4).

    M. mapomme, j apprécie votre fichier il réponds à mes besoins pour le mois mais pas pour le cumul (je crois que je n' ai pas expliqué le cumul dans #14)

    Merci infiniment.
     

    Pièces jointes:

  19. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14943
    "J'aime" reçus :
    925
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Bonjour.
    Choisi dans la cellule B4 ??. Désolé je ne comprend pas trop la démarche vu que ces feuilles sont générées automatiquement. Bon j'avais déjà fait quelque chose alors je le joins. J'avais admis que le mois à ventiler est enregistré dans un nom du classeur et la macro propose de l'incrémenter.
    Ne supprimer jamais la feuille représentée par l'objet Worksheet FVent1, sinon la macro ne tournera plus.
    Ce sera ma dernière proposition.
    Vous avez maintenant deux exemples de procédures utilisant la fonction Gigogne. S'il vous faut d'autres rapports, écrivez vous les.
     

    Pièces jointes:

    akni aime votre message.
  20. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Bonsoir à tous,

    Un ultime essai.
     

    Pièces jointes:

    Fidmo et akni aiment cela.
  21. akni

    akni XLDnaute Nouveau

    Inscrit depuis le :
    10 Novembre 2016
    Messages :
    25
    "J'aime" reçus :
    0
    Bonjour à Tous,
    Merci beaucoup pour les fichiers, j'arrive maintenant à avoir mes rapport automatiquement et dans un temps record.

    Encore merci.
    :)
     

Partager cette page