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 ?

Je ne suis pas sûr d'avoir tout compris..
J'ai déclaré la variable Vmail en public afin de ne pas la perdre au passage dans la macro "EnvoiMail"
Il y avait une erreur egalement dans la macro "EnvoiMail" :
.to Vmail remplacé par :
.to = Vmail
Cela devrait aider.
Autre chose?
nb : JCGL mon voisin, merci pour ton conseil (fenetre code). Mais, comment fais tu?(code déposé (#) dans la barre d'outils avancé VBulletin?) Je ne trouve pas....merci
Frédéric
 

Pièces jointes

  • Classeur3.xlsm
    14.4 KB · Affichages: 43
  • Classeur3.xlsm
    14.4 KB · Affichages: 40
  • Classeur3.xlsm
    14.4 KB · Affichages: 48

JCGL

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

Bonjour à tous,
Salut Fred,

Passe en rédaction du message Avancée. Sélectionne ton code et clique sur le #. Il sera entouré des balises [ Code ] et [ /Code ]



Code:
Public Vmail As String

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 = "xxxxxxxxxx@hotmail.com"
Case "Agence2": vdir = "Nord\"
Vmail = "xxxxxxxxxx@yahoo.fr"
Case "Feuil3": vdir = "Nord\"
Vmail = "xxxxxxxxxx@yahoo.fr"

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

''''''''''''''''''''''''''''''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 = " xxxxxxxxxx@hotmail.com "
.BCC = "xxxxxxxxxx@yahoo.fr "
.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
Tu as aussi, encore plus "classe" mais il n'y a pas d'icône d’automatisation :

[ Highligth=VBA ] et [ /Highlight ]

Il n'y a pas d'espace entre les [].

VB:
Public Vmail As String

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 = "xxxxxxxxxx@hotmail.com"
Case "Agence2": vdir = "Nord\"
Vmail = "xxxxxxxxxx@yahoo.fr"
Case "Feuil3": vdir = "Nord\"
Vmail = "xxxxxxxxxx@yahoo.fr"

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

''''''''''''''''''''''''''''''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 = "xxxxxxxxxx@hotmail.com"
.BCC = "xxxxxxxxxx@yahoo.fr"
.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++
A + à tous
 
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 Fred,

  • Aller dans son Tableau de Bord (dans le bandeau en haut)
  • Options Avancées (vers le bas)
  • Options diverses (vers le bas)
  • Interface d'édition des messages (vers le bas)
  • Cocher : Éditeur WYSIWYG - Interface avancée

A++
A+ à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 323
Messages
2 087 301
Membres
103 512
dernier inscrit
sisi235