code VBA - creation de fichier excel

jbdubreuil

XLDnaute Occasionnel
Bonjour le forum,

Ma derniere visite sur le site remonte à qq mois.
Et je suis bien content de voir que le site fonctionne toujours aussi bien.

Voilà ma question.
J’ai un fichier excel avec des onglets :
"France", "Italie", "Espagne"…

Chaque mois, j’envoie à chaque pays leur onglet dans un fichier que je crée.

Je cherche donc une macro pour automatiser les taches suivantes :
1)Faire un copier coller valeur, pour enlever toutes les formules (ca je sais faire avec l'enregistreur automatique)

2)Puis créer autant de fichiers excel que d’onglets.
(l'onglet "france" est donc dans un nouveau fichier excel avec un seul onglet

3) Enfin nommer le fichier avec le nom du pays.
l'onglet "France" est donc dans le fichier "tableau de bord_France"

Voilà,

Si vous avez peut etre un bout de code pour m'aider ou code que vous utilisez pour une operation similaire, je suis prenant,

Merci par avance,
jb

King of the Cut and Paste ;)
 

Guiv

XLDnaute Occasionnel
Re : code VBA - creation de fichier excel

Bonjour,
Ce petit bout de code te crée autant de fichiers que tu as de feuille dans ton classeur initial, chaque nouveau classeur portera le nom d'une feuille...

Sub CreerFichiers()

Dim i As Integer

For i = 1 To Sheets.Count
Dim NouveauClasseur As Workbook
Dim NomClasseur As String
NomClasseur = ThisWorkbook.Sheets(i).Name

ThisWorkbook.Sheets(i).Copy
Set NouveauClasseur = ActiveWorkbook
NouveauClasseur.SaveAs NomClasseur

Next i

End Sub


A améliorer
Cordialement,
Guiv
 

Staple1600

XLDnaute Barbatruc
Re : code VBA - creation de fichier excel

Bonjour à tous

Une solution ( à tester) quasi-identique à celle de Guiv
(ajout du collage spécial et de tableau de bord dans le nom du fichier)
Code:
Sub Eclater_Classeur()
Dim Nom_Fichier As String
Dim F As Worksheet
Application.ScreenUpdating = False
For Each F In ThisWorkbook.Worksheets
'ici remplacer le nom avec le nom du répertoire adéquat
Nom_Fichier = "C:\Temp\" & "tableau de bord_" & F.Name
'ici équivalent collage spécial Valeurs
F.UsedRange.Value = F.UsedRange.Value
F.Copy
ActiveWorkbook.SaveAs (Nom_Fichier)
ActiveWindow.Close
Next F
Application.ScreenUpdating = False
End Sub
 
Dernière édition:

jbdubreuil

XLDnaute Occasionnel
Re : code VBA - creation de fichier excel

Bonjour staple, Guiv, le forum,

Je reviens sur le post precedent.
Tout marche tres bien.
J'ai simplement un petit soucis:

J'ai plusieurs boutons tres simples avec des petites macros dans "module" pour faire apparaitre et disparaitre des lignes de calcul du genre:

Sub CheckBox2_Click()
If Rows("20:21").Hidden = True Then
Rows("20:21").Hidden = False
Else
Rows("20:21").Hidden = True
End If
End Sub
Avec la fonction copier coller, je perds finaleemnt le code.

Est il possible conserver les codes?
En d'autre terme il faut j'imagine recopier le code dans le nouveau classeur, non?

Merci pour votre aide,

Cdlt,

jb
 

Staple1600

XLDnaute Barbatruc
Re : code VBA - creation de fichier excel

Bonjour


Une solution serait de recréer à la volée les boutons et le code VBA.

Et là ça se complique.


Un exemple de création de bouton et de son code à la voléé:
Fil XLD

Regarde le code de MichelXld
la macro nommée Sub FaireBouton()
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : code VBA - creation de fichier excel

Re


En détaillant un peu plus
Code:
Sub FaireBoutonII()
'auteur macro d'origine: MichelXLD
'crétion d'un bouton
Dim Code As String
Dim myDocument As Worksheet
Dim Obj As OLEObject

'ici mettre le nom de la feuille
Set myDocument = Worksheets(2)

Set Obj = myDocument.OLEObjects.Add("Forms.CommandButton.1")
With Obj
.Name = "CommandButton1"
.Left = 180
.Top = 30
.Width = 100
.Height = 20
'.Object.BackColor = 123456 * i
End With
'ici il faudrait inscrire le code la macro ligne par ligne
Code = "Sub CommandButton1" & "_Click()" & vbCrLf
Code = Code & "Msgbox " & Chr(34) & "Hello Excel" & Chr(34) & vbCrLf
Code = Code & "End Sub"

With ThisWorkbook.VBProject.VBComponents(myDocument.Name).CodeModule
    NextLine = .CountOfLines + 1
    .InsertLines NextLine, Code
End With
End Sub

Le problème est qu'il faut créer plusieurs boutons
 
Dernière édition:

jbdubreuil

XLDnaute Occasionnel
Re : code VBA - creation de fichier excel

Hello Staple,

Merci pour ton coup de pouce,
Je vais voir ce que cela donne.

Au pire, je laisse tomber, ce n'est pas si grave.
Je souhaitais simplement faire apparaitre des sous totaux sur certaines lignes.
Et j'ai toujours cette possibilité sur le fichier original.

Encore une fois merci pour le premier code, c'est vraiment utile !

jb
 

Discussions similaires

Réponses
12
Affichages
326

Statistiques des forums

Discussions
312 857
Messages
2 092 868
Membres
105 545
dernier inscrit
pourmanger