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

Date la création d'onglet

3 réponses
Avatar
jp
Bonjour,

J'utilise une macro qui me cr=E9=E9e des onglets dont le nombre est
variable.
Je souhaiterai que s'affiche en D1 la date se trouvant en A2 de la
feuille edibase pour le premier onglet cr=E9=E9 et en suivant le deuxi=E8me
onglet cr=E9=E9 reprenne la valeur de B2 de la feuille edibase et la
place en D1, etc... etc..
Que fa
La macro est la suivante:
Sub Extrait()
Sheets("edibase").Select
For Each c In Range("a2", [a365].End(xlUp)) ' pour chaque jour
On Error Resume Next
Sheets(c.Value).Select ' la feuille existe t-
elle?
If Err <> 0 Then
Sheets("Mod=E8le").Copy After:=3DSheets(Sheets.Count) ' cr=E9ation
ActiveSheet.Name =3D Format(c.Value, "dd-mm-yy")
End If
Next c
End Sub

3 réponses

Avatar
Jacques ALARDET
Bonjour,

Si je comprends, tu veux pouvoir créer jusqu'à 365 onglets dans ton classeur
?

Ca me fait peur rien que d'y penser

J'aurais lancer la boucle suivante
with Sheets("edibase")
For I = 1 to 365
If isempty(.cells(1,I+1)) then exit for
'ici tu mets le code pour créer l'onglet s'il n'existe pas
range("D1") = .cells(1,I+1)
next
end with

A tester

"jp" a écrit dans le message de
news:
Bonjour,

J'utilise une macro qui me créée des onglets dont le nombre est
variable.
Je souhaiterai que s'affiche en D1 la date se trouvant en A2 de la
feuille edibase pour le premier onglet créé et en suivant le deuxième
onglet créé reprenne la valeur de B2 de la feuille edibase et la
place en D1, etc... etc..
Que fa
La macro est la suivante:
Sub Extrait()
Sheets("edibase").Select
For Each c In Range("a2", [a365].End(xlUp)) ' pour chaque jour
On Error Resume Next
Sheets(c.Value).Select ' la feuille existe t-
elle?
If Err <> 0 Then
Sheets("Modèle").Copy After:=Sheets(Sheets.Count) ' création
ActiveSheet.Name = Format(c.Value, "dd-mm-yy")
End If
Next c
End Sub
Avatar
jp
Bonjour Jacques,

Je ne souhaite pas créer 365 onglets. Ce serait le cas extreme
d'autant qu'il me semble que le maximum est 256.
Je ne souhaite pas non plus une nouvelle macro, je voudrais seulement
la ligne, l'instruction qui me permetra de reporter la date en D1 sous
la forme Lundi 05 mai 2008. Cette première date se trouve en A2 sur la
feuille edibase.
Désolé, mais ta proposition ne correspond pas à mon attente.

JP

On 3 mai, 08:00, "Jacques ALARDET" wrote:
Bonjour,

Si je comprends, tu veux pouvoir créer jusqu'à 365 onglets dans ton cl asseur
?

Ca me fait peur rien que d'y penser

J'aurais lancer la boucle suivante
 with Sheets("edibase")
    For I = 1 to 365
               If isempty(.cells(1,I+1)) then exit for
'ici tu mets le code pour créer l'onglet s'il n'existe pas
                range("D1") = .cells(1,I+1)
    next
end with

A tester

"jp" a écrit dans le message denews:07c634ad
Bonjour,

J'utilise une macro qui me créée des onglets dont le nombre est
variable.
Je souhaiterai que s'affiche en D1 la date se trouvant en A2 de la
feuille edibase pour le premier onglet créé et en suivant le deuxièm e
onglet créé reprenne la valeur de B2 de la feuille edibase  et la
place en D1, etc... etc..
Que fa
La macro est la suivante:
Sub Extrait()
  Sheets("edibase").Select
  For Each c In Range("a2", [a365].End(xlUp))   ' pour chaque jour
     On Error Resume Next
     Sheets(c.Value).Select                 ' la feu ille existe t-
elle?
     If Err <> 0 Then
      Sheets("Modèle").Copy After:=Sheets(Sheets.Count)   ' cr éation
      ActiveSheet.Name = Format(c.Value, "dd-mm-yy")
        End If
   Next c
End Sub


Avatar
JB
Bonjour,

Sub Extrait()
Sheets("edibase").Select
For Each c In Range("a2", [a365].End(xlUp)) ' pour chaque jour
On Error Resume Next
Sheets(c.Value).Select
If Err <> 0 Then
Sheets("Modèle").Copy After:=Sheets(Sheets.Count) ' création
ActiveSheet.Name = Format(c.Value, "dd-mm-yy")
[D1] = c.Offset(0, 1)
End If
Next c
End Sub

JB
http://boisgontierjacques.free.fr/
On 3 mai, 07:45, jp wrote:
Bonjour,

J'utilise une macro qui me créée des onglets dont le nombre est
variable.
Je souhaiterai que s'affiche en D1 la date se trouvant en A2 de la
feuille edibase pour le premier onglet créé et en suivant le deuxièm e
onglet créé reprenne la valeur de B2 de la feuille edibase  et la
place en D1, etc... etc..
Que fa
La macro est la suivante:
Sub Extrait()
  Sheets("edibase").Select
  For Each c In Range("a2", [a365].End(xlUp))   ' pour chaque jour
     On Error Resume Next
     Sheets(c.Value).Select                 ' la feu ille existe t-
elle?
     If Err <> 0 Then
      Sheets("Modèle").Copy After:=Sheets(Sheets.Count)   ' cr éation
      ActiveSheet.Name = Format(c.Value, "dd-mm-yy")
        End If
   Next c
End Sub