Fichier récapitulatif grâce à 1macro

Résolu
Marielle -  
 60119126 -
Bonjour,

Je travail actuellement sur un bon de commande réalisé sur excel. Grâce au forum j'ai déjà résolue certains de mes problèmes, il m'en reste encore 1 (enfin j'espère...).

Alors je vous explique mon cas.

J'ai réalisé un bon de commande sur excel dont le numéro augmente de 1 avant chaque impression, une sauvegarde de ce bon de commande est ensuite faite au format pdf.

Il y a 5 personnes pouvant faire des commandes dans ma société donc j'ai créer un bon par personne. Afin que les bons au format pdf soient triés dans des dossiers en fonction de la personne qui fait la commande.

Je voudrais toutefois faire un fichier récapitulatif des bons de commandes de tous les utilisateurs, reprenant certains informations.
Est-il possible de faire un macro reprenant les informations du fichier excel "bon de commande" dans un nouveau fichier récap. Les informations doivent être reprises de façon horizontale, à chaque nouveau bon de commande l'information doit être reprise une ligne en dessous de la précédente.

J'espère que mon explication est claire?
Quelqu'un peut-il m'aider?

15 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    c'est faisable.
    il faudrait que tu mes dises dans quelles cellules sont tes données et dans quel ordre tu veux qu'elles soient enregistrées dans ton fichier récapitulatif.
    0
  2. Marielle
     
    Bonjour,

    Les infos à reprendre lieu au les info doivent
    être reprise

    "Bon de commande" "recap"

    F3 colonne A aprés A5
    F6 colonne B après B5
    .....
    ....
    ...
    J'arrive bien à reprendre les infos dans le fichier récap , à chaque nouveau bon de commande j'écrase les infos du précédent.mais pas a ajouter ce que les infos soient reprise une ligne plus bas a chaque fois.
    0
  3. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    pour les ajouter à la fin, tu rajoutes cette petite boucle
    nom =activeworkbook.name ' permet récupérer ton nom de fichier de bon de commande

    workbooks("Recap").activate
    sheets("feuil1").select
    i= 1 'commence à la première ligne
    do while cells(i,1) <> "" 'va tourner jusquà ce que la cellule à la ligne i et à la colonne 1 soit vide.
    i=i+1
    loop

    'la tu recopies tes données comme ca : attention, tes deux fichiers doivent être ouvert :
    workbooks (nom).activate
    range("F6").copy

    workbooks("recap").activate
    cells(i,1).select
    activesheet.paste

    tu dois surement l'adapter mais si tu as compris le principe, ca devrait aller.
    0
    1. Marielle
       
      Bonjour,

      y'a t-il encore quelqu'un pour m'aider?
      0
  4. Marielle
     
    Bonjour,

    Je n'ai pas pu regarder avant t'as réponse (j'été en vacances), je n'arrive pas à adapter cette macro, car je ne sais pas ou la mettre.

    Voici la macro que j'utilise actuellement :

    Sub bondecommande()
    'bondecommande Macro

    'Oblige l'utilisateur à saisir quelque chose en délai max pour continuer
    Sheets("bondecommande").Select
    If [b44] <> "" Then
    Else
    MsgBox "Compléter la cellulle B44, Délai maximum non renseigné"
    End If
    'utilisateur peu continuer si il à saisi quelque chose en délai max
    If [b44] = "" Then
    Else
    'augmente le n° du bon de commande de 1
    Dim num As Integer
    Range("f3").Select
    num = Range("f3").Value
    num = num + 1
    Range("f3").Value = num
    End If

    'If [b44] = "" Then
    'imprime le Bon de commande en 2 exemplaires
    'Else
    'ActiveWindow.SelectedSheets.PrintOut copies:=2
    'End If

    If [b44] = "" Then
    'Fait une sauvegarde du bon de commande au format excel et une sauvegarde sous au format pdf
    Else
    ActiveWorkbook.Save
    Dim chemin1
    chemin1 = "S:\Bdd_Techniques\Bon de commande\Marielle\"
    N°commande = Range("f3")
    Acheteur = Range("h3")
    Fichier = "N°Commande" & N°commande & "_" & Acheteur & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin1 & "Commande N° " & N°commande & "_" & Acheteur & ".pdf"
    End If

    End Sub
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Pouvez-vous mettre un extrait (sans données identifiables) de vos 2 classeurs dans un dossier ZIP ou RAR sur https://www.cjoint.com/ et poster le lien.
    0
    1. Marielle
       
      Bonjour,


      Voila le lien pour mon fichier : http://cjoint.com/11jn/AFEhtJmDctF.htm
      0
  7. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Merci pour le fichier.
    Je suppose que le classeur de récupération se nomme : Recap.xls
    Pouvez-vous me communiquer les cellules que vous voulez récupérer en plus des [F3] et[F6]?
    0
  8. Marielle
     
    Les informations que je souhaite reprendre se trouvent en "f3" "f6" "d42" "b44"
    0
    1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Merci Marielle,
      Patience ...
      Salutations.
      Le Pingou
      0
  9. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    J'ai placé les instructions en fin de procédure (voir note)
    Bien entendu que le classeur [Recap.xlsx] doit être ouvert avec cette version de code.
    Note : au passage j'ai modifié votre code pour [Fichier vierge]
    Votre classeur : https://www.cjoint.com/?3FEoNeb7Guw
    0
    1. Marielle
       
      Bonjour,

      Et merci,
      Aujourd'hui il m'est impossible de tester la macro, j'ai du travail urgent à finir, je fais donc sa lundi et vous tiens au courant.
      Merci pour votre aide
      0
    2. marielle
       
      Merci Le Pingou, tout fonctionne très bien!!

      Maintenant j'essai d'ajouter un mien hypertexte dans le fichier récap pour ouvrir le fichier pdf.

      On peut vraiment faire beaucoup de chose avec les macros.
      avez vous un conseil pour apprendre à faire des macros plus complexe, ou au moins savoir tout ce qui est possible de faire.
      0
  10. 60119126 Messages postés 15 Statut Membre 21
     
    Bonsoir les frères!
    j'ai le même problème, j'avoue que je suis novice en Excel
    mes fichiers sont numérotés de 1001 à l'infini car ça ne cesse de croitre, mais ils sont tous sous le même format.
    je souhaiterais récupérer certaines cellules, soit D4, E6, F9,... dans un autre fichier de synthèse sous forme de tableau où sous l'onglet A1 figurent tous les noms de fichiers dans l'ordre, sous B1 figurent la valeur de D4 des différents fichiers les unes après les autres, pareil que sous C1 la valeur de E6, ainsi de suite...
    si possible dans la dernière colonnes les dernières dates de modification. SVP aidez moi, je suis dans l'impasse
    0
    1. 60119126
       
      merci mic 13710 kan même!
      0
    2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Oui un nouveau poste serait plus adéquat, mais le principal serait de données un exemple concret avec un fichier sur https://www.cjoint.com/ et poster le lien.
      Salutations.
      Le Pingou
      0
    3. 60119126
       
      ok, merci, je t'envoie un exemple concret de suite, en fichier compressé.
      0
    4. 60119126
       
      voilà le lien http://cjoint.com/?AIql4O7naWn
      0
  11. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Merci pour le fichier.
    A première vue vous avez autant de classeurs que de clients/factures (avec une seule feuille !).
    Dans ce cas vous avez besoins d'une procédure en partie existante dans le classeur [Recap0.xls] !
    Qu'elle est exactement le problème, est la procédure qui ne fonctionne pas ou autre chose ?
    0
    1. 60119126
       
      wi, la procédure fonctionne avec les deux premiers classeurs, mais pas avec 1006_AFF.xls, ça me signale une erreur, fais le test et tu me comprendras, mais renomme recap0.xls en recap.xls
      0
  12. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Le problème est au niveau du nom de la feuille, une fois [AFF] et les 2 autres [Feuil1] et dans la procédure vous donnez la référence de la [Feuil1] donc pour la [AFF] vous recevez un message d'erreur.
    Correction : nommer toutes les feuilles avec le même noms ou dans la procédure utiliser le numéro de la feuille, qui est 1 dans votre cas (Workbooks(nf).Sheets(1).Range("C1").Value).
    0
    1. 60119126
       
      merci Le pingou pour avoir détecter cette erreur. vraiment merci, ouf!
      1)dis moi, comment faire pour ajouter le nom du fichier et la dernière date de modification.
      2) et aussi comment faire pour que le Recap soit fait automatiquement sans cliquer sur la commande.?
      0
  13. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Concernant :
    2) et aussi comment faire pour que le Recap soit fait automatiquement sans cliquer sur la commande?
    Réponse : Lancer la procédure sur ouverture du classeur en utilisant [Private Sub Workbook_Open()]
    1) dis-moi, comment faire pour ajouter le nom du fichier et la dernière date de modification.
    Réponse : ou se trouve la date de modification et ensuite ou doit apparaitre le nom du classeur et la date ?

    0
    1. 60119126
       
      merci, mais c'est un peu flou dans ma tête, stp, écris moi un exemple concret!
      encore merci pour ta disposition
      0
  14. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Vous insérer la procédure qui suit dans le [ThisWorkbook]
    Private Sub Workbook_Open()
    Call consolide
    End Sub
    Résultat à chaque ouverture du classeur [Recap0.xls] la procédure [consolide] sera exécuté.
    0
    1. 60119126
       
      merci encore le pingou, ça marche très bien!
      dis-moi, comment faire pour ajouter le nom du fichier et la dernière date de modification ? dans deux autres colonnes. Soit A et M
      0
  15. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Le fichier est le nom du classeur ... Oui / Non ?
    Où est la date de modification ?
    Pour la colonne A c'est OK. Pour la M non car occupé par Client ....!

    Salutations.
    Le Pingou
    0
    1. 60119126
       
      Oui le fichier est le nom du classeur.
      la date de modification est celle du système, quand on range les fichiers (click droit------affichage----Détails)
      on laisse tomber la colonne M, on prendra S
      0
    2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Cette commande, (click droit------affichage----Détails), n'existe pas... !
      Salutations.
      Le Pingou
      0
    3. 60119126
       
      au fait, c'est kan les fichiers sont rangés par détails sous windows xp, on voi la dernière date de modification, c'est cette info que je veux récupérer
      0
    4. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Je suppose que mon message de hier est inutile ... !
      Salutations.
      Le Pingou
      0
    5. 60119126
       
      salut mon pote!
      tes messages ne sont jamais inutiles, ça sert quand même quelque part!
      t'as vu de quelle date, je parle?
      0