Macro un fichier excel par onglet et rangement dans 1 dossier

Résolu/Fermé
netabisse Messages postés 12 Date d'inscription mercredi 14 septembre 2011 Statut Membre Dernière intervention 17 septembre 2013 - 19 juil. 2013 à 08:41
 dream22 - 13 avril 2016 à 15:26
Bonjour,

Voilà mon "problème".
J'ai un classeur Excel avec plusieurs onglets.
J'ai déjà trouvé sur le forum comment créer un fichier excel par onglet avec une macro.
Par contre, je ne parviens pas à retrouver ces fichiers excel, je souhaiterais qu'ils se rangent automatiquement dans un dossier existant dans "mes documents".

Sauriez-vous m'aider pour créer le code complémentaire à ma macro pour cela.
Idéalement, si je peux en même temps supprimer les quadrillages et les feuilles vides, ça serait top.

Voici le code que j'ai déjà.

Sub saveOnglet()
Dim ws
Dim newWk As Workbook

For Each ws In Worksheets
Set newWk = Workbooks.Add(xlWBATWorksheet)
ws.Copy newWk.Sheets(1)
newWk.SaveAs (ws.Name & ".xls")
newWk.Close
Set newWk = Nothing
Next ws

End Sub


Par avance je vous remercie de votre aide précieuse.

Bonne journée




A voir également:

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
19 juil. 2013 à 09:04
Bonjour,
2 choix :
1- tu connais le chemin d'accès à ce répertoire et ce dernier ne changera jamais :
Dim ws
Dim newWk As Workbook 
Dim Chemin As String
Chemin = "C:\Pijaku\Ne_fait_rien_de_ses_journées\CCM\"  
For Each ws In Worksheets
    Set newWk = Workbooks.Add(xlWBATWorksheet)
    ws.Copy newWk.Sheets(1)
    newWk.SaveAs (Chemin & ws.Name & ".xls")
    newWk.Close
    Set newWk = Nothing
Next ws 

2- tu souhaites laisser le choix à l'utilisateur :
Dim ws
Dim newWk As Workbook 
Dim objShell As Object, objFolder As Object
Dim Chemin As String

    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)

If objFolder Is Nothing Then
    MsgBox "Abandon opérateur", vbCritical, "Annulation"
Else
    Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & "\"
End If
If Chemin <> "" Then
    For Each ws In Worksheets
        Set newWk = Workbooks.Add(xlWBATWorksheet)
        ws.Copy newWk.Sheets(1)
        newWk.SaveAs (Chemin & ws.Name & ".xls")
        newWk.Close
        Set newWk = Nothing
    Next ws 
End If

0
netabisse Messages postés 12 Date d'inscription mercredi 14 septembre 2011 Statut Membre Dernière intervention 17 septembre 2013
19 juil. 2013 à 09:49
Bonjour!

Génial!!
ça marche trop bien.
J'ai même pu ajouter les codes pour supprimer la feuille "feuil1' qui se créé automatiquement et le code pour enlever le quadrillage, le tout dans la même macro.

Merci beaucoup!
C'est magique!

Bonne journée
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
19 juil. 2013 à 09:50
De rien.
Merci et bonne journée à vous également,
A+
0
Ludo31120 Messages postés 1 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 2 avril 2014
2 avril 2014 à 11:48
Bonjour,
ce bout de code marche super bien, par contre existe-t-il un moyen de ne copier seulement que les valeurs des cellules du fichier source à la place des formules?
Merci d'avance.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
Modifié par pijaku le 2/04/2014 à 12:35
Bonjour,

Pour cela, il faut "ruser" un peu.
1- créer une nouvelle feuille,
2- Copier les cellules contenues dans la feuille que vous souhaitez copier,
3- collage spécial valeur dans la nouvelle feuille
4- Exécuter la macro ci-dessus avec la nouvelle feuille
5- recommencer autant de fois que de feuilles,
6- supprimer la nouvelle feuille
0
Bonjour,

Serait-il possible de ranger les différents onglets dans différents dossiers?
J'ai fait une macro excel qui permet d'abord de convertir chaque onglet excel sous format txt. J'arrive à ranger tous les fichiers txt dans un dossier spécifique, mais j'aimerai pouvoir ranger l'onglet 1 dans le dossier 1, l'onglet 2 dans le dossier 2, etc..

Je vous remercie par avance!
0