Nom des feuilles excel automatique selon une cellule + compteur
MR682
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
MR682 Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
MR682 Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Tout d'abord mes meilleurs voeux pour cette nouvelle année.
N'étant pas très douée en macro, je fais appel à votre savoir.
J'aimerai une macro qui me permette de nommer automatiquement les feuilles selon un numéro de départ 'F201901' que j'ai indiquer dans la première feuille "N°factures!A1" pour que les suivantes deviennent F201902..03 etc. J'ai voulu ajouter la fonction qui évite la création de doublon mais je suis emmêlée les pinceaux
Voici mon bout de macro
je n'ai pas trouvé comment vous faire part de mon fichier excel
Merci pour votre retour
Tout d'abord mes meilleurs voeux pour cette nouvelle année.
N'étant pas très douée en macro, je fais appel à votre savoir.
J'aimerai une macro qui me permette de nommer automatiquement les feuilles selon un numéro de départ 'F201901' que j'ai indiquer dans la première feuille "N°factures!A1" pour que les suivantes deviennent F201902..03 etc. J'ai voulu ajouter la fonction qui évite la création de doublon mais je suis emmêlée les pinceaux
Voici mon bout de macro
' AjoutAutoFeuilles () Dim compteur As Integer compteur = 1 For compteur = 1 To Range("N°factures!A1").Value Sheets.Add For Each Worksheet In Worksheets If Worksheet.Name = "N°factures!A1" & compteur Then Application.DisplayAlerts = False Worksheet.Delete Application.DisplayAlerts = True End If Next Worksheet ActiveSheet.Name = "N°factures!A1" & compteur Next End Sub
je n'ai pas trouvé comment vous faire part de mon fichier excel
Merci pour votre retour
A voir également:
- Nom des feuilles excel automatique selon une cellule + compteur
- Compteur électrique - Guide
- Excel cellule couleur si condition texte - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Liste déroulante excel - Guide
- Proteger cellule excel - Guide
5 réponses
Bonjour,
Désolée je débute voici le lien https://www.cjoint.com/c/IAeharS0YXO Merci pour ta patience
Désolée je débute voici le lien https://www.cjoint.com/c/IAeharS0YXO Merci pour ta patience
Dans le fichier, j'ai les deux premières feuilles qui récapitule pour l'une les numéros de factures et l'autre l'ensemble des factures détaillées. Puis viennent les factures "F201901", F201902..j'aimerai qu'en créant la feuille suivante, le nom de la feuille se mette automatiquement en gardant l'ordre chronologique soit F201903 mais aussi, après réflexion, qu'elle se créée, en copiant le détail de la feuille F201901.
En espérant avoir été plus compréhensible
En espérant avoir été plus compréhensible
Re,
Il vous faut une feuille model qui sera recopiee avec les valeurs et le nom qu'il faudra dans la chronologie. Normalement pas besoin de la feuille N°factures. Le numero de prochaine facture pourrait etre ecrit en auto dans la cellule B16 du model. Il faudra aussi un bouton ou autre action pour faire cette recopie!!
Pourquoi feuille: F201901 et ailleurs N° facture: 2019-01
La feuille FACTURATION JANVIER 2019 sera remplie comment et a quoi sert-elle??
Il vous faut une feuille model qui sera recopiee avec les valeurs et le nom qu'il faudra dans la chronologie. Normalement pas besoin de la feuille N°factures. Le numero de prochaine facture pourrait etre ecrit en auto dans la cellule B16 du model. Il faudra aussi un bouton ou autre action pour faire cette recopie!!
Pourquoi feuille: F201901 et ailleurs N° facture: 2019-01
La feuille FACTURATION JANVIER 2019 sera remplie comment et a quoi sert-elle??
Re,
j'ai trouvé cette fonction vba qui fonctionne mais elle ne tient pas compte des n°déjà créer préalablement.
est-ce qu'il y a un moyen d'ajouter dans la fonction un compteur (en partant du n° de ma première "feuille 2019-01") ?
Sub Create()
'Updateby Extendoffice 20160704
Dim I As Long
Dim xNumber As Integer
Dim xName As String
Dim xActiveSheet As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Set xActiveSheet = ActiveSheet
xNumber = InputBox("Enter number of times to copy the current sheet")
For I = 1 To xNumber
xName = ActiveSheet.Name
xActiveSheet.Copy After:=ActiveWorkbook.Sheets(xName)
ActiveSheet.Name = "2019-" & I
Next
xActiveSheet.Activate
Application.ScreenUpdating = True
End Sub
c'est un fichier test ..F201901 => F=feuille et le n°de facture 201901
la feuille FACTURATION ve reprendre différentes information de toutes les factures créées
j'ai trouvé cette fonction vba qui fonctionne mais elle ne tient pas compte des n°déjà créer préalablement.
est-ce qu'il y a un moyen d'ajouter dans la fonction un compteur (en partant du n° de ma première "feuille 2019-01") ?
Sub Create()
'Updateby Extendoffice 20160704
Dim I As Long
Dim xNumber As Integer
Dim xName As String
Dim xActiveSheet As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Set xActiveSheet = ActiveSheet
xNumber = InputBox("Enter number of times to copy the current sheet")
For I = 1 To xNumber
xName = ActiveSheet.Name
xActiveSheet.Copy After:=ActiveWorkbook.Sheets(xName)
ActiveSheet.Name = "2019-" & I
Next
xActiveSheet.Activate
Application.ScreenUpdating = True
End Sub
c'est un fichier test ..F201901 => F=feuille et le n°de facture 201901
la feuille FACTURATION ve reprendre différentes information de toutes les factures créées
Bonjour,
Vous restez sur votre facon de voir, allons y:
Il faudrait ajouter des tests sur la saisie de l'inputbox, mais a vous de voir……...
Vous restez sur votre facon de voir, allons y:
Sub Create() 'Updateby Extendoffice 20160704 Dim I As Long Dim xNumber As Integer Dim xName As String Dim xActiveSheet As Worksheet On Error Resume Next Application.ScreenUpdating = False Num_depart = ActiveSheet.Range("B16") Num_depart = Split(Num_depart, "-") Ndep = CLng(Num_depart(1)) Set xActiveSheet = ActiveSheet xNumber = InputBox("Enter number of times to copy the current sheet") For I = Ndep To xNumber xName = ActiveSheet.Name xActiveSheet.Copy After:=ActiveWorkbook.Sheets(xName) With ActiveSheet .Name = "2019-" & Format(I, "00") .Range("B16") = .Name End With Next I xActiveSheet.Activate Application.ScreenUpdating = True Set xActiveSheet = Nothing End Sub
Il faudrait ajouter des tests sur la saisie de l'inputbox, mais a vous de voir……...
Bonjour,
En effet, code modifie:
En effet, code modifie:
Sub Create() 'Updateby Extendoffice 20160704 Dim I As Long Dim xNumber As Integer Dim xName As String Dim xActiveSheet As Worksheet On Error Resume Next Application.ScreenUpdating = False Num_depart = ActiveSheet.Range("B16") Num_depart = Split(Num_depart, "-") Ndep = CLng(Num_depart(1)) + 1 Set xActiveSheet = ActiveSheet xNumber = InputBox("Enter number of times to copy the current sheet") xNumber = xNumber + Ndep For I = Ndep To xNumber xName = ActiveSheet.Name xActiveSheet.Copy After:=ActiveWorkbook.Sheets(xName) With ActiveSheet .Name = "2019-" & Format(I, "00") .Range("B16") = .Name End With Next I xActiveSheet.Activate Application.ScreenUpdating = True Set xActiveSheet = Nothing End Sub
Bonjour,
Top je n'ai plus de doublon merci. Par contre, ça me crée deux feuilles au lieu d'une mais c'est gérable.
Et si je veux pousser l'automatisme...
Est-ce qu'il est possible de créer automatiquement le nombre de factures défini par la feuilles "N°factures" ? ex. : j'inscris les numéros de factures (2019-01..2019-02 jusuqu'à 2019-70, soit 70 factures) sur cette feuille de la cellule B1 à B70. Puis, via le clic du bouton qui se trouve sur la feuille de factures "modèle", les 70 factures se créées avec le nom de la feuille mis automatiquement ?
Top je n'ai plus de doublon merci. Par contre, ça me crée deux feuilles au lieu d'une mais c'est gérable.
Et si je veux pousser l'automatisme...
Est-ce qu'il est possible de créer automatiquement le nombre de factures défini par la feuilles "N°factures" ? ex. : j'inscris les numéros de factures (2019-01..2019-02 jusuqu'à 2019-70, soit 70 factures) sur cette feuille de la cellule B1 à B70. Puis, via le clic du bouton qui se trouve sur la feuille de factures "modèle", les 70 factures se créées avec le nom de la feuille mis automatiquement ?
Bonjour,
deux feuilles au lieu d'une
Plait-il??
Chez moi si 1: creation d'une seule feuille
et ainsi de suite
Numero en fonction de B1-B70 en auto sur clic bouton, pas de problème...
Suite:
une facon de faire:
deux feuilles au lieu d'une
Plait-il??
Chez moi si 1: creation d'une seule feuille
et ainsi de suite
Numero en fonction de B1-B70 en auto sur clic bouton, pas de problème...
Suite:
une facon de faire:
Sub Create() 'Updateby Extendoffice 20160704 Dim I As Long Dim xNumber As Integer Dim xName As String Dim xActiveSheet As Worksheet Dim Plage As Variant 'On Error Resume Next 'Application.ScreenUpdating = False With Worksheets("N°Facture") Plage = .Range("B1:B" & .Range("B" & Rows.Count).End(xlUp).Row) Nb = UBound(Plage) End With With Worksheets("Modéle") .Activate xName = .Name End With For n = 1 To Nb ActiveSheet.Copy After:=ActiveWorkbook.Sheets(xName) With ActiveSheet .Name = Plage(n, 1) .Range("B16") = .Name xName = .Name End With Next n xActiveSheet.Activate Application.ScreenUpdating = True Set xActiveSheet = Nothing End Sub
ok j'ai trouvé pour la protection de la feuille j'ai rajouté Unprotect et Protect (ci-dessous) par contre je n'arrive pas à enlever la dernière feuille supplémentaire 2019-070 (2)
Sub MacroavecfeuilleProtect()
ActiveSheet.Unprotect "ae2c"
'Updateby Extendoffice 20160704
Dim I As Long
Dim xNumber As Integer
Dim xName As String
Dim xActiveSheet As Worksheet
Dim Plage As Variant
'On Error Resume Next
'Application.ScreenUpdating = False
With Worksheets("N°Factures")
Plage = .Range("B1:B70" & .Range("B" & Rows.Count).End(xlUp).Row)
Nb = UBound(Plage)
End With
With Worksheets("MODELE")
.Activate
xName = .Name
End With
For n = 1 To Nb
ActiveSheet.Copy After:=ActiveWorkbook.Sheets(xName)
With ActiveSheet
.Name = Plage(n, 1)
.Range("B16") = .Name
xName = .Name
End With
Next n
xActiveSheet.Activate
Application.ScreenUpdating = True
Set xActiveSheet = Nothing
ActiveSheet.Protect "ae2c", True, True, True
End Sub
Sub MacroavecfeuilleProtect()
ActiveSheet.Unprotect "ae2c"
'Updateby Extendoffice 20160704
Dim I As Long
Dim xNumber As Integer
Dim xName As String
Dim xActiveSheet As Worksheet
Dim Plage As Variant
'On Error Resume Next
'Application.ScreenUpdating = False
With Worksheets("N°Factures")
Plage = .Range("B1:B70" & .Range("B" & Rows.Count).End(xlUp).Row)
Nb = UBound(Plage)
End With
With Worksheets("MODELE")
.Activate
xName = .Name
End With
For n = 1 To Nb
ActiveSheet.Copy After:=ActiveWorkbook.Sheets(xName)
With ActiveSheet
.Name = Plage(n, 1)
.Range("B16") = .Name
xName = .Name
End With
Next n
xActiveSheet.Activate
Application.ScreenUpdating = True
Set xActiveSheet = Nothing
ActiveSheet.Protect "ae2c", True, True, True
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour le lien, j'y ai mis mon fichier
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
'mon partage
https://mon-partage.fr/