Fichier récapitulatif grâce à 1macro
Résolu
Marielle
-
60119126 -
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?
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?
A voir également:
- Fichier récapitulatif grâce à 1macro
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
15 réponses
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.
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.
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.
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.
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.
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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
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]?
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]?
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
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
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.
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.
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
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
Votre demande n'a rien à faire ici, ni d'ailleurs sur cet autre fil de discussion https://forums.commentcamarche.net/forum/affich-8932162-recapitulatif-d-un-fichier
Créez votre propre sujet pour ne pas polluer les discussions en cours
Créez votre propre sujet pour ne pas polluer les discussions en cours
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
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
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 ?
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 ?
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).
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).
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 ?
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 ?
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é.
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é.
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
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