XL 2016 vba créer un classeur pour chaque feuille d'un classeur

MONTREAL2020

XLDnaute Junior
Bonjour,

Je sollicite votre aide pour:
À partir d'un classeur comportant plusieurs feuilles:
1- Créer un classeur chaque feuille du classeur
2- Définir les feuilles qui vont être transformer en classeur
3- Leur donner un nom figurant sur une cellule de la feuille elle même + un suffixe commun à toutes les feuille
4- Les enregistrés dans le même dossier du classeur initial

Merci beaucoup votre support
 
Solution
Re

@MONTREAL2020
Je te laisse étudier ce petit test
1) Sur un classeur vierge, avec une seule feuille
Lance la macro nommée cree_Exemple
Code:
Sub cree_Exemple()
Sheets(1).Name = "DATA BASE PRODUITS"
Sheets.Add(after:=Sheets(1)).Name = "Liste Acheteurs"
Sheets.Add(after:=Sheets(2)).Name = "Pays"
For i = 4 To 8
Sheets.Add(after:=Sheets(Sheets.Count)).Name = "STAPLE_" & Format(i, "00")
Next
End Sub
Puis lance cette macro
Code:
Sub test_boucle()
Dim exclure, F As Worksheet
exclure = Array("DATA BASE PRODUITS", "Liste Acheteurs", "Pays")
For Each F In Worksheets
 Matched = Application.Match(F.Name, exclure, 0)
If IsError(Matched) Then
MsgBox F.Name & " <- feuille à supprimer!", vbCritical, "Test Suppression"
End If
Next
End...

Staple1600

XLDnaute Barbatruc
Re

Et pourtant...
Nous étions en 2013

NB: Cet exemple est pour le point 1)
 

MONTREAL2020

XLDnaute Junior
Re

Et pourtant...
Nous étions en 2013

NB: Cet exemple est pour le point 1)
Super je vais creusé la dessus et continuer mes recherches sur le forum
 

MONTREAL2020

XLDnaute Junior
En PJ le classeur
il s'agit de mettre en classeur les 3 dernier onglets et+ car il s'agit de plusieurs onglet
- Nommer les classeurs en fonction de leur onglet+ suffixe (car je souhaiterait aller consolider (power pivot) une fois rempli par leur destinataires
- Les enregistrés dans le dossier ou se trouve le classeur initial qui se trouve dans un chemin de partage interne

merci pour ton aide JM
 

MONTREAL2020

XLDnaute Junior
Feuilles à exporter:
- Sam, Amanda, mais aussi d'autres acheteurs selon le besoin hormis DATA BASE PRODUITS et Liste Acheteurs

- Cellule en B1, elle affiche le nom du l'acheteur (TCD) c'est le nom que doit porter le classeur
- Le suffixe : Price_List+date (année)

encore une fois merci
 

Staple1600

XLDnaute Barbatruc
Re

@MONTREAL2020
Test OK sur mon PC
A tester sur le tien
VB:
Sub test_OK()
Dim strPath$, ws As Worksheet
strPath = ThisWorkbook.Path & "\"
For Each ws In ThisWorkbook.Worksheets
    If InStr(1, "DATA BASE PRODUITS Liste Acheteurs", ws.Name) = 0 Then
       NOM_FIC = ws.Name & "_Price_List_" & Format(Date, "ddmmyy") & ".xlsx"
       ws.Copy
       ActiveWorkbook.SaveAs strPath & NOM_FIC, 51
       ActiveWorkbook.Close True
    End If
Next ws
End Sub
 

MONTREAL2020

XLDnaute Junior
Re

@MONTREAL2020
Test OK sur mon PC
A tester sur le tien
VB:
Sub test_OK()
Dim strPath$, ws As Worksheet
strPath = ThisWorkbook.Path & "\"
For Each ws In ThisWorkbook.Worksheets
    If InStr(1, "DATA BASE PRODUITS Liste Acheteurs", ws.Name) = 0 Then
       NOM_FIC = ws.Name & "_Price_List_" & Format(Date, "ddmmyy") & ".xlsx"
       ws.Copy
       ActiveWorkbook.SaveAs strPath & NOM_FIC, 51
       ActiveWorkbook.Close True
    End If
Next ws
End Sub
Bonjour JM,
J'ai testé la macro et ça bogue

Regarde la pièce jointe 1153375
1666783702746.png
 

Pièces jointes

  • 1666783697521.png
    1666783697521.png
    6.4 KB · Affichages: 15

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 383
Membres
102 878
dernier inscrit
asmaa