heitzmann_r
XLDnaute Nouveau
Bonjour
Je travaille sur une base de données que j’extrais chaque mois de notre système. J’utilise les données que je reprends dans un autre onglet, et que je mets en forme à ma guise.
Cette base étant importante, cette extraction (jusqu’ici manuelle) me prend un temps considérable. J’ai essayé de passer via l’enregistreur de macro, mais je fais face à quelques soucis.
Mon idée était de faire une macro (sachant que je suis débutant, je précise !) qui me permettrait d’extraire ces infos et les affichés directement dans mon nouvel onglet.
En gros mon fichier me donne le taux de remplissage, commande par commande, pour tous mes clients.
Une ligne correspond à une commande. Mon souci, vient de là. D’UN MOIS à l’autre le nombre de commande traité par client peut varié, et je peux me retrouver avec de nouveaux clients.
La macro que j’ai enregistré ne fonctionne donc pas pour d’autre mois que celui sur lequel j’ai enregistrés la macro (c’est un peu con !). J’ai repris cette base que j’ai simplifié, et vous en ai extrait ma macro.
Sub Macro17()
'
' Macro17 Macro
'
'
Range("B2").Select
Selection.Copy
Sheets("Feuil1").Select
Range("B2").Select
ActiveSheet.Paste
Sheets("A").Select
Selection.End(xlDown).Select
Range("E5:H5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("C2").Select
ActiveSheet.Paste
Sheets("A").Select
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("B3").Select
ActiveSheet.Paste
Sheets("A").Select
Selection.End(xlDown).Select
Range("E10:H10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("C3").Select
ActiveSheet.Paste
Sheets("A").Select
Range("B12").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("B4").Select
ActiveSheet.Paste
Sheets("A").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("E16:H16").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("C4").Select
ActiveSheet.Paste
Range("A49").Select
Sheets("A").Select
Range("B18").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("B5").Select
ActiveSheet.Paste
Sheets("A").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("E54:H54").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("C5").Select
ActiveSheet.Paste
End Sub
Cette macro étant horrible, je vous joins le ficher ce qui vous permettra d'y voir un peu plsu clair.
Seriez vous en mesure de me dire où le bas blesse ? et que faire pour que cette macro s'applique à ma base, et ce, quelque soit la le nombre de client, ou de commande par client ?
Si quelque chose n’est pas clair ou qu’îl vous manque des éléments n’hésitez pas à revenir vers moi , je me ferais un plaisir de compléter.
D’avance un grand merci pour votre aide.
heitz
Je travaille sur une base de données que j’extrais chaque mois de notre système. J’utilise les données que je reprends dans un autre onglet, et que je mets en forme à ma guise.
Cette base étant importante, cette extraction (jusqu’ici manuelle) me prend un temps considérable. J’ai essayé de passer via l’enregistreur de macro, mais je fais face à quelques soucis.
Mon idée était de faire une macro (sachant que je suis débutant, je précise !) qui me permettrait d’extraire ces infos et les affichés directement dans mon nouvel onglet.
En gros mon fichier me donne le taux de remplissage, commande par commande, pour tous mes clients.
Une ligne correspond à une commande. Mon souci, vient de là. D’UN MOIS à l’autre le nombre de commande traité par client peut varié, et je peux me retrouver avec de nouveaux clients.
La macro que j’ai enregistré ne fonctionne donc pas pour d’autre mois que celui sur lequel j’ai enregistrés la macro (c’est un peu con !). J’ai repris cette base que j’ai simplifié, et vous en ai extrait ma macro.
Sub Macro17()
'
' Macro17 Macro
'
'
Range("B2").Select
Selection.Copy
Sheets("Feuil1").Select
Range("B2").Select
ActiveSheet.Paste
Sheets("A").Select
Selection.End(xlDown).Select
Range("E5:H5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("C2").Select
ActiveSheet.Paste
Sheets("A").Select
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("B3").Select
ActiveSheet.Paste
Sheets("A").Select
Selection.End(xlDown).Select
Range("E10:H10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("C3").Select
ActiveSheet.Paste
Sheets("A").Select
Range("B12").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("B4").Select
ActiveSheet.Paste
Sheets("A").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("E16:H16").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("C4").Select
ActiveSheet.Paste
Range("A49").Select
Sheets("A").Select
Range("B18").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("B5").Select
ActiveSheet.Paste
Sheets("A").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("E54:H54").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("C5").Select
ActiveSheet.Paste
End Sub
Cette macro étant horrible, je vous joins le ficher ce qui vous permettra d'y voir un peu plsu clair.
Seriez vous en mesure de me dire où le bas blesse ? et que faire pour que cette macro s'applique à ma base, et ce, quelque soit la le nombre de client, ou de commande par client ?
Si quelque chose n’est pas clair ou qu’îl vous manque des éléments n’hésitez pas à revenir vers moi , je me ferais un plaisir de compléter.
D’avance un grand merci pour votre aide.
heitz