Création de fichier Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
a
abdernino
Membre fidèle
Membre fidèle
Messages : 207
Inscrit le : 19 mars 2018
Version d'Excel : 2007

Message par abdernino » 14 juin 2018, 23:05

voila ce que j'ai trouver

Sub Macro2()


For Each feuille In ActiveWorkbook.Sheets

feuille.Copy

With ActiveWorkbook

.Title = feuille.Name

.Subject = feuille.Name

.SaveAs Filename:=feuille.Name + ".xls"

End With


Next

End Sub

mais le problème ce que les fichiers ne sont pas sauvgardé automatiquement sur le bureau , et avec le nom de l'onglet

Merci
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'877
Appréciations reçues : 77
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 15 juin 2018, 12:35

Re

Pas trop bien compris. Qu'est ce que vous voulez sauver, les feuilles CAAR et AXA dans des fichiers séparés ?? Là en voyant votre code c'est toutes les feuilles à sauver dans des fichiers séparés ?

Je vous ai donné un code qui vous permet de choisir la feuille à sauver dans un nouveau fichier qui se placera sur le bureau. L'avez vous essayé ??
@+ Dan ;)
a
abdernino
Membre fidèle
Membre fidèle
Messages : 207
Inscrit le : 19 mars 2018
Version d'Excel : 2007

Message par abdernino » 15 juin 2018, 13:04

oui tout a fait.
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'877
Appréciations reçues : 77
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 15 juin 2018, 13:37

Heu tout à fait quoi ??

essayé la proposition ??
@+ Dan ;)
a
abdernino
Membre fidèle
Membre fidèle
Messages : 207
Inscrit le : 19 mars 2018
Version d'Excel : 2007

Message par abdernino » 15 juin 2018, 13:48

les feuilles CAAR et AXA dans des fichiers séparés
Merci
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'877
Appréciations reçues : 77
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 15 juin 2018, 14:01

Re

Essayez ceci :
Sub Macro2()
Dim feuille As Worksheet
Dim Chemin as string

Chemin = "C:\Users\" & VBA.Environ("UserName") & "\Desktop\"

For Each feuille In ThisWorkbook.Sheets
    
    With feuille
        If .Name = "C.A.A.R" Or .Name = "A.X.A" Then
            .Copy
            Activesheet.Name = Replace(Activesheet.Name, ".", "")
            ActiveWorkbook.SaveAs Filename:=Chemin & feuille.Name & ".xls"
            ActiveWorkbook.Close
        End If
    End With

Next
End Sub
Si vous enlever les points du nom des onglets (ce que, comme dit précédemment, je vous conseille d'ailleurs), veillez à les enlever aussi dans le code.

Si ok, merci de cloturer le fil

Cordialement
@+ Dan ;)
a
abdernino
Membre fidèle
Membre fidèle
Messages : 207
Inscrit le : 19 mars 2018
Version d'Excel : 2007

Message par abdernino » 15 juin 2018, 21:00

Merci ça marche très bien

J'ai rajouté d'autre feuille un message s'affiche La méthode 'copy' de l'objet worksheet a echoué

Sub Macro2()
Dim feuille As Worksheet
Dim Chemin As String

Chemin = "C:\Users\" & VBA.Environ("UserName") & "\Desktop\"

For Each feuille In ThisWorkbook.Sheets

With feuille
If .Name = "CAAR" Or .Name = "AXA" Or .Name = "GAM" Or .Name = "CAAT" Or .Name = "SAA" Or .Name = "2A" Or .Name = "CASH" Or .Name = "ALLIANCE" Or .Name = "TRUST" Then
.Copy
ActiveSheet.Name = Replace(ActiveSheet.Name, ".", "")
ActiveWorkbook.SaveAs Filename:=Chemin & feuille.Name & ".xls"
ActiveWorkbook.Close
End If
End With

Next
End Sub
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'877
Appréciations reçues : 77
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 15 juin 2018, 21:19

Re

Vous avez trop de conditions dans le IF. Je pense que c'est 7 maximum.
Essayez ce code
Sub Macro2()
Dim feuille As Worksheet
Dim Chemin As String

Chemin = "C:\Users\" & VBA.Environ("UserName") & "\Desktop\"

For Each feuille In ThisWorkbook.Sheets

With feuille
    Select Case .Name
        Case Is = "CAAR", "AXA", "GAM", "CAAT", "SAA", "2A", "CASH", "ALLIANCE", "TRUST"
        .Copy
        'ActiveSheet.Name = Replace(ActiveSheet.Name, ".", "")
        ActiveWorkbook.SaveAs Filename:=Chemin & feuille.Name & ".xls"
        ActiveWorkbook.Close
    End Select
End With

Next
End Sub
Comme je vois que vous avez supprimé les points dans le nom des onglet, j'ai désactivé une ligne dans le code

Cordialement
@+ Dan ;)
a
abdernino
Membre fidèle
Membre fidèle
Messages : 207
Inscrit le : 19 mars 2018
Version d'Excel : 2007

Message par abdernino » 15 juin 2018, 22:22

merci beaucoup @ Dan
a
abdernino
Membre fidèle
Membre fidèle
Messages : 207
Inscrit le : 19 mars 2018
Version d'Excel : 2007

Message par abdernino » 16 juin 2018, 13:22

Bonjour,

un problème lors de la création du fichier comme il y a une formule ,le fichier enregistré sur le bureau #REF!
a la place des donné, je pense que c'est la formule qui pose problème.
Si vous avez besoin du fichier , je vous l'envoi
Encore un grand merci
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message