A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

anthooooony

XLDnaute Occasionnel
Bonjour,

Je dois créer des reporting par agence à l'aide de tableau croisé dynamique.

Je sais comment d'un clic avoir autant d'onglet que j'ai d'agence (70) ou de région existante avec une présentation unique grâce à " afficher les pages de filtre de rapport."

MAIS est-il possible avec une macro de créer autant de fichier que j'ai d'onglet?
Aussi, est-il possible des réaffecter ces fichiers vers des dossiers spécifiques?

J'ai regardé sur le forum je n'ai pas trouvé l'information, pouvez vous m'orienter vers un début de piste?
En vous remerciant par avance.

Anthooooony
 

Pièces jointes

  • tcd.xlsx
    7.4 KB · Affichages: 81
  • tcd.xlsx
    7.4 KB · Affichages: 82
  • tcd.xlsx
    7.4 KB · Affichages: 83

fredl

XLDnaute Impliqué
Re : A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

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 "D:\"
'choix du repertoire en fonction du nom agence
Select Case vnom
Case "Agence1": vdir = "Est\"
vmail="xxx@gmail.com"
Case "Agence2": vdir = "Nord\"
vmail="yyy@free.fr"

End Select
ActiveWorkbook.SaveAs Filename:="D:\" & 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


cela te convient?
Fred
 

Pièces jointes

  • tcd(1).xlsm
    16.2 KB · Affichages: 82
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

Bonjour à tous,
Salut 00,

Avec comme base ton fichier déposé et avec les pages déjà créées :


Option Explicit

Sub Création_Fichiers()
Dim X%

For X = 1 To Sheets.Count

Sheets(X).Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & ActiveSheet.Name & ".xls"
On Error Resume Next
ActiveWorkbook.Save
ActiveWorkbook.Close

Next X
End Sub

A + à tous

Edition : J'ai omis de biser 00
 
Dernière édition:

anthooooony

XLDnaute Occasionnel
Re : A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

Merci à vous trois, c'est très gentil !

"Est ce ce que tu voulais faire sachant que tu peux le faire pour le nombre d'onglets que tu veux?"
C'est exactement ça, je dois au préalable créer autant de dossier que j'ai d'agence. Une fois ces dossiers crées je pense que ça ira vite.

Est-il possible au même titre d'affecté un fichier à un dossier spécifique, d'envoyer un fichier spécifique à une personne précise par mail?
Pour un récent projet j'ai su(en regardant sur les forums) envoyer un fichier à plusieurs personnes, ci dessous le code.
Dans les lignes de code proposé par Fredl il est indiqué agence 1 "va vers" dossier Est, est-il possible de luir dire agence 1 va vers anthooooony@hotmail.com?

Select Case vnom
Case "Agence1": vdir = "Est\" ; Case "Agence1": vdir = "anthooooony@hotmail.com"
Case "Agence2": vdir = "Nord\"

CODE : ENVOIE D'UN FICHIER A PLUSIEURS PERSONNES PAR MAIL.
Sub Mail_workbook_Outlook_1()
Dim OutApp As Object
Dim OutMail As Object

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail
.to = "mail@mail.com"
.CC = " mail@mail.com; mail@mail.com "
.BCC = " mail@mail.com "
.Subject = "mouvements clients"
.body = "Bonjour," & Chr(13) & "" & Chr(13) & "Veuillez trouver, ci-joint, le fichier des jours….." & Chr(13) & "" & Chr(13) & "Cordialement." & Chr(13) & "" & Chr(13) & "blabla"
.Attachments.Add ActiveWorkbook.FullName

.Send 'or use .Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub


C'est un plus cette demande, en tout cas merci beaucoup de votre aide, ça nous avance beaucoup dans nos projets, ça nous fait gagner beaucoup de temps, et d'energie! en tt cas si quelqu'un passe par nanterre je paye mon café ;)
 

anthooooony

XLDnaute Occasionnel
Re : A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

Bonsoir
j'ai un petit problème avec le code envoyé, il marque "erreur de compilation : sub ou fonction non définie"
Ci joint, le document la capture d'écran..
Savez vous quel est / ou est le problème?
 

Pièces jointes

  • 2011-12-20_164713.jpg
    2011-12-20_164713.jpg
    56.1 KB · Affichages: 114

anthooooony

XLDnaute Occasionnel
Re : A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

Bonjour,

J'ai un problème sur ce code il surligne Call EnvoiMail savez vous ou se trouve le problème?






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 "Feuil1": vdir = "Est\"
vmail = "anthooooony@hotmail.com"
Case "Feuil2": vdir = "Nord\"
vmail = "anthooooony@hotmail.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
 

anthooooony

XLDnaute Occasionnel
Re : A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

Je ne savais pas qu'il existait une subenvoimail()... J'ai une formation VBA en 2012 je verrai à ce moment je pense de quoi je parle..

Je vais essayer de voir de mon côté comment intégrer cette fonction au code que l'on m'a déjà transmit.
 

fredl

XLDnaute Impliqué
Re : A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

Bonjour à tous
désolé, je suis allé un peu vite, je pensais que tu intuiterais la création de cette macro EnvoiMail ("Mail_workbook_Outlook_1" dans ton code) avec les lignes de programmes que tu as mis en ligne dans la discussion.... cela doit donc donner çà(à tester):
'CODE : ENVOIE D'UN FICHIER A PLUSIEURS PERSONNES PAR MAIL.
'''''''''''''''''''''''''''''''Sub Mail_workbook_Outlook_1()
sub EnvoiMail
Dim OutApp As Object
Dim OutMail As Object

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail

.to Vmail 'ta variable Email déclarée Public!
'''''''''''''''''''''''''''''''''''''''''''''''''.to = "mail@mail.com"
.CC = " mail@mail.com; mail@mail.com "
.BCC = " mail@mail.com "
.Subject = "mouvements clients"
.body = "Bonjour," & Chr(13) & "" & Chr(13) & "Veuillez trouver, ci-joint, le fichier des jours….." & Chr(13) & "" & Chr(13) & "Cordialement." & Chr(13) & "" & Chr(13) & "blabla"
.Attachments.Add ActiveWorkbook.FullName

.Send 'or use .Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub
 

JCGL

XLDnaute Barbatruc
Re : A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

Bonjour à tous,
Bonjour voisin FredL,

Merci d'utiliser les balises codes pour avoir une meilleure lisibilité du code déposé (#) dans la barre d'outils avancé VBulletin.

Code:
'''''''''''''''''''''''''''''''Sub Mail_workbook_Outlook_1()
Sub EnvoiMail
Dim OutApp As Object
Dim OutMail As Object

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail

.to Vmail 'ta variable Email déclarée Public!
'''''''''''''''''''''''''''''''''''''''''''''''''. to = "mail@mail.com"
.CC = " mail@mail.com; mail@mail.com "
.BCC = " mail@mail.com "
.Subject = "mouvements clients"
.body = "Bonjour," & Chr(13) & "" & Chr(13) & "Veuillez trouver, ci-joint, le fichier des jours….." & Chr(13) & "" & Chr(13) & "Cordialement." & Chr(13) & "" & Chr(13) & "blabla"
.Attachments.Add ActiveWorkbook.FullName

.Send 'or use .Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub

A+ à tous
 

anthooooony

XLDnaute Occasionnel
Re : A partir d'un fichier Comment avec un TCD créer autant de fichier que d'onglet ?

Merci,

Les fichiers vont bien sur les dossiers spécifiés, agence1 vers nord et agence2 vers est.
Par contre, les emails sont en fonction du deuxième code, et non plus sur le premier qui indiquait.
Case "Feuil1": vdir = "Est\"
vmail = "anthooooony@hotmail.com"
Case "Feuil2": vdir = "Nord\"
vmail = "anthooooony@hotmail.com"


Il envoie ts les onglets aux personnes qui sont paramétré sur le deuxième code et non pas sur le premier.

j'ai un message d'erreur qui est erreur d execution 1004 : "ActiveSheet.Name = vnom"

....
Help..
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16