Avec la macro suivante reli=E9e =E0 un bouton de commande sur la feuille
excel, je rajoute une page identique =E0 la suite de la feuille active.:
Sub AjoutFeuille()
ActiveSheet.Select
ActiveSheet.Copy After:=3DActiveSheet
End Sub
Cependant, j'aimerais qu'elle porte le nom et le num=E9ro suivant de la
page qu'elle vient de copier. Par exemple: par d=E9faut, j'ai la Page 1,
Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page
3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5
etc....
Avec le bout de code ci-dessous : Sub AjoutFeuille() 'Récupération du plus grand numéro For Each sh In Worksheets hgdf = sh.Name monNom = Val(Right(sh.Name, Len(sh.Name) - InStr(sh.Name, " "))) If monNom > x Then x = monNom Next 'Copie de la feuille et renomage monNom = ActiveSheet.Name ActiveSheet.Copy After:¬tiveSheet ActiveSheet.Name = "Page " & x + 1 End Sub
Cordialement,
F.
Salut,
Avec le bout de code ci-dessous :
Sub AjoutFeuille()
'Récupération du plus grand numéro
For Each sh In Worksheets
hgdf = sh.Name
monNom = Val(Right(sh.Name, Len(sh.Name) - InStr(sh.Name, "
")))
If monNom > x Then x = monNom
Next
'Copie de la feuille et renomage
monNom = ActiveSheet.Name
ActiveSheet.Copy After:=ActiveSheet
ActiveSheet.Name = "Page " & x + 1
End Sub
Avec le bout de code ci-dessous : Sub AjoutFeuille() 'Récupération du plus grand numéro For Each sh In Worksheets hgdf = sh.Name monNom = Val(Right(sh.Name, Len(sh.Name) - InStr(sh.Name, " "))) If monNom > x Then x = monNom Next 'Copie de la feuille et renomage monNom = ActiveSheet.Name ActiveSheet.Copy After:¬tiveSheet ActiveSheet.Name = "Page " & x + 1 End Sub
Cordialement,
F.
LSteph
Bonjour,
En préalable nommer l'onglet de la première feuille du lot ainsi Page0001 dans le code de la feuille attacher au bouton (vbcontrols) le code suivant
Private Sub CommandButton1_Click() call ajout end sub
Dans un module standard le code suivant:
Sub ajout() Dim mynum As Integer Application.DisplayAlerts = False With ActiveSheet mynum = CInt(Right(.Name, 4)) .Copy after:=Sheets(.Name) End With Application.DisplayAlerts = True ActiveSheet.Name = "Page" & Format(mynum + 1, "0000") End Sub
'lSteph
On 25 jan, 14:06, Denys wrote:
Bonjour,
Avec la macro suivante reliée à un bouton de commande sur la feuille excel, je rajoute une page identique à la suite de la feuille active.:
Sub AjoutFeuille() ActiveSheet.Select ActiveSheet.Copy After:¬tiveSheet End Sub
Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1, Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page 3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5 etc....
Z'auriez une idée ???
Merci pour votre temps
Denys
Bonjour,
En préalable nommer l'onglet de la première feuille du lot ainsi
Page0001
dans le code de la feuille attacher au bouton (vbcontrols) le code
suivant
Private Sub CommandButton1_Click()
call ajout
end sub
Dans un module standard le code suivant:
Sub ajout()
Dim mynum As Integer
Application.DisplayAlerts = False
With ActiveSheet
mynum = CInt(Right(.Name, 4))
.Copy after:=Sheets(.Name)
End With
Application.DisplayAlerts = True
ActiveSheet.Name = "Page" & Format(mynum + 1, "0000")
End Sub
'lSteph
On 25 jan, 14:06, Denys <denys.perrea...@rbc.com> wrote:
Bonjour,
Avec la macro suivante reliée à un bouton de commande sur la feuille
excel, je rajoute une page identique à la suite de la feuille active.:
Sub AjoutFeuille()
ActiveSheet.Select
ActiveSheet.Copy After:=ActiveSheet
End Sub
Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la
page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1,
Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page
3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5
etc....
En préalable nommer l'onglet de la première feuille du lot ainsi Page0001 dans le code de la feuille attacher au bouton (vbcontrols) le code suivant
Private Sub CommandButton1_Click() call ajout end sub
Dans un module standard le code suivant:
Sub ajout() Dim mynum As Integer Application.DisplayAlerts = False With ActiveSheet mynum = CInt(Right(.Name, 4)) .Copy after:=Sheets(.Name) End With Application.DisplayAlerts = True ActiveSheet.Name = "Page" & Format(mynum + 1, "0000") End Sub
'lSteph
On 25 jan, 14:06, Denys wrote:
Bonjour,
Avec la macro suivante reliée à un bouton de commande sur la feuille excel, je rajoute une page identique à la suite de la feuille active.:
Sub AjoutFeuille() ActiveSheet.Select ActiveSheet.Copy After:¬tiveSheet End Sub
Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1, Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page 3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5 etc....
Avec la macro suivante reliée à un bouton de commande sur la feuille excel, je rajoute une page identique à la suite de la feuille active.:
Sub AjoutFeuille() ActiveSheet.Select ActiveSheet.Copy After:¬tiveSheet End Sub
Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1, Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page 3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5 etc....
Avec la macro suivante reliée à un bouton de commande sur la feuille
excel, je rajoute une page identique à la suite de la feuille active.:
Sub AjoutFeuille()
ActiveSheet.Select
ActiveSheet.Copy After:¬tiveSheet
End Sub
Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la
page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1,
Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page
3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5
etc....
Avec la macro suivante reliée à un bouton de commande sur la feuille excel, je rajoute une page identique à la suite de la feuille active.:
Sub AjoutFeuille() ActiveSheet.Select ActiveSheet.Copy After:¬tiveSheet End Sub
Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1, Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page 3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5 etc....
Z'auriez une idée ???
Merci pour votre temps
Denys
michdenis
Bonjour,
Il y a aussi ceci :
Ceci suppose qu'il n'y a pas déjà une feuille portant cet index. La fonction Split() requiert Excel 2000 ou plus récent.
'----------------------------------- Sub test() Application.ScreenUpdating = False With ActiveSheet X = Split(.Name, " ") .Copy after:=Sheets(.Index) With ActiveSheet .Name = X(0) & " " & X(1) + 1 End With .Activate End With Application.ScreenUpdating = True End Sub '-----------------------------------
"Denys" a écrit dans le message de groupe de discussion :
Bonjour,
Avec la macro suivante reliée à un bouton de commande sur la feuille excel, je rajoute une page identique à la suite de la feuille active.:
Sub AjoutFeuille() ActiveSheet.Select ActiveSheet.Copy After:¬tiveSheet End Sub
Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1, Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page 3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5 etc....
Z'auriez une idée ???
Merci pour votre temps
Denys
Bonjour,
Il y a aussi ceci :
Ceci suppose qu'il n'y a pas déjà une feuille portant
cet index.
La fonction Split() requiert Excel 2000 ou plus récent.
'-----------------------------------
Sub test()
Application.ScreenUpdating = False
With ActiveSheet
X = Split(.Name, " ")
.Copy after:=Sheets(.Index)
With ActiveSheet
.Name = X(0) & " " & X(1) + 1
End With
.Activate
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------
"Denys" <denys.perreault@rbc.com> a écrit dans le message de groupe de discussion :
fe40956a-9168-4df5-92b4-b33485caa8ef@h34g2000yqm.googlegroups.com...
Bonjour,
Avec la macro suivante reliée à un bouton de commande sur la feuille
excel, je rajoute une page identique à la suite de la feuille active.:
Sub AjoutFeuille()
ActiveSheet.Select
ActiveSheet.Copy After:¬tiveSheet
End Sub
Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la
page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1,
Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page
3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5
etc....
Ceci suppose qu'il n'y a pas déjà une feuille portant cet index. La fonction Split() requiert Excel 2000 ou plus récent.
'----------------------------------- Sub test() Application.ScreenUpdating = False With ActiveSheet X = Split(.Name, " ") .Copy after:=Sheets(.Index) With ActiveSheet .Name = X(0) & " " & X(1) + 1 End With .Activate End With Application.ScreenUpdating = True End Sub '-----------------------------------
"Denys" a écrit dans le message de groupe de discussion :
Bonjour,
Avec la macro suivante reliée à un bouton de commande sur la feuille excel, je rajoute une page identique à la suite de la feuille active.:
Sub AjoutFeuille() ActiveSheet.Select ActiveSheet.Copy After:¬tiveSheet End Sub
Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1, Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page 3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5 etc....
Z'auriez une idée ???
Merci pour votre temps
Denys
LSteph
A noter que
> Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page
Non! si tu copie la feuille le bouton est recopié sur la feuille suivante.
Ceci fait selon ta demande t'obligera à vérifier que tu es sur la dernière créée car si tu reviens sur la feuille d'avant en fait c'est le principe même de vouloir recreer sur activesheetqui n'est n'est pas fâmeux car si Page0002 par exemple existe peut etre déjà ...etc..tu auras une erreur.
Une alternative consisterait à utiliser le doubleclic ou un bouton de la barre d'outil et de copier depuis sheets(sheets.count) mais là encore l'ordre des feuilles pourra avoir été modifié.
Si ton classeur ne contient que des "Page000n" une autre idée serait de boucler toutes les feuilles à chaque fois qu'on en insère une et les renumeroter .
'lSteph
On 25 jan, 14:39, LSteph wrote:
Bonjour,
En préalable nommer l'onglet de la première feuille du lot ainsi Page0001 dans le code de la feuille attacher au bouton (vbcontrols) le code suivant
Private Sub CommandButton1_Click() call ajout end sub
Dans un module standard le code suivant:
Sub ajout() Dim mynum As Integer Application.DisplayAlerts = False With ActiveSheet mynum = CInt(Right(.Name, 4)) .Copy after:=Sheets(.Name) End With Application.DisplayAlerts = True ActiveSheet.Name = "Page" & Format(mynum + 1, "0000") End Sub
'lSteph
On 25 jan, 14:06, Denys wrote:
> Bonjour,
> Avec la macro suivante reliée à un bouton de commande sur la feuill e > excel, je rajoute une page identique à la suite de la feuille active. :
> Sub AjoutFeuille() > ActiveSheet.Select > ActiveSheet.Copy After:¬tiveSheet > End Sub
> Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la > page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1 , > Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page > 3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5 > etc....
> Z'auriez une idée ???
> Merci pour votre temps
> Denys- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
A noter que
> Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page
Non! si tu copie la feuille le bouton est recopié sur la feuille
suivante.
Ceci fait selon ta demande t'obligera à vérifier que tu es sur la
dernière créée
car si tu reviens sur la feuille d'avant en fait c'est le principe
même de vouloir recreer sur activesheetqui n'est n'est pas fâmeux
car si Page0002 par exemple existe peut etre déjà ...etc..tu auras une
erreur.
Une alternative consisterait à utiliser le doubleclic ou un bouton de
la barre d'outil et
de copier depuis sheets(sheets.count) mais là encore
l'ordre des feuilles pourra avoir été modifié.
Si ton classeur ne contient que des "Page000n"
une autre idée serait de boucler toutes les feuilles à chaque fois
qu'on en insère une et les renumeroter .
'lSteph
On 25 jan, 14:39, LSteph <gmlst...@gmail.com> wrote:
Bonjour,
En préalable nommer l'onglet de la première feuille du lot ainsi
Page0001
dans le code de la feuille attacher au bouton (vbcontrols) le code
suivant
Private Sub CommandButton1_Click()
call ajout
end sub
Dans un module standard le code suivant:
Sub ajout()
Dim mynum As Integer
Application.DisplayAlerts = False
With ActiveSheet
mynum = CInt(Right(.Name, 4))
.Copy after:=Sheets(.Name)
End With
Application.DisplayAlerts = True
ActiveSheet.Name = "Page" & Format(mynum + 1, "0000")
End Sub
'lSteph
On 25 jan, 14:06, Denys <denys.perrea...@rbc.com> wrote:
> Bonjour,
> Avec la macro suivante reliée à un bouton de commande sur la feuill e
> excel, je rajoute une page identique à la suite de la feuille active. :
> Sub AjoutFeuille()
> ActiveSheet.Select
> ActiveSheet.Copy After:=ActiveSheet
> End Sub
> Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la
> page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1 ,
> Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page
> 3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5
> etc....
> Z'auriez une idée ???
> Merci pour votre temps
> Denys- Masquer le texte des messages précédents -
> Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page
Non! si tu copie la feuille le bouton est recopié sur la feuille suivante.
Ceci fait selon ta demande t'obligera à vérifier que tu es sur la dernière créée car si tu reviens sur la feuille d'avant en fait c'est le principe même de vouloir recreer sur activesheetqui n'est n'est pas fâmeux car si Page0002 par exemple existe peut etre déjà ...etc..tu auras une erreur.
Une alternative consisterait à utiliser le doubleclic ou un bouton de la barre d'outil et de copier depuis sheets(sheets.count) mais là encore l'ordre des feuilles pourra avoir été modifié.
Si ton classeur ne contient que des "Page000n" une autre idée serait de boucler toutes les feuilles à chaque fois qu'on en insère une et les renumeroter .
'lSteph
On 25 jan, 14:39, LSteph wrote:
Bonjour,
En préalable nommer l'onglet de la première feuille du lot ainsi Page0001 dans le code de la feuille attacher au bouton (vbcontrols) le code suivant
Private Sub CommandButton1_Click() call ajout end sub
Dans un module standard le code suivant:
Sub ajout() Dim mynum As Integer Application.DisplayAlerts = False With ActiveSheet mynum = CInt(Right(.Name, 4)) .Copy after:=Sheets(.Name) End With Application.DisplayAlerts = True ActiveSheet.Name = "Page" & Format(mynum + 1, "0000") End Sub
'lSteph
On 25 jan, 14:06, Denys wrote:
> Bonjour,
> Avec la macro suivante reliée à un bouton de commande sur la feuill e > excel, je rajoute une page identique à la suite de la feuille active. :
> Sub AjoutFeuille() > ActiveSheet.Select > ActiveSheet.Copy After:¬tiveSheet > End Sub
> Cependant, j'aimerais qu'elle porte le nom et le numéro suivant de la > page qu'elle vient de copier. Par exemple: par défaut, j'ai la Page 1 , > Page 2 et Page 3. Le bouton de commande ne se trouve que sur la Page > 3...et bien, j'aimerais que la suivante se nomme Page 4, Page 5 > etc....
> Z'auriez une idée ???
> Merci pour votre temps
> Denys- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Denys
Wow !!!!!
Merci tout le monde.....vous êtes vraiment gentils !!!
Bonne journée
Denys
Wow !!!!!
Merci tout le monde.....vous êtes vraiment gentils !!!