Boucle dans une macro

Résolu/Fermé
azertyh Messages postés 121 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 23 janvier 2016 - 12 déc. 2013 à 08:27
tobas Messages postés 210 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 8 septembre 2014 - 13 déc. 2013 à 10:39
Bonjour,

j'ai besoin d'aide pour améliorer ma macro suivante :

Sub création_article()
'
' création_article Macro
' permet de créer les fichiers csv pour la création d'articles renaissance
'

'
Sheets("données").Select
Range("C9").Select
ActiveCell.FormulaR1C1 = "'01"

ChDir "C:\Users\heri101440\Documents\star\import_rencs\01"

Sheets("gl_accounts_new").Select
ActiveWorkbook.SaveAs Filename:="gl_accounts_new.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("gl_short_codes").Select
ActiveWorkbook.SaveAs Filename:="gl_short_codes.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("product_master_new").Select
ActiveWorkbook.SaveAs Filename:="product_master_new.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("product_warehouse_new").Select
ActiveWorkbook.SaveAs Filename:="product_warehouse_new.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("ic_product_status_new").Select
ActiveWorkbook.SaveAs Filename:="ic_product_status_new.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("sales_prices").Select
ActiveWorkbook.SaveAs Filename:="sales_prices.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("sales_price_lines").Select
ActiveWorkbook.SaveAs Filename:="sales_price_lines.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("str_profil_part_codes").Select
ActiveWorkbook.SaveAs Filename:="str_profil_part_codes.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("ic_product_master_units").Select
ActiveWorkbook.SaveAs Filename:="ic_product_master_units.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("part_uom_conversions").Select
ActiveWorkbook.SaveAs Filename:="part_uom_conversions.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("product_groups").Select
ActiveWorkbook.SaveAs Filename:="product_groups.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("sf_brands").Select
ActiveWorkbook.SaveAs Filename:="sf_brands.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("données").Select
Range("C9").Select
ActiveCell.FormulaR1C1 = "'04"

ChDir "C:\Users\heri101440\Documents\star\import_rencs\04"

Sheets("gl_accounts_new").Select
ActiveWorkbook.SaveAs Filename:="gl_accounts_new.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("gl_short_codes").Select
ActiveWorkbook.SaveAs Filename:="gl_short_codes.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("product_master_new").Select
ActiveWorkbook.SaveAs Filename:="product_master_new.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("product_warehouse_new").Select
ActiveWorkbook.SaveAs Filename:="product_warehouse_new.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("ic_product_status_new").Select
ActiveWorkbook.SaveAs Filename:="ic_product_status_new.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("sales_prices").Select
ActiveWorkbook.SaveAs Filename:="sales_prices.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("sales_price_lines").Select
ActiveWorkbook.SaveAs Filename:="sales_price_lines.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("str_profil_part_codes").Select
ActiveWorkbook.SaveAs Filename:="str_profil_part_codes.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("ic_product_master_units").Select
ActiveWorkbook.SaveAs Filename:="ic_product_master_units.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("part_uom_conversions").Select
ActiveWorkbook.SaveAs Filename:="part_uom_conversions.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("product_groups").Select
ActiveWorkbook.SaveAs Filename:="product_groups.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

Sheets("sf_brands").Select
ActiveWorkbook.SaveAs Filename:="sf_brands.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True

End Sub

ce code crée ces fichiers .csv dans les 2 répertoires 01 et 04 (01 et 04 étant des codes d'établissements), mais comme il y a encore 14 autres établissements, ma macro sera très longue.

comment faire pour créer une boucle, et à chaque boucle, on change la cellule C9 et le répertoire de destination?

merci d'avance.



A voir également:

4 réponses

tobas Messages postés 210 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 8 septembre 2014 24
12 déc. 2013 à 10:52
Bonjour,
tu peut mettre un fichier exemple ?
il faut voir si tes feuilles se suivent?
les codes établissement aussi
0
azertyh Messages postés 121 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 23 janvier 2016 21
12 déc. 2013 à 12:07
les feuilles se suivent comme dans ma macro, en commençant par données, ensuite gl_accounts_new, et ainsi de suite.
les codes sont 01, 04, 05, 06, 07, 08, 09, 11, 12, 13, 17, 19, 21, 23, 24, 25.
0
tobas Messages postés 210 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 8 septembre 2014 24
12 déc. 2013 à 13:38
code à tester

Sub création_article()
'
' création_article Macro
' permet de créer les fichiers csv pour la création d'articles renaissance
'

Dim CodeEta As Variant
Dim Onglet As String
CodeEta = Array("01", "04", "05", "06", "07", "08", "09", "11", "12", "13", "17", "19", "21", "23", "24", "25")
Sheets("données").Select
Range("C9").Select
For i = 0 To 16
ActiveCell.FormulaR1C1 = "'" & CodeEta(i)

ChDir "C:\Users\heri101440\Documents\star\import_rencs\" & CodeEta(i)
For j = 2 To 13

Sheets(j).Select
Onglet = ActiveWorkbook.ActiveSheet.Name & ".csv"

ActiveWorkbook.SaveAs Filename:=Onglet, FileFormat:=xlCSV, CreateBackup:=False, local:=True
Next j
Next i

End Sub

0
azertyh Messages postés 121 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 23 janvier 2016 21
12 déc. 2013 à 15:31
c'est bon après 2 petites rectifications :
- j'ai mis sheets("donnée").select et range("c9").select après for i=0 ... sinon c'est la cellule qui a le curseur qui change de 01, 04, etc.
- et 16 en 15, puisque si la numérotation commence par 0, elle se termine par 15.

merci. super.
0
tobas Messages postés 210 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 8 septembre 2014 24
13 déc. 2013 à 10:39
ravi de t'avoir aidé
0