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   -
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.



--
fait est meilleur que parfait.

4 réponses

  1. tobas Messages postés 210 Date d'inscription   Statut Membre Dernière intervention   24
     
    Bonjour,
    tu peut mettre un fichier exemple ?
    il faut voir si tes feuilles se suivent?
    les codes établissement aussi
    0
  2. azertyh Messages postés 131 Statut Membre 21
     
    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
  3. tobas Messages postés 210 Date d'inscription   Statut Membre Dernière intervention   24
     
    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
  4. azertyh Messages postés 131 Statut Membre 21
     
    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
    1. tobas Messages postés 210 Date d'inscription   Statut Membre Dernière intervention   24
       
      ravi de t'avoir aidé
      0