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

Date automatique

7 réponses
Avatar
Tibert
Bonjour ;
Je cherche une solution ou formule, j’ai une macro qui me copie une feuille
et dans cette nouvelle feuille active, je souhait insérer une date
automatiquement en (B5) en allant chercher dans une feuille nommé « Date »
plage (A1 :A56) et cette date doit être la première date supérieur de la
cellule (B5) de la feuille précédent.
Exemple : si lors de la copie la feuille précédente utilise la (22/01/2007)
sur ma nouvelle copie je devrais avoir (29/01/2007) et ainsi de suite.
Bon noël
Salutations

01/01/2007
08/01/2007
15/01/2007
22/01/2007
29/01/2007
05/02/2007
12/02/2007
19/02/2007
26/02/2007
05/03/2007
12/03/2007
19/03/2007

7 réponses

Avatar
cousinhub
Bonsoir,
n'étant pas nombreux à passer le réveillon devant l'écran, je te propose une
piste :
à la création de ta feuille, tu prends la première date de ton onglet
"dates", puis tu supprimes cette cellule.
ensuite, à chaque nouvelle création, tu auras donc la suivante
par exemple :
ActiveSheet.Range("b5") = Sheets("Date").Range("a1")
Sheets("Date").Range("A1").Delete Shift:=xlUp
Meilleurs voeux

"Tibert" a écrit dans le message de news:

Bonjour ;
Je cherche une solution ou formule, j'ai une macro qui me copie une
feuille
et dans cette nouvelle feuille active, je souhait insérer une date
automatiquement en (B5) en allant chercher dans une feuille nommé « Date »
plage (A1 :A56) et cette date doit être la première date supérieur de la
cellule (B5) de la feuille précédent.
Exemple : si lors de la copie la feuille précédente utilise la
(22/01/2007)
sur ma nouvelle copie je devrais avoir (29/01/2007) et ainsi de suite.
Bon noël
Salutations

01/01/2007
08/01/2007
15/01/2007
22/01/2007
29/01/2007
05/02/2007
12/02/2007
19/02/2007
26/02/2007
05/03/2007
12/03/2007
19/03/2007




Avatar
cousinhub
Une autre solution, sans supprimer la cellule, mais en indiquant dans ta
base "Date", que la semaine a été créée :
Ps : pour cela, commence ton semainier en A2 (tu mets par exemple DATES dans
la cellule A1)
En supposant que la colonne B soit vide (pour y inscrire que la semaine a
été créée)

ActiveSheet.Range("B5") =
Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"

Bon courage

"Tibert" a écrit dans le message de news:

Bonjour ;
Je cherche une solution ou formule, j'ai une macro qui me copie une
feuille
et dans cette nouvelle feuille active, je souhait insérer une date
automatiquement en (B5) en allant chercher dans une feuille nommé « Date »
plage (A1 :A56) et cette date doit être la première date supérieur de la
cellule (B5) de la feuille précédent.
Exemple : si lors de la copie la feuille précédente utilise la
(22/01/2007)
sur ma nouvelle copie je devrais avoir (29/01/2007) et ainsi de suite.
Bon noël
Salutations

01/01/2007
08/01/2007
15/01/2007
22/01/2007
29/01/2007
05/02/2007
12/02/2007
19/02/2007
26/02/2007
05/03/2007
12/03/2007
19/03/2007




Avatar
Tibert
Bonjour ;
Je te remercie pour le code en utilisant le deuxième, ça fonctionne, mais
pas avec le code que j’ai mis dans le module de ma feuille pour nommé ma
feuille avec ses deux cellules B5&B6 y’aurait il une solution pour utiliser
ton code et garder le code de module de feuille pour nommé ma feuille.
Sa bogue sur la troisième ligne
Salutations
________________________________________
Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [B5:B6]) Is Nothing Then Exit Sub
ActiveSheet.Name = Format([B5], " dd mmm ") & " au " & Format([B6], " dd mmm")
End Sub
************************************************************


Une autre solution, sans supprimer la cellule, mais en indiquant dans ta
base "Date", que la semaine a été créée :
Ps : pour cela, commence ton semainier en A2 (tu mets par exemple DATES dans
la cellule A1)
En supposant que la colonne B soit vide (pour y inscrire que la semaine a
été créée)

ActiveSheet.Range("B5") =
Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"

Bon courage

"Tibert" a écrit dans le message de news:

Bonjour ;
Je cherche une solution ou formule, j'ai une macro qui me copie une
feuille
et dans cette nouvelle feuille active, je souhait insérer une date
automatiquement en (B5) en allant chercher dans une feuille nommé « Date »
plage (A1 :A56) et cette date doit être la première date supérieur de la
cellule (B5) de la feuille précédent.
Exemple : si lors de la copie la feuille précédente utilise la
(22/01/2007)
sur ma nouvelle copie je devrais avoir (29/01/2007) et ainsi de suite.
Bon noël
Salutations

01/01/2007
08/01/2007
15/01/2007
22/01/2007
29/01/2007
05/02/2007
12/02/2007
19/02/2007
26/02/2007
05/03/2007
12/03/2007
19/03/2007









Avatar
cousinhub
Re-,
l'inconvénient, avec l'évènement Woksheet_Change, c'est que tu devras le
recopier dans
chaque module de nouvelle feuille.
Si tu veux, par macro, tu insères une feuille, tu mets les dates dans les
cases B5 et B6,
et tu nommes en même temps ton onglet.
Si tu veux garder l'évènement, supprimes la ligne : ActiveSheet.Name =
......

Sub essai()
Sheets.Add
ActiveSheet.Range("B5") =
Format(Sheets("Date").[B65000].End(xlUp).Offset(1, -1), " dd mmm ")
ActiveSheet.Range("B6") =
Format(Sheets("Date").[B65000].End(xlUp).Offset(2, -1), " dd mmm")
ActiveSheet.Name =
Format(Sheets("Date").[B65000].End(xlUp).Offset(1, -1), " dd mmm ") & _
" au " & Format(Sheets("Date").[B65000].End(xlUp).Offset(2, -1), "
dd mmm")
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"
Sheets("date").Select
End Sub
Bonne soirée

"Tibert" a écrit dans le message de news:

Bonjour ;
Je te remercie pour le code en utilisant le deuxième, ça fonctionne, mais
pas avec le code que j'ai mis dans le module de ma feuille pour nommé ma
feuille avec ses deux cellules B5&B6 y'aurait il une solution pour
utiliser
ton code et garder le code de module de feuille pour nommé ma feuille.
Sa bogue sur la troisième ligne
Salutations
________________________________________
Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [B5:B6]) Is Nothing Then Exit Sub
ActiveSheet.Name = Format([B5], " dd mmm ") & " au " & Format([B6], " dd
mmm")
End Sub
************************************************************


Une autre solution, sans supprimer la cellule, mais en indiquant dans ta
base "Date", que la semaine a été créée :
Ps : pour cela, commence ton semainier en A2 (tu mets par exemple DATES
dans
la cellule A1)
En supposant que la colonne B soit vide (pour y inscrire que la semaine a
été créée)

ActiveSheet.Range("B5") >> Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"

Bon courage

"Tibert" a écrit dans le message de
news:

Bonjour ;
Je cherche une solution ou formule, j'ai une macro qui me copie une
feuille
et dans cette nouvelle feuille active, je souhait insérer une date
automatiquement en (B5) en allant chercher dans une feuille nommé «
Date »
plage (A1 :A56) et cette date doit être la première date supérieur de
la
cellule (B5) de la feuille précédent.
Exemple : si lors de la copie la feuille précédente utilise la
(22/01/2007)
sur ma nouvelle copie je devrais avoir (29/01/2007) et ainsi de suite.
Bon noël
Salutations

01/01/2007
08/01/2007
15/01/2007
22/01/2007
29/01/2007
05/02/2007
12/02/2007
19/02/2007
26/02/2007
05/03/2007
12/03/2007
19/03/2007











Avatar
Tibert
Salut : cousinhub
Après plusieurs essais j’utilise le deuxième code (ci-dessous) en macro que
je rajoute dans ma macro (AjoutFeuille) et sa fonctionne bien, par compte ma
feuille (Date) est protéger et sa bloque à la deuxième ligne du « Sub
Datefeuille » et je ne sais pas comment résoudre le problème en faisant
simple, car je peux refaire une macro qui déprotége tout le classeur et une
autre qui protége mais sa me paraît lourd, alors si tu as plus simple.
Salutations.

________________________________________
Sub Datefeuille()
ActiveSheet.Range("B5") = Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine crée"
End Sub
________________________________________
Sub AjoutFeuille ()
' Macro pour copie de feuille en fin de classeur
Dim Nom As String, Nb As Integer
Nom = ActiveSheet.Name
Nb = Sheets.Count
ActiveSheet.Copy After:=Sheets(Nb)
Call Datefeuille
End Sub
________________________________________



Re-,
l'inconvénient, avec l'évènement Woksheet_Change, c'est que tu devras le
recopier dans
chaque module de nouvelle feuille.
Si tu veux, par macro, tu insères une feuille, tu mets les dates dans les
cases B5 et B6,
et tu nommes en même temps ton onglet.
Si tu veux garder l'évènement, supprimes la ligne : ActiveSheet.Name =
.......

Sub essai()
Sheets.Add
ActiveSheet.Range("B5") =
Format(Sheets("Date").[B65000].End(xlUp).Offset(1, -1), " dd mmm ")
ActiveSheet.Range("B6") =
Format(Sheets("Date").[B65000].End(xlUp).Offset(2, -1), " dd mmm")
ActiveSheet.Name =
Format(Sheets("Date").[B65000].End(xlUp).Offset(1, -1), " dd mmm ") & _
" au " & Format(Sheets("Date").[B65000].End(xlUp).Offset(2, -1), "
dd mmm")
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"
Sheets("date").Select
End Sub
Bonne soirée

"Tibert" a écrit dans le message de news:

Bonjour ;
Je te remercie pour le code en utilisant le deuxième, ça fonctionne, mais
pas avec le code que j'ai mis dans le module de ma feuille pour nommé ma
feuille avec ses deux cellules B5&B6 y'aurait il une solution pour
utiliser
ton code et garder le code de module de feuille pour nommé ma feuille.
Sa bogue sur la troisième ligne
Salutations
________________________________________
Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [B5:B6]) Is Nothing Then Exit Sub
ActiveSheet.Name = Format([B5], " dd mmm ") & " au " & Format([B6], " dd
mmm")
End Sub
************************************************************


Une autre solution, sans supprimer la cellule, mais en indiquant dans ta
base "Date", que la semaine a été créée :
Ps : pour cela, commence ton semainier en A2 (tu mets par exemple DATES
dans
la cellule A1)
En supposant que la colonne B soit vide (pour y inscrire que la semaine a
été créée)

ActiveSheet.Range("B5") > >> Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"

Bon courage

"Tibert" a écrit dans le message de
news:

Bonjour ;
Je cherche une solution ou formule, j'ai une macro qui me copie une
feuille
et dans cette nouvelle feuille active, je souhait insérer une date
automatiquement en (B5) en allant chercher dans une feuille nommé «
Date »
plage (A1 :A56) et cette date doit être la première date supérieur de
la
cellule (B5) de la feuille précédent.
Exemple : si lors de la copie la feuille précédente utilise la
(22/01/2007)
sur ma nouvelle copie je devrais avoir (29/01/2007) et ainsi de suite.
Bon noël
Salutations

01/01/2007
08/01/2007
15/01/2007
22/01/2007
29/01/2007
05/02/2007
12/02/2007
19/02/2007
26/02/2007
05/03/2007
12/03/2007
19/03/2007
















Avatar
cousinhub
Bonjour,
tu déprotèges ta feuille juste avant l'exécution de ton code et tu la
reprotèges ensuite :

ActiveSheet.Range("B5") = Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("date").Unprotect Password:="toto" 'selon le mot de passe que tu as
défini
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine crée"
Sheets("date").Protect Password:="toto"
Joyeux Noël

"Tibert" a écrit dans le message de news:

Salut : cousinhub
Après plusieurs essais j'utilise le deuxième code (ci-dessous) en macro
que
je rajoute dans ma macro (AjoutFeuille) et sa fonctionne bien, par compte
ma
feuille (Date) est protéger et sa bloque à la deuxième ligne du « Sub
Datefeuille » et je ne sais pas comment résoudre le problème en faisant
simple, car je peux refaire une macro qui déprotége tout le classeur et
une
autre qui protége mais sa me paraît lourd, alors si tu as plus simple.
Salutations.

________________________________________
Sub Datefeuille()
ActiveSheet.Range("B5") = Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine crée"
End Sub
________________________________________
Sub AjoutFeuille ()
' Macro pour copie de feuille en fin de classeur
Dim Nom As String, Nb As Integer
Nom = ActiveSheet.Name
Nb = Sheets.Count
ActiveSheet.Copy After:=Sheets(Nb)
Call Datefeuille
End Sub
________________________________________



Re-,
l'inconvénient, avec l'évènement Woksheet_Change, c'est que tu devras le
recopier dans
chaque module de nouvelle feuille.
Si tu veux, par macro, tu insères une feuille, tu mets les dates dans les
cases B5 et B6,
et tu nommes en même temps ton onglet.
Si tu veux garder l'évènement, supprimes la ligne : ActiveSheet.Name >> .......

Sub essai()
Sheets.Add
ActiveSheet.Range("B5") >> Format(Sheets("Date").[B65000].End(xlUp).Offset(1, -1), " dd mmm ")
ActiveSheet.Range("B6") >> Format(Sheets("Date").[B65000].End(xlUp).Offset(2, -1), " dd mmm")
ActiveSheet.Name >> Format(Sheets("Date").[B65000].End(xlUp).Offset(1, -1), " dd mmm ") & _
" au " & Format(Sheets("Date").[B65000].End(xlUp).Offset(2, -1),
"
dd mmm")
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"
Sheets("date").Select
End Sub
Bonne soirée

"Tibert" a écrit dans le message de
news:

Bonjour ;
Je te remercie pour le code en utilisant le deuxième, ça fonctionne,
mais
pas avec le code que j'ai mis dans le module de ma feuille pour nommé
ma
feuille avec ses deux cellules B5&B6 y'aurait il une solution pour
utiliser
ton code et garder le code de module de feuille pour nommé ma feuille.
Sa bogue sur la troisième ligne
Salutations
________________________________________
Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [B5:B6]) Is Nothing Then Exit Sub
ActiveSheet.Name = Format([B5], " dd mmm ") & " au " & Format([B6], "
dd
mmm")
End Sub
************************************************************


Une autre solution, sans supprimer la cellule, mais en indiquant dans
ta
base "Date", que la semaine a été créée :
Ps : pour cela, commence ton semainier en A2 (tu mets par exemple
DATES
dans
la cellule A1)
En supposant que la colonne B soit vide (pour y inscrire que la
semaine a
été créée)

ActiveSheet.Range("B5") >> >> Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"

Bon courage

"Tibert" a écrit dans le message de
news:

Bonjour ;
Je cherche une solution ou formule, j'ai une macro qui me copie une
feuille
et dans cette nouvelle feuille active, je souhait insérer une date
automatiquement en (B5) en allant chercher dans une feuille nommé «
Date »
plage (A1 :A56) et cette date doit être la première date supérieur
de
la
cellule (B5) de la feuille précédent.
Exemple : si lors de la copie la feuille précédente utilise la
(22/01/2007)
sur ma nouvelle copie je devrais avoir (29/01/2007) et ainsi de
suite.
Bon noël
Salutations

01/01/2007
08/01/2007
15/01/2007
22/01/2007
29/01/2007
05/02/2007
12/02/2007
19/02/2007
26/02/2007
05/03/2007
12/03/2007
19/03/2007


















Avatar
Tibert
Merci; cousinhub de ton aide j'ai bien avancé dans mon tableau et sa
fonctionne parfaitement.
@+ & bon noël


Bonjour,
tu déprotèges ta feuille juste avant l'exécution de ton code et tu la
reprotèges ensuite :

ActiveSheet.Range("B5") = Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("date").Unprotect Password:="toto" 'selon le mot de passe que tu as
défini
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine crée"
Sheets("date").Protect Password:="toto"
Joyeux Noël

"Tibert" a écrit dans le message de news:

Salut : cousinhub
Après plusieurs essais j'utilise le deuxième code (ci-dessous) en macro
que
je rajoute dans ma macro (AjoutFeuille) et sa fonctionne bien, par compte
ma
feuille (Date) est protéger et sa bloque à la deuxième ligne du « Sub
Datefeuille » et je ne sais pas comment résoudre le problème en faisant
simple, car je peux refaire une macro qui déprotége tout le classeur et
une
autre qui protége mais sa me paraît lourd, alors si tu as plus simple.
Salutations.

________________________________________
Sub Datefeuille()
ActiveSheet.Range("B5") = Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine crée"
End Sub
________________________________________
Sub AjoutFeuille ()
' Macro pour copie de feuille en fin de classeur
Dim Nom As String, Nb As Integer
Nom = ActiveSheet.Name
Nb = Sheets.Count
ActiveSheet.Copy After:=Sheets(Nb)
Call Datefeuille
End Sub
________________________________________



Re-,
l'inconvénient, avec l'évènement Woksheet_Change, c'est que tu devras le
recopier dans
chaque module de nouvelle feuille.
Si tu veux, par macro, tu insères une feuille, tu mets les dates dans les
cases B5 et B6,
et tu nommes en même temps ton onglet.
Si tu veux garder l'évènement, supprimes la ligne : ActiveSheet.Name > >> .......

Sub essai()
Sheets.Add
ActiveSheet.Range("B5") > >> Format(Sheets("Date").[B65000].End(xlUp).Offset(1, -1), " dd mmm ")
ActiveSheet.Range("B6") > >> Format(Sheets("Date").[B65000].End(xlUp).Offset(2, -1), " dd mmm")
ActiveSheet.Name > >> Format(Sheets("Date").[B65000].End(xlUp).Offset(1, -1), " dd mmm ") & _
" au " & Format(Sheets("Date").[B65000].End(xlUp).Offset(2, -1),
"
dd mmm")
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"
Sheets("date").Select
End Sub
Bonne soirée

"Tibert" a écrit dans le message de
news:

Bonjour ;
Je te remercie pour le code en utilisant le deuxième, ça fonctionne,
mais
pas avec le code que j'ai mis dans le module de ma feuille pour nommé
ma
feuille avec ses deux cellules B5&B6 y'aurait il une solution pour
utiliser
ton code et garder le code de module de feuille pour nommé ma feuille.
Sa bogue sur la troisième ligne
Salutations
________________________________________
Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [B5:B6]) Is Nothing Then Exit Sub
ActiveSheet.Name = Format([B5], " dd mmm ") & " au " & Format([B6], "
dd
mmm")
End Sub
************************************************************


Une autre solution, sans supprimer la cellule, mais en indiquant dans
ta
base "Date", que la semaine a été créée :
Ps : pour cela, commence ton semainier en A2 (tu mets par exemple
DATES
dans
la cellule A1)
En supposant que la colonne B soit vide (pour y inscrire que la
semaine a
été créée)

ActiveSheet.Range("B5") > >> >> Sheets("Date").[B65000].End(xlUp).Offset(1, -1)
Sheets("Date").[B65000].End(xlUp).Offset(1, 0) = "Semaine créée"

Bon courage

"Tibert" a écrit dans le message de
news:

Bonjour ;
Je cherche une solution ou formule, j'ai une macro qui me copie une
feuille
et dans cette nouvelle feuille active, je souhait insérer une date
automatiquement en (B5) en allant chercher dans une feuille nommé «
Date »
plage (A1 :A56) et cette date doit être la première date supérieur
de
la
cellule (B5) de la feuille précédent.
Exemple : si lors de la copie la feuille précédente utilise la
(22/01/2007)
sur ma nouvelle copie je devrais avoir (29/01/2007) et ainsi de
suite.
Bon noël
Salutations

01/01/2007
08/01/2007
15/01/2007
22/01/2007
29/01/2007
05/02/2007
12/02/2007
19/02/2007
26/02/2007
05/03/2007
12/03/2007
19/03/2007