Transformer un fichier de 78 Onglets en 26 fichiers de 3 onglets

anthooooony

XLDnaute Occasionnel
Bonjour,

J'ai un fichier avec 78 onglets que j'aimerais dispatcher vers des feuilles choisie. J'ai un code, qui est en bas de page qui créé autant de fichier que d'onglet. Lorsque j'ai beaucoup d'onglet j'ai beaucoup de fichier dans beaucoup de dossier, pour tous les regrouper c'est assez long.

Est-il possible de lui dire comme dans l'exemple ci dessous.Que l'agence 1 s'enregistre dans un fichier spécifique? en créant les relations au préalable dans les lignes de code.

Merci d'avance à tous !

Bonne journée dans ce froid de Sibérie !

Onglet généré Fichier vers lequel il pourrait pointer
Agence1a region nord
Agence1b region nord
Agence1c region nord

Agence2a region est
Agence2b region est
Agence2c region est

Agence3a region ouest
Agence3b region ouest
Agence3c region ouest

Agence4a region sud
Agence4b region sud
Agence4c region sud

Agence5a region idft
Agence5b region idft
Agence5c region idft


etc etc



Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 16/12/2011 par fl170417
'
'
Dim vnom, vdir As String
For Each Sheet In Sheets
Sheet.Select
vnom = ActiveSheet.Name
Cells.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ChDir "N:\"
'choix du repertoire en fonction du nom agence
Select Case vnom
Case "Agence1": vdir = "Est\"
Vmail = "ro@co.com"
Case "Agence2": vdir = "Nord\"
Vmail = "ro@co.com"
Case "Agence3": vdir = "Nord\"
Vmail = "anthony@co.com"
Case "Agence4": vdir = "Est\"
Vmail = "anthony@co.com"
Case "Agence5": vdir = "Est\"
Vmail = "anthony@co.com"
End Select
ActiveWorkbook.SaveAs Filename:="N:\" & vdir & vnom & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveSheet.Name = vnom

'envoyer ton mail avec le fichier en attaché et vmail (déclarée en "public vmail as string" )comme adresse mail
'Call EnvoiMail 'ta macro d'envoi de mail

ActiveWindow.Close savechanges = True
Next
End Sub
 

Pièces jointes

  • exceldown.xlsm
    23.2 KB · Affichages: 53
  • exceldown.xlsm
    23.2 KB · Affichages: 57
  • exceldown.xlsm
    23.2 KB · Affichages: 49

anthooooony

XLDnaute Occasionnel
Re : Transformer un fichier de 78 Onglets en 26 fichiers de 3 onglets

please help!
peut etre me suis je mal exprimé mal expliqué...
Le titre du topic ne fait pas vraiment rever c est sur !
au lieu de transformer ce serait plutot dispatcher ou repartir..

T"ransformer un fichier de 78 Onglets en 26 fichiers de 3 onglets"
 

JNP

XLDnaute Barbatruc
Re : Transformer un fichier de 78 Onglets en 26 fichiers de 3 onglets

Bonjour :),
please help!
peut etre me suis je mal exprimé mal expliqué...
Le titre du topic ne fait pas vraiment rever c est sur !
au lieu de transformer ce serait plutot dispatcher ou repartir..

T"ransformer un fichier de 78 Onglets en 26 fichiers de 3 onglets"
Pas la peine d'être pressé, ça fait même pas 2 h que tu as posté :mad:...
Le code fourni ne correspond pas à ce que tu écrit, vu que tu ne supprimes même pas les lettres a, b, c avant de comparer pour les agences :(...
La feuille Go n'est pas écartée :confused:...
Bref, ce n'est pas adapter du code, mais le revoir complètement :eek:...
Si tes réglages sont de 3 feuilles pour tout nouveau classeur, il te suffit de boucler I de 1 à 5, de copier Agence1a sur Feuil1, Agence1b sur Feuil2 et Agence1c sur Feuil3, et le tour est joué (Sheets("Agence" & I & "a") par exemple) :rolleyes:...
Bon courage :cool:
 

JNP

XLDnaute Barbatruc
Re : Transformer un fichier de 78 Onglets en 26 fichiers de 3 onglets

Re :),
Pas la peine de passer par MP, ça peut intérresser d'autres forumeurs :rolleyes:...
tu me dis que ce code ne fait pas ce que je dis pourtant lors que je le lance il met bien ts les fichiers que je lui ai dit à l'endroit ou je lui ai dit. ce qui ne marche pas c'est les adresses mails en dessous de chaque.
Code:
vnom = ActiveSheet.Name
...
Select Case vnom
Case "Agence1": vdir = "Est\"
Vmail = "ro@co.com"
Case "Agence2": vdir = "Nord\"
Vmail = "ro@co.com"
Case "Agence3": vdir = "Nord\"
Vmail = "anthony@co.com"
Case "Agence4": vdir = "Est\"
Vmail = "anthony@co.com"
Case "Agence5": vdir = "Est\"
Vmail = "anthony@co.com"
End Select
Premier onglet Go, donc vnom = "Go" et nouveau fichier Go.xls, car vdir = ""... Deuxième onglet Agence1a, donc vnom = "Agence1a", Select Case n'a pas de cas Agence1a donc ne sert à rien :rolleyes:... Et tu me dis que ça fonctionne :confused: ???

Il se peut que des agences aient 1 classeur et d'autres 10, et les agences ne seront pas renseigné sous agence 1 ou L mais agence Languedoc roussillon, agence paris de meme pour le a b c.

du coup ce que tu m'as dit (Sheets("Agence" & I & "a") est-il toujours approprié pour mon cas?
Ben non, vu que ton nouveau cas de figure n'a rien à voir avec ta demande : 26 fichiers de 3 onglets :eek:... de plus, tu parles de classeurs maintenant au lieu d'onglets :eek:... et tu donnes 2 exemples, mais, c'est de la nomenclature complête qu'on a besoin, comment veux-tu qu'on fasse les bons tests sur les onglets si on a pas les bon libellés :mad:...

Autre cas pourrais tu me dire ou tu as appris le VB sur quel manuel?
La collection pour les nuls est bien, mais il y a aussi des tutos sympa sur le forum ou ailleurs, il y a les site de JB, etc. Et surtout, ne pas oublier l'enregistreur de macro et l'aide VBA :rolleyes:...

Bon courage :cool:
 

anthooooony

XLDnaute Occasionnel
Re : Transformer un fichier de 78 Onglets en 26 fichiers de 3 onglets

Peut être que je mettais mal exprimé surement d’ailleurs.
Voici la solution à mon problème.
Dans cet exemple :
J'ai 6 onglets, que je souhaite enregistrer dans deux fichiers.

Sub test()

Sheets(Array("Onglet1","Onglet2","Onglet3")).copy
activeworkbook.saveAs "C:\fichier onglet.xls"
ActiveWorkbook.Close False

Sheets(Array("Feuil1","Feuil2","Feuil3")).copy
ActiveWorkbook.SaveAs "C:\fichier feuil.xls"
ActiveWorkbook.Close False

End Sub
 

Statistiques des forums

Discussions
312 228
Messages
2 086 418
Membres
103 205
dernier inscrit
zch