VBA copier et nommer onglet sans doublon

Bonjour au forum,

Je copie une feuille et la nomme à la date du jour. (no problème)

- Seulement il peut arriver que j'aille à faire 2 ou 3 fois l'opération par jour, ce qui provoque

une erreur.

- Comment gérer cette erreur en ajoutant un indice au nom de la feuille ?

pour le moment, j'ai çà :

Sub test1()
    Sheets("RC").Copy After:=Sheets(1)
    ActiveSheet.Name = Format(Date, "dd-mm-yy")
End Sub

ce qui donne : 19-09-08

il faudrait pour une copie le même jour, par exemple :

19-09-08/2 ou 19-09-08(2)

et comment incrémenter cet indice ?

Bonne journée

Claude.

Bonjour,

Le caractère "/" n'est pas admis dans les noms de feuilles.

J'ai utilisé à la place le caractère "."

Tu peux essayer ça :

Sub test()
Dim k%, s$, z$
Sheets(3).Copy After:=Sheets(1)
z = Format(Date, "dd-mm-yy")
s = Sheets(3).Name
If Left(s, 8) = z Then
  Select Case Len(s)
  Case 8:  k = 1
  Case Else: k = CInt(Right(s, 1)) + 1
  End Select
End If
z = IIf(k > 0, z & "." & k, z)
Sheets(2).Name = z
End Sub

A+

re,

merci galopin01, mais je comprends pas le Sheets(3).Copy After:=Sheets(1)

C'est le Sheets("RC"), mon modèle que je dois copier à chaque fois.

au départ, je n'ai que cette feuille.

c'est pourquoi çà plante !

Claude.

Bonjour

modifie la macro de Galopin de cette façon:

Sub test()
Dim k%, s$, z$
Sheets("rc").Copy After:=Sheets(1)
z = Format(Date, "dd-mm-yy")
s = Sheets(3).Name
If Left(s, 8) = z Then
  Select Case Len(s)
  Case 8:  k = 1
  Case Else: k = CInt(Right(s, 1)) + 1
  End Select
End If
z = IIf(k > 0, z & "." & k, z)
Sheets(2).Name = z
End Sub

edit non il y a une autre erreur ma modif ne fonctionne pas!!!

Reedit la maintenant la macro fonctionne, mais je viens de voir que Galopin est revenu et je pense qu'il te donnera plus d'info

bonjour cb60 :

Sissi c'est bien ça, mais s'il n'y a qu'une feuille au départ, il faut gérer l'erreur la première fois puisqu'il n'y a pas de feuille 3 !

C'est l'inconvénient de ne pas avoir de classeur modèle...

Modifier la macro comme suit :

Sub test()
Dim k%, s$, z$
On Error Resume Next
Sheets("RC").Copy After:=Sheets(1)

...le reste sans changement

A+

re,

C'est parfait !

code final :

Sub test()
Dim k%, s$, z$
On Error Resume Next
    Sheets("RC").Copy After:=Sheets(1)
    z = Format(Date, "dd-mm-yy")
    s = Sheets(3).Name
    If Left(s, 8) = z Then
      Select Case Len(s)
      Case 8:  k = 2
      Case Else: k = CInt(Right(s, 1)) + 1
      End Select
    End If
    z = IIf(k > 0, z & "." & k, z)
    Sheets(2).Name = z
On Error GoTo 0
End Sub

merci, j'enregistre ce code dans mes tablettes !

Cordialement

Claude.

Rechercher des sujets similaires à "vba copier nommer onglet doublon"