Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

création d'un nouveau fichier par VB

4 réponses
Avatar
arnaud
Je m'explique brievement.
J'ai un classeur avec beaucoup de feuilles de calcul. Dans ce tableau, j'ai
des stats commerciales
Je veux, en cliquant sur un bouton, créer des fichiers qui copient 2 pages
de ce classeur. (1 fichier par commercial)

J'ai enregistré ma macro en automatique, mais le souci, c'est que en
l'enregistrant, il garde en mémoire allez dans le classeur 1, puis le 2,
etc..
alors que si excel a déjà été ouvert, les nouveaux classeurs générés ne sont
pas obligatoirement classeur1 - 2 ....
En fait, quand j'execute ma macro alors qu'excel a déjà été ouvert
auparavant, ça plante.

j'espère que je me suis bien fait comprendre...
Merci de votre aide précieuse !

Arnaud

4 réponses

Avatar
Christophe CAUCHOIS
Salut Arnaud,

Pas super clair pour moi, j'avoue...mais je vois bien les problèmes que tu
peux avoir pour faire exécuter ce genre de macro qui a été générée
automatiquement.
Une ébauche de solution :
Tu veux créer 10 nouveaux classeurs contenant une copie des feuilles
"Feuil1" et "Feuil2"
For x = 1 To 10
Sheets(Array("Feuil1", "Feuil2")).Copy
Next x
Et tu auras créé 10 nouveaux classeurs qui sont ouverts et dont les noms
sont "classeurx", "classeury", etc...
Après, reste plus qu'à les enregistrer et les nommer. Ca peut s'automatiser
également.

HTH

Christophe

"arnaud" a écrit dans le message de
news:%
Je m'explique brievement.
J'ai un classeur avec beaucoup de feuilles de calcul. Dans ce tableau,
j'ai

des stats commerciales
Je veux, en cliquant sur un bouton, créer des fichiers qui copient 2 pages
de ce classeur. (1 fichier par commercial)

J'ai enregistré ma macro en automatique, mais le souci, c'est que en
l'enregistrant, il garde en mémoire allez dans le classeur 1, puis le 2,
etc..
alors que si excel a déjà été ouvert, les nouveaux classeurs générés ne
sont

pas obligatoirement classeur1 - 2 ....
En fait, quand j'execute ma macro alors qu'excel a déjà été ouvert
auparavant, ça plante.

j'espère que je me suis bien fait comprendre...
Merci de votre aide précieuse !

Arnaud




Avatar
arnaud
avec cette méthode, je crée ainsi mes classeurs à l'avance, ce qui me permet
ensuite de faire la copie de mes feuilles dans ces classeurs ?
Mais dans ma macro , j'utilise aussi for...next , je lui dit de faire autant
de nouveaux fichiers qu'il y a de commerciaux .
en fait, il faut que je continue avec ma macro actuelle mais que dès qu'il
crée un nouveau classeur, il l'enregistre sous un nom différent à un
emplacement précis
Est-il possible d'enregistrer en automatique ces fichiers en donnant comme
nom, l'assemblage de deux cellules (Nom du commercial et le mois) ?
Merci !

"Christophe CAUCHOIS" a écrit dans le message de news:
40e2b022$0$6601$
Salut Arnaud,

Pas super clair pour moi, j'avoue...mais je vois bien les problèmes que tu
peux avoir pour faire exécuter ce genre de macro qui a été générée
automatiquement.
Une ébauche de solution :
Tu veux créer 10 nouveaux classeurs contenant une copie des feuilles
"Feuil1" et "Feuil2"
For x = 1 To 10
Sheets(Array("Feuil1", "Feuil2")).Copy
Next x
Et tu auras créé 10 nouveaux classeurs qui sont ouverts et dont les noms
sont "classeurx", "classeury", etc...
Après, reste plus qu'à les enregistrer et les nommer. Ca peut
s'automatiser

également.

HTH

Christophe

"arnaud" a écrit dans le message de
news:%
Je m'explique brievement.
J'ai un classeur avec beaucoup de feuilles de calcul. Dans ce tableau,
j'ai

des stats commerciales
Je veux, en cliquant sur un bouton, créer des fichiers qui copient 2
pages


de ce classeur. (1 fichier par commercial)

J'ai enregistré ma macro en automatique, mais le souci, c'est que en
l'enregistrant, il garde en mémoire allez dans le classeur 1, puis le 2,
etc..
alors que si excel a déjà été ouvert, les nouveaux classeurs générés ne
sont

pas obligatoirement classeur1 - 2 ....
En fait, quand j'execute ma macro alors qu'excel a déjà été ouvert
auparavant, ça plante.

j'espère que je me suis bien fait comprendre...
Merci de votre aide précieuse !

Arnaud








Avatar
Christophe CAUCHOIS
La ligne de code entre "For...Next" créé le classeur en y copiant les deux
feuilles sans autre forme de procès.
Si tu veux enregistrer sous un nom quelconque puis fermer, tu le fais dans
la boucle comme ça :
Dim NomClasseur AS String
For x = 1 To 10
NomClasseur="classeur_num" & x
Sheets(Array("Feuil1", "Feuil2")).Copy
ActiveWorkbook.SaveAs FileName:="C:mon_repertoire" & NomClasseur
ActiveWindow.Close
Next x

Bien sur, dans ce cas, tes classeurs s'appelleront tous "classeur_numx". A
toi d'adapter le nom en faisant référence à tes deux cellules, nom du
commercial et mois.



"arnaud" a écrit dans le message de
news:
avec cette méthode, je crée ainsi mes classeurs à l'avance, ce qui me
permet

ensuite de faire la copie de mes feuilles dans ces classeurs ?
Mais dans ma macro , j'utilise aussi for...next , je lui dit de faire
autant

de nouveaux fichiers qu'il y a de commerciaux .
en fait, il faut que je continue avec ma macro actuelle mais que dès qu'il
crée un nouveau classeur, il l'enregistre sous un nom différent à un
emplacement précis
Est-il possible d'enregistrer en automatique ces fichiers en donnant comme
nom, l'assemblage de deux cellules (Nom du commercial et le mois) ?
Merci !


Avatar
arnaud
Merci beaucoup !
Je teste et te tient au courant !
arnaud


"Christophe CAUCHOIS" a écrit dans le message de news:
40e2cde4$0$6595$
La ligne de code entre "For...Next" créé le classeur en y copiant les deux
feuilles sans autre forme de procès.
Si tu veux enregistrer sous un nom quelconque puis fermer, tu le fais dans
la boucle comme ça :
Dim NomClasseur AS String
For x = 1 To 10
NomClasseur="classeur_num" & x
Sheets(Array("Feuil1", "Feuil2")).Copy
ActiveWorkbook.SaveAs FileName:="C:mon_repertoire" & NomClasseur
ActiveWindow.Close
Next x

Bien sur, dans ce cas, tes classeurs s'appelleront tous "classeur_numx". A
toi d'adapter le nom en faisant référence à tes deux cellules, nom du
commercial et mois.



"arnaud" a écrit dans le message de
news:
avec cette méthode, je crée ainsi mes classeurs à l'avance, ce qui me
permet

ensuite de faire la copie de mes feuilles dans ces classeurs ?
Mais dans ma macro , j'utilise aussi for...next , je lui dit de faire
autant

de nouveaux fichiers qu'il y a de commerciaux .
en fait, il faut que je continue avec ma macro actuelle mais que dès
qu'il


crée un nouveau classeur, il l'enregistre sous un nom différent à un
emplacement précis
Est-il possible d'enregistrer en automatique ces fichiers en donnant
comme


nom, l'assemblage de deux cellules (Nom du commercial et le mois) ?
Merci !