Boucle dans une macro
Résolu
azertyh
Messages postés
131
Statut
Membre
-
tobas Messages postés 210 Date d'inscription Statut Membre Dernière intervention -
tobas Messages postés 210 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai besoin d'aide pour améliorer ma macro suivante :
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.
--
fait est meilleur que parfait.
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.
--
fait est meilleur que parfait.
4 réponses
-
Bonjour,
tu peut mettre un fichier exemple ?
il faut voir si tes feuilles se suivent?
les codes établissement aussi -
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.
-
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 -
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.