Boucle qui ne fonctionne pas correctement

nomitse

XLDnaute Nouveau
Bonjour,

J'ai créé la macro suivante qui a pour objectif de créer un fichier selon une liste de valeur d'une liste. la macro fonctionne bien pour le premier onglet mais plante sur le sheet(Nom).select alors que l'onglet faisant référence à J5 existe bien.

Savez vous pourquoi ca ne fonctionne pas?

Merci d'avance,

Simon

Sub Onglet()

Dim Compteur As Integer, Nom As String

Sheets("produits").Visible = True

Sheets("produits").Select

For Each c In Range("J4:J100")
Nom = c.Value
If Nom <> "" Then

Sheets(Nom).Select
Sheets(Nom).Copy
ActiveWorkbook.SaveAs Filename:= _
"C:\Budget\ICP B2019 " & Nom & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False


End If

Next c

End Sub
 

pierrejean

XLDnaute Barbatruc
Bonjour nomitse

A tester:
Code:
Sub Onglet()
Dim Compteur As Integer, Nom As String
Set Wbk = ThisWorkbook
Sheets("produits").Visible = True
Sheets("produits").Select
For Each c In Range("J4:J100")
Nom = c.Value
If Nom <> "" Then
Wbk.Sheets(Nom).Select
Sheets(Nom).CopyActiveWorkbook.SaveAs Filename:= _
"C:\Budget\ICP B2019 " & Nom & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End If
Next c
End Sub
 

pierrejean

XLDnaute Barbatruc
Re
Alors tester:
Code:
Sub Onglet()
Dim Compteur As Integer, Nom As String
Set Wbk = ThisWorkbook
Sheets("produits").Visible = True
Sheets("produits").Select
For Each c In Range("J4:J100")
Nom = c.Value
If Nom <> "" Then
Wbk.select
Sheets(Nom).Select
Sheets(Nom).CopyActiveWorkbook.SaveAs Filename:= _
"C:\Budget\ICP B2019 " & Nom & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End If
Next c
End Sub
 

pierrejean

XLDnaute Barbatruc
Re

Ceci devrait être meilleur

Code:
Sub Onglet()
'
    Dim Compteur As Integer, Nom As String
    Set Wk = ThisWorkbook
    Set Sh = ThisWorkbook.Sheets("Conversion nouveaux produits")
'    Sheets("Conversion nouveaux produits").Visible = True
   
'    Sheets("Conversion nouveaux produits").Select
   
    For Each c In Sh.Range("J4:J7")
        Nom = c.Value
        If Nom <> "" Then
   
'    Sheets(Nom).Select
    Wk.Sheets(Nom).Copy
    ActiveWorkbook.SaveAs Filename:= _
        "H:\L Int\Nutrition Sante\3-Budgets par métier\Budget 2019\8 - Ventes HORIZON\ICP B2019 " & Nom & ".xlsx" _
        , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
   
   
    End If
   
    Next c
   
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 716
Messages
2 081 848
Membres
101 826
dernier inscrit
dododu89