[VBA pour Excel] problème de débutant

Emilie -  
 Emilie -
Bonjour, je m'entraîne à faire des petites macros qui m'aident pour ma vie de tous les jours.
Je ne suis pas très douée donc j'ai un peu de mal.

Ma question :
J'ai 3 feuilles dans mon classeur, sur les 2 premières, 1 tableau avec 2 colonnes et x lignes où je rentre comme données dans colonne de gauche une date, de droite un prix.
Sur ma troisième feuille, un tableau avec 12 colonnes (représentant les mois de l'année) et x lignes.

Voici ma question, je voudrais savoir comment faire pour que les données ( le prix) des 2 premiers tableaux ( 2 premières feuilles)soit regroupées dans le troisième tableau et donc trié par mois.
Exemple: sur feuille 1 j'ai 30 euros au 1 janvier 2006, feuille 2, 25 euros 25 janvier 2006, j'aimerais que ces 2 prix se retrouve dans la colonne janvier du tableau feuille 3.

je vous remercie de votre aide.

20 réponses

  1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Bonjour Emilie,

    Il y a bien des façons de faire. Je te mets ci-dessous un petit exemple.
    Je suppose que dans les 3 feuilles la première ligne est réservée aux entêtes de colonnes (Date/Prix... Jan/Fév/Mar/Avr, etc.).

    Je calcule en début de macro où en est le remplissage des colonnes mois de la feuille Feuil3, et je stocke le résultat dans un tableau (IndiceMois).
    La ligne Option Base 1 avant la macro est mise pour que les éléments du tableau soient référencés de 1 à 12 (sinon, par défaut, ce serait de 0 à 11).

    Ensuite, je balaie la colonne 1 de Feuil1, puis de Feuil2, et remplis Feuil3 en fonction du mois.

    Evidemment, il faudrait blinder davantage. Par exemple :
    - éviter de remplir 2 fois Feuil3 avec les mêmes valeurs si on relance la macro,
    - être plus "siouxe", et ne retenir le mois que si on est dans l'année en cours,
    - peut-être respecter la chronologie des deux feuilles, etc.

    Si tu as des questions, n'hésite pas...
    Option Base 1
    Sub AlimFeuil3()
    
      Dim I               As Integer
      Dim Mois            As Integer
      Dim IndiceMois(12)  As Long
      
      ' Calcul du remplissage des colonnes de la feuille "Feuil3"
      For I = 1 To 12
        IndiceMois(I) = Sheets("Feuil3").Cells(65536, I).End(xlUp).Row
      Next I
      
      ' Ajout dans "Feuil3" des prix de "Feuil1"
      For I = 2 To Sheets("Feuil1").Cells(65536, 1).End(xlUp).Row
        Mois = Month(Sheets("Feuil1").Cells(I, 1).Value)
        IndiceMois(Mois) = IndiceMois(Mois) + 1
        Sheets("Feuil3").Cells(IndiceMois(Mois), Mois).Value = Sheets("Feuil1").Cells(I, 2).Value
      Next
      
      ' Ajout dans "Feuil3" des prix de "Feuil2"
      For I = 2 To Sheets("Feuil2").Cells(65536, 1).End(xlUp).Row
        Mois = Month(Sheets("Feuil2").Cells(I, 1).Value)
        IndiceMois(Mois) = IndiceMois(Mois) + 1
        Sheets("Feuil3").Cells(IndiceMois(Mois), Mois).Value = Sheets("Feuil2").Cells(I, 2).Value
      Next
      
    End Sub
    1
  2. Emilie
     
    Merci pour ton aide Armojax, ça m'aide beaucoup
    Je vais insérer ta macro dans mon classeur, je t'enverais le résultat
    final, tu me diras ce que tu en pense et si tu as des conseils...

    Encore merci
    0
  3. emilie
     
    Je vais voir si cela marche pour moi.
    Je te tiens au courant

    Merci beaucoup pour ton aide
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Emilie
     
    Bonsoir Armojax,
    J'ai essayé de faire fonctionner ta routine mais cela ne fonctionne pas avec moi.
    Je ne sais pas si je doit changer des variables (débutante), mais nom de feuille son les mêmes que les tiens.
    Je te demande encore un petit peu d'aide, merci pour ta compréhension.

    PS: tes conseils pour blinder d'avantage son assez intéressants
    "siouxe", ça veut dire quoi !
    0
  6. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Bonjour Emilie,

    Bravo pour la mise en forme de ton classeur. Evidemment, sans l'avoir sous les yeux, c'était difficile de viser les bonnes cellules.
    Je me suis permis de changer le nom des feuilles, et Feuil3 est devenue Récap. Tu peux bien sûr changer tout ça, mais le mot "Récap" est cité dans la macro. Donc si tu changes, remplace-le.

    La macro prévoit que tu puisses avoir plein de feuilles constituées sur le même modèle que les deux autres. Tu peux donc en rajouter sans problème.

    Il est vraisemblable que dans tes feuilles tu auras davantage de lignes détail. Tu peux en rajouter vers le bas. En revanche, si tu déplaces les lignes du début, il faut adapter la macro.

    Tu peux la lancer avec la combinaison de touches <CTRL + MAJ + M>.

    J'attends ton avis...

    C'est ici :
    https://www.cjoint.com/?eAi0DkDS0C
    0
  7. Emilie
     
    C'est encore moi,
    J'ai juste un petit souci, c'est de ma faute bien sûr.
    Je t'ai donné un exemple sur 3 feuilles de mon classeur mais celui-ci va au moins en comporter une 60 ène .
    Le problème puisque je ne te l'avais pas précisé c'est qu'il faut simplement que je balaye quelques feuilles pour chaque application.
    Je voudrais juste savoir comment faire pour permettre de balayer juste quelques feuilles.
    ( J'aurais après peu être un autre petit problème car j'ai des tableau à 3 colonnes mais ça j'essayerais de le faire toute seule après ta réponse).

    Et excuse moi de te déranger.
    0
  8. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Bonsoir Emilie,

    Le petit prototype que je t'ai fait est assez sommaire : il balaie toutes les feuilles (supposées être construites toutes sur le même modèle), sauf la Récap, et alimente en bloc toute la feuille Récap.
    Maintenant, quand tu dis que tu auras une 60aine de feuilles, et que tu veux pouvoir n'en balayer que certaines, peux-tu préciser ce que ça veut dire :
    1) il y a plusieurs types de feuilles, et tu veux ne traiter que celles qui sont du type que la macro actuelle traite, mais toutes à chaque fois ?
    2) ou bien : toutes les feuilles sont de ce même type, et tu veux que la Récap ne soit calculée qu'à partir de certaines d'entre elles, choisies différemment à chaque nouvelle fois ?
    3) ça veut dire qu'on efface les valeurs dans la feuille Récap avant d'afficher un nouveau résultat ?

    Peux-tu préciser ?
    0
  9. Emilie
     
    Bonsoir Armojax,

    Je vais essayé de t'expliquer.
    Mon classeur comporte différentes types de feuilles.
    Il y en a une, la première qui agît comme un menu, plusieurs autres de sous-menus et d'autres comme je te l'ai présenté dans l'exemple.
    Dans chaque sous-menu (représantant une catégorie) j'ai différents "boutons" qui me renvoie donc une feuille comportant un tableau (comme ex, représantant une partie de la catégorie) et une feuille "recap" qui me permet de faire les stats.
    Il y aura donc plusieurs feuilles "recap", 1 par catégorie.
    Il faudrait donc balyer chaque catégorie et insérer le résultat dans sa feuille "recap".

    Je ne sais pas si c'est clair.
    Si vraiment mes explications ne sont pas compréhensible ou si tu le souhaîte je t'enverai le classeur. (Il est encore un peu brouillon mais tu comprendras peut être mieux).

    Je te remercie toujours pour ton aide.
    0
    1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
       
      OK, je comprends le principe et l'organisation générale, mais je veux bien le classeur, pour piger précisément les articulations... si ça n'est pas gênant pour toi, bien entendu.
      0
  10. Emilie
     
    Je t'envoie le lien, tout n'est pas fini, mais presque

    https://www.cjoint.com/?eAwmQ7aes2
    0
    1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
       
      Ça me dit que le lien n'est pas ou plus disponible...
      Peux-tu renvoyer ?
      0
      1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention  
         
        Salut,

        c'est vrai, mais un clic droit sur le fichier GESTION.xls et Enregistrer la cible de lien sous... ça doit faire l'affaire.

        lami20j
        0
      2. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
         
        Hello, lami20j,

        Hébé non, chez moi ça marche pas...
        0
      3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention  
         
        0
  11. Emilie
     
    Je te le renvoie, j'ai rien fait de plus j'éspère que cela va marcher

    https://www.cjoint.com/?eAwDbtx3b4
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut emilie,

      je ne sais pas ce que tu fait comme manip mais c'est la même chose.
      Je l'ai copier sur mon disque et j'ai envoyé sur un autre lien.

      lami20j

      P.S. J'espère que le lien que j'ai donné fonctionne puisque chez moi ça va.
      Désolé pour mon irruption.
      0
  12. Emilie
     
    Salut lami20j,

    J'ai juste été sur cjoint.com, puis parcourir, j'ai choisi mon classeur Gestion et j'ai crée un lien.
    Une fois le lien crée j'ai copier/ coller
    0
  13. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Bon, sincèrement désolé, mais j'ai toujours ce foutu message, aussi bien avec Firefox qu'IE, et je ne vois pas pour le moment où ça coince...
    A plus, si j'arrive à me défaire de ce truc, et bonne nuit.
    0
  14. Emilie
     
    Je te souhaîte bonne nuit,
    Si cela ne fonctionne pas pour toi, j'essayerai en t'enoyant juste une partie, toute les autres se ressemble.
    0
    1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
       
      Hello,
      Je m'absente demain pour quelques jours, et j'ai peu de temps aujourd'hui...

      Mais j'ai vu que lami20j veille, et il est souvent de bon conseil, de même que d'autres comme gbinforme, JvDo ou Lupin.A, et d'autres... qui passent souvent par ici, et peuvent t'être utiles.
      Bonne chance, Emilie.
      Ajx.
      0
  15. Emilie
     
    Salut Armojax,

    Je te souhaîte un bon week-end (prolongé) alors!
    Le lien que je tais envoyé n'a pas fonctionné chez toi?
    Tu as une explication ou pas
    0
    1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
       
      Hello Emilie,

      Suis de retour... As-tu résolu ton PB ?
      0
  16. TARIK ALIOUCHOUCHE
     
    Bonjour,
    voici mon adresse éléctronik si vous désirez en savoir plus sur les macros et je peux résoudre ton problème si vous m'envoyez votre classeur.
    0
  17. Emilie
     
    Salut Armojax,

    A vrai dire, j'ai pas eu beaucoup de temps à y consacrer cette semaine, plutôt une semaine chargé mais j'allai mis remettre.
    0
  18. Emilie
     
    J'aimerais pouvoir te transmettre mon classeur, pour que tu vois ce que j'ai fait et si cela marche.
    0
    1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
       
      Eh bien tu peux le mettre sur cjoint.com (si ça marche, parce qu'avant mon départ je n'arrivais pas à le récupérer),
      ou sinon tu me le "maile" à mon pseudo chez free.fr, comme tu veux.
      0
  19. Emilie
     
    C'est encore moi

    Je t'ai fait une compression de mon classeur, toute les feuilles n'y sont pas. Peut être que le lien passera mieux
    Dans le Menu juste Course, Total et Plaisir (juste Restaurant et autres).
    Dit moi si cela fonctionne
    https://www.cjoint.com/?fgttM2y2oa
    0
    1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
       
      Non, toujours pas... c'est comme avant, je ne le récupère pas sur cjoint...
      0