VBA transformer 10 fichiers d'un onglet en un fichier de 10 onglets.

grod

XLDnaute Nouveau
Bonjour à tous,

Je suis un petit nouveau dans la communauté, je viens demander de l'aide pour un projet en cours.

Tout est dans l'intitulé.
J'ai trouvé, à force de chiner, un bout de code qui me rend partiellement ce service :

Sub ConvertirFichiersEnFeuilles()
On Error GoTo gesterreur
Dim VarListeFichiers As Variant, VarFichier As Variant, WkClasseur As Workbook, WkFinal As Workbook, WsFeuille As Worksheet

VarListeFichiers = Application.GetOpenFilename(filefilter:="Classeurs eXceL,*.xlsx", Title:="Choisissez les Classeurs à récupérer", MultiSelect:=True)
If VarType(VarListeFichiers) = vbBoolean Then MsgBox "Abandon !": Exit Sub 'pour identifier le bouton annuler
Set WkFinal = Workbooks.Add 'générer le classeur final

For Ctr = 1 To UBound(VarListeFichiers)
MsgBox VarListeFichiers(Ctr)

Set WkClasseur = Workbooks.Open(Filename:=VarListeFichiers(Ctr))
Set WsFeuille = WkClasseur.Worksheets(1)
WsFeuille.Move before:=WkFinal.Worksheets(1)
WkClasseur.Close savechanges:=False

Next

'For Each VarFichier In VarListeFichiers

'Next VarFichier

Exit Sub

gesterreur:
'classeur vide
If Err.Number = -2147221080 Then
Resume Next
End If

End Sub


Cependant cette macro me fait faire une operation manuelle de selection des fichiers, puis de validation pour chaque fichier ...

Ce que je souhaiterai, c'est renseigner dans le code directement les noms de fichiers/feuilles Excel afin d'automatiser le processus avec ensuite un ctrl+"X" puis trouver "tout cuit" un fichier unique Excel avec tous les onglets issus des autres fichiers.


Merci pour votre aide...
 
G

Guest

Guest
Re : VBA transformer 10 fichiers d'un onglet en un fichier de 10 onglets.

Bonjour,

Si tes fichiers n'ont qu'une seule feuille, normalement ce n'est pas la peine de les ouvrir pour les refermer ensuite. Il suffit de les importer en tant que modèle de feuille dans le nouveau classeur.

Dans le code ci-dessous (non testé) remplace la constant Chemin par le chemin vers le dossier des fichier. Ne pas oublier le '\' final

Dans VarListeFichier mettre les bons noms de fichier entre guillemets et séparés par une virgule

Code:
Sub ConvertirFichiersEnFeuilles()
    Const Chemin = "C:\Chemin\Du\Dossier\" 'Mettre le chemin du répertoire qui contient les fichiers
    
    Dim VarListeFichiers As Variant, VarFichier As Variant, WkClasseur As Workbook, WkFinal As Workbook
    
    'Remplacer les noms de fichiers et ou en ajouter ou enlever
    VarListeFichiers = Array("Fichier1.xlsx", "Fichier2.xlsx", "Fichier3.xlsx")
    
    'Créer le nouveau classeur
    Set WkFinal = Workbooks.Add
    
    For Each VarFichier In VarListeFichiers
        WkFinal.Sheets.Add Type:=Chemin & VarFichier
    Next
   
End Sub

A+
 

grod

XLDnaute Nouveau
Re : VBA transformer 10 fichiers d'un onglet en un fichier de 10 onglets.

Bonjour,

Si tes fichiers n'ont qu'une seule feuille, normalement ce n'est pas la peine de les ouvrir pour les refermer ensuite. Il suffit de les importer en tant que modèle de feuille dans le nouveau classeur.

Dans le code ci-dessous (non testé) remplace la constant Chemin par le chemin vers le dossier des fichier. Ne pas oublier le '\' final

Dans VarListeFichier mettre les bons noms de fichier entre guillemets et séparés par une virgule

Code:
Sub ConvertirFichiersEnFeuilles()
    Const Chemin = "C:\Chemin\Du\Dossier\" 'Mettre le chemin du répertoire qui contient les fichiers
    
    Dim VarListeFichiers As Variant, VarFichier As Variant, WkClasseur As Workbook, WkFinal As Workbook
    
    'Remplacer les noms de fichiers et ou en ajouter ou enlever
    VarListeFichiers = Array("Fichier1.xlsx", "Fichier2.xlsx", "Fichier3.xlsx")
    
    'Créer le nouveau classeur
    Set WkFinal = Workbooks.Add
    
    For Each VarFichier In VarListeFichiers
        WkFinal.Sheets.Add Type:=Chemin & VarFichier
    Next
   
End Sub

A+


Cela fonctionne !!! :D par contre c'est vrai que mes fichiers n'ont pas qu'une seule feuille mais 4, avec seulement 1 qui contient les donnéees...

comment peux on egalement, lors de la création du nouveau fichier, lui demander de supprimer les feuilles inutiles ?
 

anthooooony

XLDnaute Occasionnel
Re : VBA transformer 10 fichiers d'un onglet en un fichier de 10 onglets.

Bonjour,

Je rebondis sur ce topic qui pourrait mettre utile.

Je souhaiterais à l"inverse à partir d'un fichier de 80 onglets(issu de l'automat excel "afficher toutes les pages filtre de rapport") de les dispatcher en 4 fichiers.

exemple

Agence1a region nord
Agence1b region nord
Agence1c region nord
Agence2a region nord
Agence2b region est
Agence2c region est
Agence7 region est
Agence8 region est
Agence9 region sud
Agence10 region sud
Agence11 region sud
Agence12 region sud
Agence13 region sud
Agence14 region idft
Agence15 region idft
Agence16 region idft
Agence17 region idft
Agence18 region idft
Agence19 region idft
etc etc

Merci d'avance
 
G

Guest

Guest
Re : VBA transformer 10 fichiers d'un onglet en un fichier de 10 onglets.

Re,

Les formules du style 'Re', 'Merci' et autres futilités superflues et exacerbantes sur chaque post sont très bien vues sur ce forum (ils sont dingues).

Pour ce qui est de ton problème, tu l'aurais dis dès le premier post, je ne me serai pas dirigé vers ce genre de solution, puisque pour faire ce que tu demandes, il faut ouvrir le fichier, supprimer les feuilles et refermer le fichier.

a+

[Anthony] autre problème, autre fil. Va lire la charte!!!!!! C'est pas rebondir, c'est polluer.
 
Dernière modification par un modérateur:

anthooooony

XLDnaute Occasionnel
Re : VBA transformer 10 fichiers d'un onglet en un fichier de 10 onglets.

Bonjour hasco
Un peu de formule de politesse ne ferait de mal. Au lieu de donner en ordre en disant d aller lire la charte oriente gentiment moi a la lire. !!
Je pensais ne pas mettre éloigné a ce point ! Du sujet initial.
Il dit 10 fichiers d un onglet en un fichier de 10 onglet.
Mon problème était 80 onglets a dispatcher en 4 fichiers...

Je vais donc aller lire la charte et créer une autre discussion pour ne plus polluer comme tu me l indiquais.
Merci de ton aide
Cdt
 

grod

XLDnaute Nouveau
Re : VBA transformer 10 fichiers d'un onglet en un fichier de 10 onglets.

Re,

Les formules du style 'Re', 'Merci' et autres futilités superflues et exacerbantes sur chaque post sont très bien vues sur ce forum (ils sont dingues).

Pour ce qui est de ton problème, tu l'aurais dis dès le premier post, je ne me serai pas dirigé vers ce genre de solution, puisque pour faire ce que tu demandes, il faut ouvrir le fichier, supprimer les feuilles et refermer le fichier.

a+

[Anthony] autre problème, autre fil. Va lire la charte!!!!!! C'est pas rebondir, c'est polluer.



Oulah .. mille excuses, c'est vrai que j'ai oublié les formules de politesses:(.
Je suis le premier à faire la morale à mes fils et je n'applique même pas.

Excuse moi pour cet oublie.

Ma demande n'etait effectivemment pas tres precise, je n'ai donc rien d'autre à ajouter.

Merci encore pour ce code qui va m'être utile.
 

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 212
Membres
103 769
dernier inscrit
Paul Ayang