Créer une feuille automatiquement

Bonjour à tous,

Y a t-il un moyen de créer automatiquement une nouvelle feuille de calcul lorsqu'un cellule se remplit.

Du type : si cette cellule est vide, alors rien. Si elle porte un nom (Dupont), alors créer une feuille, dans le même classeur ou dans un autre, intitulée Dupont

Ou encore, si je clique sur un bouton, cela génère la création d'une feuille de calcul du nom du contenu de la cellule n° tant

Merci de votre aide.

Cordialement,

Olivier

Bonjour,

A associer sur un bouton. Créé une feuille avec le nom de la cellule active :

Sub CREER()
Dim NOM$
NOM = ActiveCell
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = NOM
End Sub

Cdlt,

Merci, ça marche, j'arrive à créer une feuille au nom de la cellule.

Comment créer un bouton qui me permet de déclencher la création de la nouvelle feuille ?

Cordialement,

Olivier

Bonjour,

Après avoir insérer le code dans un module standard (2), inséré votre forme (4) et clic droit sur la forme (5), à partir du menu "Affecter une macro", liez y la macro :

image

Cdlt,

Ça fonctionne parfaitement.

Merci.

Y a t'il un moyen de copier automatiquement le contenu d'uyne feuille, lorsque le nouvel onglet se créé ?

Cordialement,

Bonjour,

C'est possible via la méthode copy :

Sub CREER()
Dim NOM$
NOM = ActiveCell
Worksheets.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = NOM
End Sub

Cdlt,

Parfait.

Merci beaucoup..

J'ai une dernière question sur ce sujet : si au lieu de vouloir créer un onglet je souhaitais créer un nouveau fichier ? C'est possible ?

Et copier dans ce fichier une ligne d'un onglet d'un autre fichier ?

Désolé de ces questions, je débute ....

Cordialement,

Olivier

Bonjour,

Il existe pas mal de documentation sur le VBA à droite et à gauche. Cependant :

Sub CLASSEUR()
Dim WB_F As Workbook
Set WB_F = Workbooks.Add
ThisWorkbook.Worksheets("Feuil1").Rows(2).Copy WB_F.Worksheets("Feuil1").Rows(1)
End Sub

Cdlt,

Bonsoir Ergotamine,

Merci pour tout cela. Ça fonctionne bien, sauf la macro "copy".

Sub CREER()
Dim NOM$
NOM = ActiveCell
Worksheets.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = NOM
End Sub

Je ne sais pas où la mettre, puisqu'il y a déjà cette macro :

Sub CREER()
Dim NOM$
NOM = ActiveCell
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = NOM
End Sub

Je la mets à la place ?

En réalité", ce que je souhaite faire : lorsque le nouvel onglet se créé, au nom de la cellule active, je souhaiterai que le contenu d'un onglet intitulé "Matrice" se copie dedans. Cet onglet est dans la même feuille de calcul.

J'ai commencé à regarder des document sur VBA.

Bien cordialement,

Bonjour,

C'est plus simple lorsque vous expliquez ce que vous voulez en effet. Dans ce cas :

Sub CREER()
Dim NOM$
NOM = ActiveCell
Worksheets("Matrice").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = NOM
End Sub

Cdlt,

Ça marche très bien.

Je pense au temps passé à faire ces choses "à la main" ... je vais gagner un paquet de temps.

Merci beaucoup.

Bien cordialement,

Olivier

Juste une dernière question (sur ce sujet)

Si au moment ou se créée la nouvelle feuille de calcul, je souhaitais copier toute une ligne de la feuille d'origine (celle où se trouve le nom qui sert à nommer la feuille de calcul), comment ça modifie la macro ?

Bien cordialement,

Olivier

Bonjour,

Une version adaptée :

Sub CREER()
Dim NOM$, WS As Worksheet
Set WS = ActiveSheet
NOM = ActiveCell
Worksheets("Matrice").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = NOM
WS.Rows(1).Copy 'Ligne à copier
Worksheets(NOM).Rows(1).EntireRow.PasteSpecial 'Ligne de collage
End Sub

Cdlt,

Merci de ce retour.

Peut-on lui demander de copier automatiquement la ligne où se trouve l'active cell (qui donne soin nom à la feuille) ?

Bien cordialement,

Olivier

Bonjour,

Il serait opportun de donner tous les éléments dès le début afin que nous n'ayons pas à revoir le code 50 fois. Cependant :

Sub CREER()
Dim NOM$, WS As Worksheet, L&
Set WS = ActiveSheet
NOM = ActiveCell
L = ActiveCell.Row
Worksheets("Matrice").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = NOM
WS.Rows(L).Copy
Worksheets(NOM).Rows(1).EntireRow.PasteSpecial 'Ligne de collage
End Sub

Cdlt,

Oui, je ,'y ai pas pensé tout de suite, désolé.

Ça marche parfaitement.

Merci encore

Cordialement

Olivier

Bonjour,

Je me permet de vous poser directement la question, puisque vous connaissez le contexte.

J'ai donc des feuilles de calcul qui se créent automatiquement, en reproduisant une matrice, et en recopiant une ligne.

J'utilise la macro que vous avez créé, qui marche parfaitement

Dans chaque feuille de calcul créée, j'ai une série d'informations financières : un échéancier de paiement de fournisseur.

Du type : Nom du Fournisseur, Date de paiement, Montant à payer.

Je souhaite reporter ces information dans un tableau par mois.

Quels sont les Montants à payer en janvier et quel est le fournisseur ...

Quels sont les Montants à payer en février et quel est le fournisseur ... etc ....

Donc la formule est SI V375 est janvier, alors copier le contenu de C375 dans C1 de l'onglet "Trésorerie", D375 dans D1, E375 dans E1.

Ça, ce n'est pas très difficile.

1ere difficulté : après, 375 va devenir 376, c'est donc une variable, mais je n'arrive pas à faire la formule.

2eme difficulté, quand les informations financières se seront reportées, j'aurai les premières lignes de "Trésorerie" remplies.

Je vais changer de feuille de calcul, refaire les mêmes opérations, mais je ne sais pas indiquer qu'il faut se reporter sur la première ligne vide, à la suite de celles qui sont déjà remplies.

Je ne sais pas si je suis clair, et si ce que je souhaite faire est compliqué.

Si c'est compliqué, laissons tomber ... mais peut-être y a t-il une solution pas trop compliquée ...

Et tout cas, merci de votre temps.

Bien cordialement,

Olivier

Bonjour,

Je pense que vous devriez joindre un fichier représentatif car là j'ai beau essayer de reproduire votre demande sur un fichier, je n'y arrive pas (bien que je me souvienne de votre soucis initial). Anonymisez le, laissez quelques lignes avec des données chiffrées comme il n'y a que ça qui nous intéresse et nous verrons ce que nous pourrons faire.

Lorsque vous dites formules, c'est formule EXCEL ? Ou VBA ?

En vous remerciant par avance.

Cdlt,

Bonjour,

Merci pour votre retour.

Voici le fichier.

Je pensais à formule VBA (j'ai commencé à étudier le cours, mais ce que je souhaite faire est hors de ma portée pour un moment)

Les noms sont des faux pris dans un bouquin de science-fiction.

J'en profite pour corriger une erreur dans mon texte de tout à l'heure :

Donc la formule est SI V375 est janvier, alors copier le contenu de C375 dans AQ5 de l'onglet "COGS", D375 dans AR5, E375 dans AS5.

Ça, ce n'est pas très difficile.

1ere difficulté : après, 375 va devenir 376, c'est donc une variable, mais je n'arrive pas à faire la formule.

2eme difficulté, quand les informations financières se seront reportées, j'aurai les premières lignes de "COGS" remplies.

Je vais changer de feuille de calcul, refaire les mêmes opérations, mais je ne sais pas indiquer qu'il faut se reporter sur la première ligne vide, à la suite de celles qui sont déjà remplies.

Dans chaque onglet client j'ai donc un échéancier, je souhaite reclasser ces information par mois, pour chaque client à venir.

Idéalement, il faudrait un bouton sur lequel cliquer, une fois l'échéancier rempli, qui transfèrerait ces informations dans le fichier COGS.

Merci encore, et à votre disposition si ce n'est pas clair.

Bien cordialement,

Olivier

Bonjour,

J'imagine que ce que je demande est un peu compliqué

J'essaie d'avancer vers la solution.

J'ai créé la formule suivante :

Sub ReportDesDonnes()

ActiveSheet.Activate

If Cells(«V375»).Value = «janvier»

Then

Range («C375:E375»).copy Sheets(«COGS »).Range («AQ5:AS5»)

End If

End Sub

La cellule V375 comprend la date de paiement. Si c'est janvier, alors les lignes C375 à E375 se reportent sur AQ5 à AS5 de la feuille COGS.

Voyez-vous une erreur dans ma formule ? Il y a bien janvier dans V375, et pourtant rien ne se copie

Bien cordialement,

Olivier

Rechercher des sujets similaires à "creer feuille automatiquement"