J'ai découvert qu'il était possible de faire des fonctions en VBA et de les
affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque j'entre
de nouvelles données, la cellules ne se recalcule pas et j'aimerais savoir
pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique
pour entrer les données. Dans chacune des pages, j'ai une cellule qui
indique "Page x de y". Je veux que, lorsque des données sont entrées sur la
page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction
ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page
1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de 1"
ce qui est super. Le problème est que si j'entre des données sur les page 2
et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
Merci
Marc T.
Fonction:
----------------------------------------------------------------------------
-
Public Function getNombrePage(Optional intNoPage As Integer) As String
Dim strRetour As String
Application.EnableEvents = False
If Imprimer_Page3 Then
strRetour = "Page " & intNoPage & " de 3"
Else
If Imprimer_Page2 Then
strRetour = "Page " & intNoPage & " de 2"
Else
strRetour = "Page " & intNoPage & " de 1"
End If
End If
getNombrePage = strRetour
Application.EnableEvents = True
End Function
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Philippe.R
Bonsoir, Essaie comme ceci :
Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String application.volatile Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function
-- Amicales Salutations XL 97 / 2000 / 2002 Préférez suivre facilement sur le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"Marc Tousignant" a écrit dans le message de news:
Bonjour à tous,
J'ai découvert qu'il était possible de faire des fonctions en VBA et de les affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque j'entre de nouvelles données, la cellules ne se recalcule pas et j'aimerais savoir pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique pour entrer les données. Dans chacune des pages, j'ai une cellule qui indique "Page x de y". Je veux que, lorsque des données sont entrées sur la page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page 1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de 1" ce qui est super. Le problème est que si j'entre des données sur les page 2 et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
Merci
Marc T.
Fonction: ---------------------------------------------------------------------------- - Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function
Bonsoir,
Essaie comme ceci :
Public Function getNombrePage(Optional intNoPage As Integer) As String
Dim strRetour As String
application.volatile
Application.EnableEvents = False
If Imprimer_Page3 Then
strRetour = "Page " & intNoPage & " de 3"
Else
If Imprimer_Page2 Then
strRetour = "Page " & intNoPage & " de 2"
Else
strRetour = "Page " & intNoPage & " de 1"
End If
End If
getNombrePage = strRetour
Application.EnableEvents = True
End Function
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"Marc Tousignant" <marc_tousignant@hotmail.com> a écrit dans le message de news:
O1fFkdrGFHA.2620@tk2msftngp13.phx.gbl...
Bonjour à tous,
J'ai découvert qu'il était possible de faire des fonctions en VBA et de les
affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque j'entre
de nouvelles données, la cellules ne se recalcule pas et j'aimerais savoir
pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique
pour entrer les données. Dans chacune des pages, j'ai une cellule qui
indique "Page x de y". Je veux que, lorsque des données sont entrées sur la
page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction
ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page
1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de 1"
ce qui est super. Le problème est que si j'entre des données sur les page 2
et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
Merci
Marc T.
Fonction:
----------------------------------------------------------------------------
-
Public Function getNombrePage(Optional intNoPage As Integer) As String
Dim strRetour As String
Application.EnableEvents = False
If Imprimer_Page3 Then
strRetour = "Page " & intNoPage & " de 3"
Else
If Imprimer_Page2 Then
strRetour = "Page " & intNoPage & " de 2"
Else
strRetour = "Page " & intNoPage & " de 1"
End If
End If
getNombrePage = strRetour
Application.EnableEvents = True
End Function
Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String application.volatile Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function
-- Amicales Salutations XL 97 / 2000 / 2002 Préférez suivre facilement sur le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"Marc Tousignant" a écrit dans le message de news:
Bonjour à tous,
J'ai découvert qu'il était possible de faire des fonctions en VBA et de les affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque j'entre de nouvelles données, la cellules ne se recalcule pas et j'aimerais savoir pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique pour entrer les données. Dans chacune des pages, j'ai une cellule qui indique "Page x de y". Je veux que, lorsque des données sont entrées sur la page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page 1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de 1" ce qui est super. Le problème est que si j'entre des données sur les page 2 et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
Merci
Marc T.
Fonction: ---------------------------------------------------------------------------- - Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function
Marc Tousignant
Merci, le résultat est concluant sauf que j'ai beaucoup de code dans mes évènements worksheet_Change() et je tombe dans une boucle infinie lorsque la fonction est volatile. Je ne sais pas pourquoi ni comment régler la situation.
Avez-vous des idées...
"Philippe.R" a écrit dans le message de news:
Bonsoir, Essaie comme ceci :
Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String application.volatile Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function
-- Amicales Salutations XL 97 / 2000 / 2002 Préférez suivre facilement sur le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"Marc Tousignant" a écrit dans le message de news:
Bonjour à tous,
J'ai découvert qu'il était possible de faire des fonctions en VBA et de les
affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque j'entre
de nouvelles données, la cellules ne se recalcule pas et j'aimerais savoir
pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique pour entrer les données. Dans chacune des pages, j'ai une cellule qui indique "Page x de y". Je veux que, lorsque des données sont entrées sur la
page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page 1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de 1"
ce qui est super. Le problème est que si j'entre des données sur les page 2
et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
- Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function
Merci, le résultat est concluant sauf que j'ai beaucoup de code dans mes
évènements worksheet_Change() et je tombe dans une boucle infinie lorsque la
fonction est volatile. Je ne sais pas pourquoi ni comment régler la
situation.
Avez-vous des idées...
"Philippe.R" <A_S_rauphil@wanadoo.fr> a écrit dans le message de
news:uMwVtqrGFHA.2924@TK2MSFTNGP15.phx.gbl...
Bonsoir,
Essaie comme ceci :
Public Function getNombrePage(Optional intNoPage As Integer) As String
Dim strRetour As String
application.volatile
Application.EnableEvents = False
If Imprimer_Page3 Then
strRetour = "Page " & intNoPage & " de 3"
Else
If Imprimer_Page2 Then
strRetour = "Page " & intNoPage & " de 2"
Else
strRetour = "Page " & intNoPage & " de 1"
End If
End If
getNombrePage = strRetour
Application.EnableEvents = True
End Function
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"Marc Tousignant" <marc_tousignant@hotmail.com> a écrit dans le message de
news:
O1fFkdrGFHA.2620@tk2msftngp13.phx.gbl...
Bonjour à tous,
J'ai découvert qu'il était possible de faire des fonctions en VBA et de
les
affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque
j'entre
de nouvelles données, la cellules ne se recalcule pas et j'aimerais
savoir
pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique
pour entrer les données. Dans chacune des pages, j'ai une cellule qui
indique "Page x de y". Je veux que, lorsque des données sont entrées
sur la
page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction
ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page
1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de
1"
ce qui est super. Le problème est que si j'entre des données sur les
page 2
et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
-
Public Function getNombrePage(Optional intNoPage As Integer) As String
Dim strRetour As String
Application.EnableEvents = False
If Imprimer_Page3 Then
strRetour = "Page " & intNoPage & " de 3"
Else
If Imprimer_Page2 Then
strRetour = "Page " & intNoPage & " de 2"
Else
strRetour = "Page " & intNoPage & " de 1"
End If
End If
getNombrePage = strRetour
Application.EnableEvents = True
End Function
Merci, le résultat est concluant sauf que j'ai beaucoup de code dans mes évènements worksheet_Change() et je tombe dans une boucle infinie lorsque la fonction est volatile. Je ne sais pas pourquoi ni comment régler la situation.
Avez-vous des idées...
"Philippe.R" a écrit dans le message de news:
Bonsoir, Essaie comme ceci :
Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String application.volatile Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function
-- Amicales Salutations XL 97 / 2000 / 2002 Préférez suivre facilement sur le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"Marc Tousignant" a écrit dans le message de news:
Bonjour à tous,
J'ai découvert qu'il était possible de faire des fonctions en VBA et de les
affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque j'entre
de nouvelles données, la cellules ne se recalcule pas et j'aimerais savoir
pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique pour entrer les données. Dans chacune des pages, j'ai une cellule qui indique "Page x de y". Je veux que, lorsque des données sont entrées sur la
page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page 1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de 1"
ce qui est super. Le problème est que si j'entre des données sur les page 2
et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
- Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function
Alain CROS
Bonjour.
Si les feuilles de saisie sont les feuilles d'index 1 à 3 et la zone de saisie sur chaque feuille, la plage B2:D4.
Dans un module standard:
Public Function GetNbPage$() Dim I& Application.Volatile For I = 3& To 1& Step -1& If Application.Evaluate("CountA(" & Worksheets(I).Name & "!B2:D4)") <> 0& Then If ActiveSheet.Index <= I Then GetNbPage = "Page " & ActiveSheet.Index & " de " & I End If Exit Function End If Next End Function
Dans le module Thisworkbook
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Application.Calculate End Sub
Alain CROS
"Marc Tousignant" a écrit dans le message de news:
Bonjour à tous,
J'ai découvert qu'il était possible de faire des fonctions en VBA et de les affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque j'entre de nouvelles données, la cellules ne se recalcule pas et j'aimerais savoir pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique pour entrer les données. Dans chacune des pages, j'ai une cellule qui indique "Page x de y". Je veux que, lorsque des données sont entrées sur la page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page 1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de 1" ce qui est super. Le problème est que si j'entre des données sur les page 2 et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
Merci
Marc T.
Fonction: ---------------------------------------------------------------------------- - Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function
Bonjour.
Si les feuilles de saisie sont les feuilles d'index 1 à 3 et la zone de saisie sur chaque feuille, la plage B2:D4.
Dans un module standard:
Public Function GetNbPage$()
Dim I&
Application.Volatile
For I = 3& To 1& Step -1&
If Application.Evaluate("CountA(" & Worksheets(I).Name & "!B2:D4)") <> 0& Then
If ActiveSheet.Index <= I Then
GetNbPage = "Page " & ActiveSheet.Index & " de " & I
End If
Exit Function
End If
Next
End Function
Dans le module Thisworkbook
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.Calculate
End Sub
Alain CROS
"Marc Tousignant" <marc_tousignant@hotmail.com> a écrit dans le message de news: O1fFkdrGFHA.2620@tk2msftngp13.phx.gbl...
Bonjour à tous,
J'ai découvert qu'il était possible de faire des fonctions en VBA et de les
affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque j'entre
de nouvelles données, la cellules ne se recalcule pas et j'aimerais savoir
pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique
pour entrer les données. Dans chacune des pages, j'ai une cellule qui
indique "Page x de y". Je veux que, lorsque des données sont entrées sur la
page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction
ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page
1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de 1"
ce qui est super. Le problème est que si j'entre des données sur les page 2
et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
Merci
Marc T.
Fonction:
----------------------------------------------------------------------------
-
Public Function getNombrePage(Optional intNoPage As Integer) As String
Dim strRetour As String
Application.EnableEvents = False
If Imprimer_Page3 Then
strRetour = "Page " & intNoPage & " de 3"
Else
If Imprimer_Page2 Then
strRetour = "Page " & intNoPage & " de 2"
Else
strRetour = "Page " & intNoPage & " de 1"
End If
End If
getNombrePage = strRetour
Application.EnableEvents = True
End Function
Si les feuilles de saisie sont les feuilles d'index 1 à 3 et la zone de saisie sur chaque feuille, la plage B2:D4.
Dans un module standard:
Public Function GetNbPage$() Dim I& Application.Volatile For I = 3& To 1& Step -1& If Application.Evaluate("CountA(" & Worksheets(I).Name & "!B2:D4)") <> 0& Then If ActiveSheet.Index <= I Then GetNbPage = "Page " & ActiveSheet.Index & " de " & I End If Exit Function End If Next End Function
Dans le module Thisworkbook
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Application.Calculate End Sub
Alain CROS
"Marc Tousignant" a écrit dans le message de news:
Bonjour à tous,
J'ai découvert qu'il était possible de faire des fonctions en VBA et de les affectés à une/des cellules. J'ai très bien réussi sauf que, lorsque j'entre de nouvelles données, la cellules ne se recalcule pas et j'aimerais savoir pourquoi.
Plus concrètement, j'ai un classeur dans le quel j'ai 3 pages identique pour entrer les données. Dans chacune des pages, j'ai une cellule qui indique "Page x de y". Je veux que, lorsque des données sont entrées sur la page 2 ou 3 que mon y change automatiquement. J'ai créé la fonction ci-dessous et je l'ai affecter à mes cellules (Ex. 'Page 1'!AC7=GetNombrePage(1)). Lorsque je fais enter, il indique "Page 1 de 1" ce qui est super. Le problème est que si j'entre des données sur les page 2 et 3, la fct n'est pas actualiser.
Savez-vous pourquoi et, surtout, comment faire pour régler la situation?
Merci
Marc T.
Fonction: ---------------------------------------------------------------------------- - Public Function getNombrePage(Optional intNoPage As Integer) As String Dim strRetour As String Application.EnableEvents = False
If Imprimer_Page3 Then strRetour = "Page " & intNoPage & " de 3" Else If Imprimer_Page2 Then strRetour = "Page " & intNoPage & " de 2" Else strRetour = "Page " & intNoPage & " de 1" End If End If
getNombrePage = strRetour Application.EnableEvents = True End Function