Boucle qui ne fonctionne pas correctement

  • Initiateur de la discussion Initiateur de la discussion nomitse
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
28
Affichages
2 K
Retour