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

Function ... rafraichissement ?

13 réponses
Avatar
j-pascal
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP

10 réponses

1 2
Avatar
lSteph
Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

--
lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

    Application.Volatile
    Mois = ActiveSheet.Name

    Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
    Select Case Application.Weekday(Dat)
        Case 1
            SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toute s les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP


Avatar
j-pascal
Bonsoir Stéphane,

J'ai cette réputation (de ne donner que des bouts de code) ? Je vais
essayer de m'améliorer ...

De la cellule B7 à la cellule K7 (et ce pour 12 feuilles successives),
j'ai ceci :

B7 : =SheetName()

C7 : =SI(C7="";"";
SI(JOURSEM(C7)=4;SI(MOIS(C7+2)=MOIS(C7);C7+2;"");SI(MOIS(C7+5)=MOIS(C7);C7+5;"")))

etc. jusqu'à K

Et j'ai une fonction dans un module :
(version intégrale)

'------
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select

End Function
'------

Par ailleurs, chaque onglet est nommé :

Janvier
Février
Mars
etc. (pardonne moi de ne pas être exhaustif ;-) )


Le but de la manoeuvre, c'est de récupérer en B7 le premier mercredi
(ou vendredi) du mois lié au "nom" de l'onglet, puis en D7 jusqu'à K7
d'avoir la série des mercrdis et vendredis sans dépasser la fin du
mois.

Mon pb, c'est qu'après avoir recopié des formules dans les feuilles,
les formules de B7 à K7 ne prennent pas en compte le nom de l'onglet.
Comme cette "Function" est dans un module standard, pour moi, les
formules liées à chaque feuille devraient s'atualisé en fonction du nom
de l'onglet !

@+ ??

JP

Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

--
lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

    Application.Volatile
    Mois = ActiveSheet.Name

    Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
    Select Case Application.Weekday(Dat)
        Case 1
            SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP




Avatar
LSteph
Oui bin ca change rien
Mois = ActiveSheet.Name
Donc il n'y en a qu'un
ou j'ai rien compris (j'ai cette réputation..lol)

Activesheet c'est la feuille active donc pas toutes, mais bien une
seule, celle active!

à+

--
lSteph


j-pascal a écrit :
Bonsoir Stéphane,

J'ai cette réputation (de ne donner que des bouts de code) ? Je vais
essayer de m'améliorer ...

De la cellule B7 à la cellule K7 (et ce pour 12 feuilles successives),
j'ai ceci :

B7 : =SheetName()

C7 : =SI(C7="";"";
SI(JOURSEM(C7)=4;SI(MOIS(C7+2)=MOIS(C7);C7+2;"");SI(MOIS(C7+5)=MOIS(C7);C7+5;"")))


etc. jusqu'à K

Et j'ai une fonction dans un module :
(version intégrale)

'------
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select

End Function
'------

Par ailleurs, chaque onglet est nommé :

Janvier
Février
Mars
etc. (pardonne moi de ne pas être exhaustif ;-) )


Le but de la manoeuvre, c'est de récupérer en B7 le premier mercredi (ou
vendredi) du mois lié au "nom" de l'onglet, puis en D7 jusqu'à K7
d'avoir la série des mercrdis et vendredis sans dépasser la fin du mois.

Mon pb, c'est qu'après avoir recopié des formules dans les feuilles, les
formules de B7 à K7 ne prennent pas en compte le nom de l'onglet.
Comme cette "Function" est dans un module standard, pour moi, les
formules liées à chaque feuille devraient s'atualisé en fonction du nom
de l'onglet !

@+ ??

JP

Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

--
lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP








Avatar
LSteph
.. caller

LSteph a écrit :
Oui bin ca change rien
Mois = ActiveSheet.Name
Donc il n'y en a qu'un
ou j'ai rien compris (j'ai cette réputation..lol)

Activesheet c'est la feuille active donc pas toutes, mais bien une
seule, celle active!

à+

--
lSteph


j-pascal a écrit :
Bonsoir Stéphane,

J'ai cette réputation (de ne donner que des bouts de code) ? Je vais
essayer de m'améliorer ...

De la cellule B7 à la cellule K7 (et ce pour 12 feuilles successives),
j'ai ceci :

B7 : =SheetName()

C7 : =SI(C7="";"";
SI(JOURSEM(C7)=4;SI(MOIS(C7+2)=MOIS(C7);C7+2;"");SI(MOIS(C7+5)=MOIS(C7);C7+5;"")))


etc. jusqu'à K

Et j'ai une fonction dans un module :
(version intégrale)

'------
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select

End Function
'------

Par ailleurs, chaque onglet est nommé :

Janvier
Février
Mars
etc. (pardonne moi de ne pas être exhaustif ;-) )


Le but de la manoeuvre, c'est de récupérer en B7 le premier mercredi
(ou vendredi) du mois lié au "nom" de l'onglet, puis en D7 jusqu'à K7
d'avoir la série des mercrdis et vendredis sans dépasser la fin du mois.

Mon pb, c'est qu'après avoir recopié des formules dans les feuilles,
les formules de B7 à K7 ne prennent pas en compte le nom de l'onglet.
Comme cette "Function" est dans un module standard, pour moi, les
formules liées à chaque feuille devraient s'atualisé en fonction du
nom de l'onglet !

@+ ??

JP

Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

--
lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP










Avatar
j-pascal
Ok, mais alors ce n'est pas la feuille active qu'il me faut mais la
feuille sélectionnée ou plutôt il faudrait que la feuille sélectionnée
devienne la feuille active.
Faut-il passer par un "Private Sub Workbook_SheetActivate(ByVal Sh As
Object)" ?

@+ ?

JP

Oui bin ca change rien
Mois = ActiveSheet.Name
Donc il n'y en a qu'un
ou j'ai rien compris (j'ai cette réputation..lol)

Activesheet c'est la feuille active donc pas toutes, mais bien une seule,
celle active!

à+

--
lSteph


j-pascal a écrit :
Bonsoir Stéphane,

J'ai cette réputation (de ne donner que des bouts de code) ? Je vais
essayer de m'améliorer ...

De la cellule B7 à la cellule K7 (et ce pour 12 feuilles successives), j'ai
ceci :

B7 : =SheetName()

C7 : =SI(C7="";"";
SI(JOURSEM(C7)=4;SI(MOIS(C7+2)=MOIS(C7);C7+2;"");SI(MOIS(C7+5)=MOIS(C7);C7+5;"")))


etc. jusqu'à K

Et j'ai une fonction dans un module :
(version intégrale)

'------
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select

End Function
'------

Par ailleurs, chaque onglet est nommé :

Janvier
Février
Mars
etc. (pardonne moi de ne pas être exhaustif ;-) )


Le but de la manoeuvre, c'est de récupérer en B7 le premier mercredi (ou
vendredi) du mois lié au "nom" de l'onglet, puis en D7 jusqu'à K7 d'avoir
la série des mercrdis et vendredis sans dépasser la fin du mois.

Mon pb, c'est qu'après avoir recopié des formules dans les feuilles, les
formules de B7 à K7 ne prennent pas en compte le nom de l'onglet.
Comme cette "Function" est dans un module standard, pour moi, les formules
liées à chaque feuille devraient s'atualisé en fonction du nom de l'onglet
!

@+ ??

JP

Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

-- lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP










Avatar
j-pascal
Pour une réponse concise c'est une réponse concise !

Pas compris ce que tu veux dire ;-(

JP

.. caller

LSteph a écrit :
Oui bin ca change rien
Mois = ActiveSheet.Name
Donc il n'y en a qu'un
ou j'ai rien compris (j'ai cette réputation..lol)

Activesheet c'est la feuille active donc pas toutes, mais bien une seule,
celle active!

à+

-- lSteph


j-pascal a écrit :
Bonsoir Stéphane,

J'ai cette réputation (de ne donner que des bouts de code) ? Je vais
essayer de m'améliorer ...

De la cellule B7 à la cellule K7 (et ce pour 12 feuilles successives),
j'ai ceci :

B7 : =SheetName()

C7 : =SI(C7="";"";
SI(JOURSEM(C7)=4;SI(MOIS(C7+2)=MOIS(C7);C7+2;"");SI(MOIS(C7+5)=MOIS(C7);C7+5;"")))


etc. jusqu'à K

Et j'ai une fonction dans un module :
(version intégrale)

'------
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select

End Function
'------

Par ailleurs, chaque onglet est nommé :

Janvier
Février
Mars
etc. (pardonne moi de ne pas être exhaustif ;-) )


Le but de la manoeuvre, c'est de récupérer en B7 le premier mercredi (ou
vendredi) du mois lié au "nom" de l'onglet, puis en D7 jusqu'à K7 d'avoir
la série des mercrdis et vendredis sans dépasser la fin du mois.

Mon pb, c'est qu'après avoir recopié des formules dans les feuilles, les
formules de B7 à K7 ne prennent pas en compte le nom de l'onglet.
Comme cette "Function" est dans un module standard, pour moi, les formules
liées à chaque feuille devraient s'atualisé en fonction du nom de l'onglet
!

@+ ??

JP

Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

-- lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP










Avatar
LSteph
adapte ceci
essaie déjà:

Function testn() As String

testn = Application.Caller.Parent.Name

End Function


j-pascal a écrit :
Ok, mais alors ce n'est pas la feuille active qu'il me faut mais la
feuille sélectionnée ou plutôt il faudrait que la feuille sélectionnée
devienne la feuille active.
Faut-il passer par un "Private Sub Workbook_SheetActivate(ByVal Sh As
Object)" ?

@+ ?

JP

Oui bin ca change rien
Mois = ActiveSheet.Name
Donc il n'y en a qu'un
ou j'ai rien compris (j'ai cette réputation..lol)

Activesheet c'est la feuille active donc pas toutes, mais bien une
seule, celle active!

à+

--
lSteph


j-pascal a écrit :
Bonsoir Stéphane,

J'ai cette réputation (de ne donner que des bouts de code) ? Je vais
essayer de m'améliorer ...

De la cellule B7 à la cellule K7 (et ce pour 12 feuilles
successives), j'ai ceci :

B7 : =SheetName()

C7 : =SI(C7="";"";
SI(JOURSEM(C7)=4;SI(MOIS(C7+2)=MOIS(C7);C7+2;"");SI(MOIS(C7+5)=MOIS(C7);C7+5;"")))


etc. jusqu'à K

Et j'ai une fonction dans un module :
(version intégrale)

'------
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select

End Function
'------

Par ailleurs, chaque onglet est nommé :

Janvier
Février
Mars
etc. (pardonne moi de ne pas être exhaustif ;-) )


Le but de la manoeuvre, c'est de récupérer en B7 le premier mercredi
(ou vendredi) du mois lié au "nom" de l'onglet, puis en D7 jusqu'à K7
d'avoir la série des mercrdis et vendredis sans dépasser la fin du mois.

Mon pb, c'est qu'après avoir recopié des formules dans les feuilles,
les formules de B7 à K7 ne prennent pas en compte le nom de l'onglet.
Comme cette "Function" est dans un module standard, pour moi, les
formules liées à chaque feuille devraient s'atualisé en fonction du
nom de l'onglet !

@+ ??

JP

Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

-- lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP














Avatar
j-pascal
Adapte ?

J'ai lancé ta fonction et j'ai une erreur d' "exécution 424".
Désolé, mais je ne comprends pas où je doit mettre ceci (tu as tout
"mon" code et toutes mes formules à présent ...).

JP
PS : j'imagine que tu as un truc en magasin pour rendre la feuille
sélectionnée active ?!

adapte ceci
essaie déjà:

Function testn() As String

testn = Application.Caller.Parent.Name

End Function


j-pascal a écrit :
Ok, mais alors ce n'est pas la feuille active qu'il me faut mais la feuille
sélectionnée ou plutôt il faudrait que la feuille sélectionnée devienne la
feuille active.
Faut-il passer par un "Private Sub Workbook_SheetActivate(ByVal Sh As
Object)" ?

@+ ?

JP

Oui bin ca change rien
Mois = ActiveSheet.Name
Donc il n'y en a qu'un
ou j'ai rien compris (j'ai cette réputation..lol)

Activesheet c'est la feuille active donc pas toutes, mais bien une seule,
celle active!

à+

-- lSteph


j-pascal a écrit :
Bonsoir Stéphane,

J'ai cette réputation (de ne donner que des bouts de code) ? Je vais
essayer de m'améliorer ...

De la cellule B7 à la cellule K7 (et ce pour 12 feuilles successives),
j'ai ceci :

B7 : =SheetName()

C7 : =SI(C7="";"";
SI(JOURSEM(C7)=4;SI(MOIS(C7+2)=MOIS(C7);C7+2;"");SI(MOIS(C7+5)=MOIS(C7);C7+5;"")))


etc. jusqu'à K

Et j'ai une fonction dans un module :
(version intégrale)

'------
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select

End Function
'------

Par ailleurs, chaque onglet est nommé :

Janvier
Février
Mars
etc. (pardonne moi de ne pas être exhaustif ;-) )


Le but de la manoeuvre, c'est de récupérer en B7 le premier mercredi (ou
vendredi) du mois lié au "nom" de l'onglet, puis en D7 jusqu'à K7 d'avoir
la série des mercrdis et vendredis sans dépasser la fin du mois.

Mon pb, c'est qu'après avoir recopié des formules dans les feuilles, les
formules de B7 à K7 ne prennent pas en compte le nom de l'onglet.
Comme cette "Function" est dans un module standard, pour moi, les
formules liées à chaque feuille devraient s'atualisé en fonction du nom
de l'onglet !

@+ ??

JP

Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

-- lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP
















Avatar
j-pascal
Euréka !!!

J'ai mis ça dans "ThisWorkbook" :

'------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Calculate
End Sub
'------

Et ça semble fonctionner "parfaitement" !

JP


adapte ceci
essaie déjà:

Function testn() As String

testn = Application.Caller.Parent.Name

End Function


j-pascal a écrit :
Ok, mais alors ce n'est pas la feuille active qu'il me faut mais la feuille
sélectionnée ou plutôt il faudrait que la feuille sélectionnée devienne la
feuille active.
Faut-il passer par un "Private Sub Workbook_SheetActivate(ByVal Sh As
Object)" ?

@+ ?

JP

Oui bin ca change rien
Mois = ActiveSheet.Name
Donc il n'y en a qu'un
ou j'ai rien compris (j'ai cette réputation..lol)

Activesheet c'est la feuille active donc pas toutes, mais bien une seule,
celle active!

à+

-- lSteph


j-pascal a écrit :
Bonsoir Stéphane,

J'ai cette réputation (de ne donner que des bouts de code) ? Je vais
essayer de m'améliorer ...

De la cellule B7 à la cellule K7 (et ce pour 12 feuilles successives),
j'ai ceci :

B7 : =SheetName()

C7 : =SI(C7="";"";
SI(JOURSEM(C7)=4;SI(MOIS(C7+2)=MOIS(C7);C7+2;"");SI(MOIS(C7+5)=MOIS(C7);C7+5;"")))


etc. jusqu'à K

Et j'ai une fonction dans un module :
(version intégrale)

'------
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select

End Function
'------

Par ailleurs, chaque onglet est nommé :

Janvier
Février
Mars
etc. (pardonne moi de ne pas être exhaustif ;-) )


Le but de la manoeuvre, c'est de récupérer en B7 le premier mercredi (ou
vendredi) du mois lié au "nom" de l'onglet, puis en D7 jusqu'à K7 d'avoir
la série des mercrdis et vendredis sans dépasser la fin du mois.

Mon pb, c'est qu'après avoir recopié des formules dans les feuilles, les
formules de B7 à K7 ne prennent pas en compte le nom de l'onglet.
Comme cette "Function" est dans un module standard, pour moi, les
formules liées à chaque feuille devraient s'atualisé en fonction du nom
de l'onglet !

@+ ??

JP

Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

-- lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP
















Avatar
LSteph
...peut être une autre fois, qd tu seras plus dispos!


j-pascal a écrit :
Euréka !!!

J'ai mis ça dans "ThisWorkbook" :

'------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Calculate
End Sub
'------

Et ça semble fonctionner "parfaitement" !

JP


adapte ceci
essaie déjà:

Function testn() As String

testn = Application.Caller.Parent.Name

End Function


j-pascal a écrit :
Ok, mais alors ce n'est pas la feuille active qu'il me faut mais la
feuille sélectionnée ou plutôt il faudrait que la feuille
sélectionnée devienne la feuille active.
Faut-il passer par un "Private Sub Workbook_SheetActivate(ByVal Sh As
Object)" ?

@+ ?

JP

Oui bin ca change rien
Mois = ActiveSheet.Name
Donc il n'y en a qu'un
ou j'ai rien compris (j'ai cette réputation..lol)

Activesheet c'est la feuille active donc pas toutes, mais bien une
seule, celle active!

à+

-- lSteph


j-pascal a écrit :
Bonsoir Stéphane,

J'ai cette réputation (de ne donner que des bouts de code) ? Je
vais essayer de m'améliorer ...

De la cellule B7 à la cellule K7 (et ce pour 12 feuilles
successives), j'ai ceci :

B7 : =SheetName()

C7 : =SI(C7="";"";
SI(JOURSEM(C7)=4;SI(MOIS(C7+2)=MOIS(C7);C7+2;"");SI(MOIS(C7+5)=MOIS(C7);C7+5;"")))



etc. jusqu'à K

Et j'ai une fonction dans un module :
(version intégrale)

'------
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select

End Function
'------

Par ailleurs, chaque onglet est nommé :

Janvier
Février
Mars
etc. (pardonne moi de ne pas être exhaustif ;-) )


Le but de la manoeuvre, c'est de récupérer en B7 le premier
mercredi (ou vendredi) du mois lié au "nom" de l'onglet, puis en D7
jusqu'à K7 d'avoir la série des mercrdis et vendredis sans dépasser
la fin du mois.

Mon pb, c'est qu'après avoir recopié des formules dans les
feuilles, les formules de B7 à K7 ne prennent pas en compte le nom
de l'onglet.
Comme cette "Function" est dans un module standard, pour moi, les
formules liées à chaque feuille devraient s'atualisé en fonction du
nom de l'onglet !

@+ ??

JP

Bonjour,

Comme d'ab jp on ne montre qu'un petit bout de la lorgnette..soit..

avec le peu qu'il y a là on en déduit que le mois c'est le nom de la
feuille active
et a priori cette feuille active a un seul nom ce doit être le même
que le sien donc un seul à la fois!

;-)

@+ ou..(...à tout à l'heure tu nous lachera la suite)

-- lSteph

On 13 nov, 16:24, j-pascal wrote:
Bonjour,

Apparemment, j'ai un petit pb de "rafraissement" avec la fonction
suivante :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date

Application.Volatile
Mois = ActiveSheet.Name

Dat = CDate("01/" & Mois & "/" & Year(Date) + 1)
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3

etc...
'----

après avoir recopié une formule liée à cette fonction, dans
toutes les
feuilles, mes calculs ne s'actualisent pas avec le nom de l'onglet.
Actuellement, dans chaque feuille, je me retrouve avec le même
mois !

J'ai ajouté un DoEvents, mais en vain ...

Merci pour votre aide,

JP




















1 2