Renseignement macro créa nouveau fichier

  • Initiateur de la discussion Initiateur de la discussion ironangel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ironangel

XLDnaute Occasionnel
Bonjour,

j'aimerais savoir s'il est possible de creer une macro sous excel permettant, lorsqu'on l'éxécute, de générer des nouveaux fichiers excel prédéfinis, c'est à dire contenant par exemple un tableau reprenant des donnés précédemment entré.

Amicalement

Seb
 
Re : Renseignement macro créa nouveau fichier

re,

j'ai essayé ton code (avec la partie en rouge en +), et il fonctionne :

Code:
Sub création_fichier()
Dim newWbk As Workbook, curWbk As Workbook, curSheet As Worksheet

Set curWbk = ThisWorkbook
Set newWbk = Application.Workbooks.Add

'ne garder que la première feuille
While newWbk.Sheets.Count > 1
Application.DisplayAlerts = False
newWbk.Sheets(2).Delete
Application.DisplayAlerts = True
Wend

'copier toutes les feuilles
For Each curSheet In curWbk.Sheets
curSheet.Copy after:=newWbk.Sheets(newWbk.Sheets.Count)
Next curSheet

'supprimer la première feuille du nouveau classeur
Application.DisplayAlerts = False
newWbk.Sheets(1).Delete
Application.DisplayAlerts = True
newWbk.SaveAs curWbk.Path & "\" & curWbk.Sheets("Définiton PF").Range("D8") [COLOR="Red"][B]& ".xls"[/B][/COLOR]
End Sub

il ne buge que si tu n'as pas de valeur dans la cellule "D8" de ta feuille "Définiton PF"

a+
 
Re : Renseignement macro créa nouveau fichier

Je sais pas, ça bug toujours, pourtant il y a bien ecrit qqchose dans ma cellule, à savoir que c'est une cellule fusionnée.

Voila ce que j'ai écrit:
newWbk.SaveAs curWbk.Path & "\" & curWbk.Sheets("Définition PF").Range("C4") & ".xls"

Merci
 
Re : Renseignement macro créa nouveau fichier

re,

si c'est une cellule fusionné, il faut appeler la "de gauche".
je m'explique :
si tu fusionne A1, B1 et C1 et que tu écris "toto", alors tu auras "toto" dans A1 et rien dans B1 et C1.

ce que tu peux faire, c'est rajouter MsgBox curWbk.Sheets("Définition PF").Range("C4") avant la ligne d'enregistrement voir ce que ça donne.

bonne chance
a+
 
Re : Renseignement macro créa nouveau fichier

Hello

Ben j'ai copié texto le msgbox

(MsgBox curWbk.Sheets("Définition PF").Range("C4") )

au dessus de la ligne saveas mais je ne sais pas comment savoir si elle est vide ou pas, faut faire une manip particuliere pour cette msgbox?

Merci bien
 
Re : Renseignement macro créa nouveau fichier

'supprimer la première feuille du nouveau classeur
Application.DisplayAlerts = False
newWbk.Sheets(1).Delete
Application.DisplayAlerts = True
MsgBox curWbk.Sheets("Définition PF").Range("C4")
newWbk.SaveAs curWbk.Path & "\" & curWbk.Sheets("Définiton PF").Range("D8") & ".xls"
End Sub


Pour infos, le morceau du code identifié ;-)
 
Re : Renseignement macro créa nouveau fichier

re,

voici une MsgBox "vide"

est-ce que tu as ça, ou est-ce que ça affiche la valeur de ta cellule?

a+
 

Pièces jointes

  • Sans titre.JPG
    Sans titre.JPG
    4.4 KB · Affichages: 41
  • Sans titre.JPG
    Sans titre.JPG
    4.4 KB · Affichages: 44
  • Sans titre.JPG
    Sans titre.JPG
    4.4 KB · Affichages: 44
Re : Renseignement macro créa nouveau fichier

Salut,

En ce qui concerne la msgbox(fallait ajouter des parenthese avant et apres la msgbox) j'ai réussi à faire apparaitre la petite icone qui d'ailleurs reprend le contenu de ma cellule C4,
cependant, ça bug toujours au niveau du saveas, faut peut-être définir un emplacement d'enregistrement ou qqchose, je t'avouerais que je ne m'y connais pas assez

Amicalement
 
Re : Renseignement macro créa nouveau fichier

c'est bizarre quand même.

es-tu sur que ton fichier (de base) est bien enregistré?
essaye :
MsgBox (curWbk.Path & "\" & curWbk.Sheets("Définiton PF").Range("D8") & ".xls")
voir si tu as bien le chemin complet.

quand même bizarre...

a+
 
Re : Renseignement macro créa nouveau fichier

Je t'avouerais que je ne sais pas du tt,
il est bien enregistré dans un dossier, mais cela ne marche toujours pas, toujours débugage, je suis désespéré lol:

je te redonne le code au cas ou:

Sub création_fichier()
Dim newWbk As Workbook, curWbk As Workbook, curSheet As Worksheet

Set curWbk = ThisWorkbook
Set newWbk = Application.Workbooks.Add

'ne garder que la première feuille
While newWbk.Sheets.Count > 1
Application.DisplayAlerts = False
newWbk.Sheets(2).Delete
Application.DisplayAlerts = True
Wend

'copier toutes les feuilles
For Each curSheet In curWbk.Sheets
curSheet.Copy after:=newWbk.Sheets(newWbk.Sheets.Count)
Next curSheet

'supprimer la première feuille du nouveau classeur
Application.DisplayAlerts = False
newWbk.Sheets(1).Delete
Application.DisplayAlerts = True
MsgBox (curWbk.Path & "\" & curWbk.Sheets("Définiton PF").Range("C4") & ".xls")
newWbk.SaveAs curWbk.Path & "\" & curWbk.Sheets("Définiton PF").Range("C4") & ".xls"
End Sub


Merci pour ton aide en tt cas
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

C
  • Question Question
Réponses
4
Affichages
901
C
C
Réponses
0
Affichages
1 K
cptass71
C
D
Réponses
1
Affichages
2 K
DukeDevlin
D
R
Réponses
15
Affichages
5 K
razorlight
R
Y
Réponses
16
Affichages
2 K
Yvouille
Y
C
Réponses
5
Affichages
4 K
chikchik
C
D
Réponses
1
Affichages
1 K
Retour