emplacement de ma valeur dans saut de page

Le
Ritalou
Bonsoir à tous
Grace a une fonction de LL (voir ci dessous) :Groupes de discussion
:microsoft.public.fr.excel (Date :2000/03/16 )
je trouve le numéro de la page sur laquelle sera imprimée une ligne
mais apres avoir lancé cette macro mon PC devient tres lent
Peut etre une astuce ou une autre solution
Par avance merci
Ritalou
Excel & Win 2000

'________________________________________

Function NumPage(Cellule As Range) As Integer

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumPage = NumPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumPage = NumPage + VPC
Next HPB

End Function

Sub Test()

MsgBox NumPage(ActiveCell)

End Sub
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-François Aubert
Le #1254440
salut Ritalou,

peut-être qu'un

Set Wksht =nothing

en fin de fonction ferait la différence....???

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Ritalou" news:uETRk%
Bonsoir à tous
Grace a une fonction de LL (voir ci dessous) :Groupes de discussion
:microsoft.public.fr.excel (Date :2000/03/16 )
je trouve le numéro de la page sur laquelle sera imprimée une ligne
mais apres avoir lancé cette macro mon PC devient tres lent
Peut etre une astuce ou une autre solution
Par avance merci
Ritalou
Excel & Win 2000

'________________________________________

Function NumPage(Cellule As Range) As Integer

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumPage = NumPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumPage = NumPage + VPC
Next HPB

End Function

Sub Test()

MsgBox NumPage(ActiveCell)

End Sub





Ritalou
Le #1254255
Merci Jean-François
je teste
Ritalou
Excel & Win 2000



Jean-François Aubert
salut Ritalou,

peut-être qu'un

Set Wksht =nothing

en fin de fonction ferait la différence....???

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Ritalou" news:uETRk%
Bonsoir à tous
Grace a une fonction de LL (voir ci dessous) :Groupes de discussion
:microsoft.public.fr.excel (Date :2000/03/16 )
je trouve le numéro de la page sur laquelle sera imprimée une ligne
mais apres avoir lancé cette macro mon PC devient tres lent
Peut etre une astuce ou une autre solution
Par avance merci
Ritalou
Excel & Win 2000

'________________________________________

Function NumPage(Cellule As Range) As Integer

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumPage = NumPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumPage = NumPage + VPC
Next HPB

End Function

Sub Test()

MsgBox NumPage(ActiveCell)

End Sub









Ritalou
Le #1264946
non, Set Wksht =nothing
ne change rien au ralentissement
mais je pense que le pilotage de l'imprimante par VBA (Preview, page
etc...)
ne doit pas etre le top
Merci quand meme
Ritalou



Jean-François Aubert
salut Ritalou,

peut-être qu'un

Set Wksht =nothing

en fin de fonction ferait la différence....???

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Ritalou" news:uETRk%
Bonsoir à tous
Grace a une fonction de LL (voir ci dessous) :Groupes de discussion
:microsoft.public.fr.excel (Date :2000/03/16 )
je trouve le numéro de la page sur laquelle sera imprimée une ligne
mais apres avoir lancé cette macro mon PC devient tres lent
Peut etre une astuce ou une autre solution
Par avance merci
Ritalou
Excel & Win 2000

'________________________________________

Function NumPage(Cellule As Range) As Integer

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumPage = NumPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumPage = NumPage + VPC
Next HPB

End Function

Sub Test()

MsgBox NumPage(ActiveCell)

End Sub









Benead
Le #1264944
Salut Ritalou,

Tu n'as pas mis la fonction dans une cellule ? (=NumPage(A1))

Si non essaie en mettant "End" en fin de proc (réinitialisation de toutes les variables), on ne sait jamais :
Sub Test()
MsgBox NumPage(ActiveCell)
End
End Sub

Ritalou a écrit:
Bonsoir à tous
Grace a une fonction de LL (voir ci dessous) :Groupes de discussion
:microsoft.public.fr.excel (Date :2000/03/16 )
je trouve le numéro de la page sur laquelle sera imprimée une ligne
mais apres avoir lancé cette macro mon PC devient tres lent
Peut etre une astuce ou une autre solution
Par avance merci
Ritalou
Excel & Win 2000

'________________________________________

Function NumPage(Cellule As Range) As Integer

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumPage = NumPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumPage = NumPage + VPC
Next HPB

End Function

Sub Test()

MsgBox NumPage(ActiveCell)

End Sub






--
Benead
Bretagne

Xl97

Ritalou
Le #1261206
Benead

<Si non essaie en mettant "End" en fin de proc (réinitialisation de toutes
les variables), on ne sait jamais>
Meme avec cette idée ca ne marche pas
et donc un travail simple dans excel prend toujours enormement de temps
par contre si je ferme le fichier et que je le reouvre sans lancer le bout
de macro
alors là tout vas bien et des que je lance la macro
Excel freine de partout
Merci quand meme de ton idée
Ritalou




Benead
Salut Ritalou,

Tu n'as pas mis la fonction dans une cellule ? (=NumPage(A1))

Si non essaie en mettant "End" en fin de proc (réinitialisation de toutes
les variables), on ne sait jamais :

Sub Test()
MsgBox NumPage(ActiveCell)
End
End Sub

Ritalou a écrit:
Bonsoir à tous
Grace a une fonction de LL (voir ci dessous) :Groupes de discussion
:microsoft.public.fr.excel (Date :2000/03/16 )
je trouve le numéro de la page sur laquelle sera imprimée une ligne
mais apres avoir lancé cette macro mon PC devient tres lent
Peut etre une astuce ou une autre solution
Par avance merci
Ritalou
Excel & Win 2000

'________________________________________

Function NumPage(Cellule As Range) As Integer

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumPage = NumPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumPage = NumPage + VPC
Next HPB

End Function

Sub Test()

MsgBox NumPage(ActiveCell)

End Sub






--
Benead
Bretagne

Xl97




Benead
Le #1261090
Salut Ritalou,

Je me demande si le pb ne vient pas de ton driver d'impression.
Peux-tu en essayer un autre ou lancer la macro d'un autre ordinateur ?

A+
Benead
Bretagne
Xl97

Ritalou a écrit:
Benead

<Si non essaie en mettant "End" en fin de proc (réinitialisation de toutes
les variables), on ne sait jamais>
Meme avec cette idée ca ne marche pas
et donc un travail simple dans excel prend toujours enormement de temps
par contre si je ferme le fichier et que je le reouvre sans lancer le bout
de macro
alors là tout vas bien et des que je lance la macro
Excel freine de partout
Merci quand meme de ton idée
Ritalou




Benead

Salut Ritalou,

Tu n'as pas mis la fonction dans une cellule ? (=NumPage(A1))

Si non essaie en mettant "End" en fin de proc (réinitialisation de toutes


les variables), on ne sait jamais :

Sub Test()
MsgBox NumPage(ActiveCell)
End
End Sub

Ritalou a écrit:

Bonsoir à tous
Grace a une fonction de LL (voir ci dessous) :Groupes de discussion
:microsoft.public.fr.excel (Date :2000/03/16 )
je trouve le numéro de la page sur laquelle sera imprimée une ligne
mais apres avoir lancé cette macro mon PC devient tres lent
Peut etre une astuce ou une autre solution
Par avance merci
Ritalou
Excel & Win 2000

'________________________________________

Function NumPage(Cellule As Range) As Integer

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumPage = NumPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumPage = NumPage + VPC
Next HPB

End Function

Sub Test()

MsgBox NumPage(ActiveCell)

End Sub






--
Benead
Bretagne

Xl97









Ritalou
Le #1261070
Bonjour Benead
j'ai le meme soucis au boulot ou a la maison
et a la maison je n'ai toujours pas installé mon imprimante
pas grave je change de tactique
merci quand meme
Ritalou

Benead
Salut Ritalou,

Je me demande si le pb ne vient pas de ton driver d'impression.
Peux-tu en essayer un autre ou lancer la macro d'un autre ordinateur ?

A+
Benead
Bretagne
Xl97

Ritalou a écrit:
Benead

<Si non essaie en mettant "End" en fin de proc (réinitialisation de
toutes


les variables), on ne sait jamais>
Meme avec cette idée ca ne marche pas
et donc un travail simple dans excel prend toujours enormement de temps
par contre si je ferme le fichier et que je le reouvre sans lancer le
bout


de macro
alors là tout vas bien et des que je lance la macro
Excel freine de partout
Merci quand meme de ton idée
Ritalou




Benead :




Salut Ritalou,

Tu n'as pas mis la fonction dans une cellule ? (=NumPage(A1))

Si non essaie en mettant "End" en fin de proc (réinitialisation de
toutes




les variables), on ne sait jamais :

Sub Test()
MsgBox NumPage(ActiveCell)
End
End Sub

Ritalou a écrit:

Bonsoir à tous
Grace a une fonction de LL (voir ci dessous) :Groupes de discussion
:microsoft.public.fr.excel (Date :2000/03/16 )
je trouve le numéro de la page sur laquelle sera imprimée une ligne
mais apres avoir lancé cette macro mon PC devient tres lent
Peut etre une astuce ou une autre solution
Par avance merci
Ritalou
Excel & Win 2000

'________________________________________

Function NumPage(Cellule As Range) As Integer

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumPage = NumPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumPage = NumPage + VPC
Next HPB

End Function

Sub Test()

MsgBox NumPage(ActiveCell)

End Sub






--
Benead
Bretagne

Xl97













Ritalou
Le #1268585
Bonjour
Mon erreur qui fait ralentir ---> ActiveSheet.PageSetup.PrintArea "$B$:$G$"
au lieu de ---> ActiveSheet.PageSetup.PrintArea "$B1$:$G$1940"
Maintenant c'est ok
Ritalou


"Benead" news:
Salut Ritalou,

Je me demande si le pb ne vient pas de ton driver d'impression.
Peux-tu en essayer un autre ou lancer la macro d'un autre ordinateur ?

A+
Benead
Bretagne
Xl97

Ritalou a écrit:
Benead

<Si non essaie en mettant "End" en fin de proc (réinitialisation de
toutes


les variables), on ne sait jamais>
Meme avec cette idée ca ne marche pas
et donc un travail simple dans excel prend toujours enormement de temps
par contre si je ferme le fichier et que je le reouvre sans lancer le
bout


de macro
alors là tout vas bien et des que je lance la macro
Excel freine de partout
Merci quand meme de ton idée
Ritalou




Benead :




Salut Ritalou,

Tu n'as pas mis la fonction dans une cellule ? (=NumPage(A1))

Si non essaie en mettant "End" en fin de proc (réinitialisation de
toutes




les variables), on ne sait jamais :

Sub Test()
MsgBox NumPage(ActiveCell)
End
End Sub

Ritalou a écrit:

Bonsoir à tous
Grace a une fonction de LL (voir ci dessous) :Groupes de discussion
:microsoft.public.fr.excel (Date :2000/03/16 )
je trouve le numéro de la page sur laquelle sera imprimée une ligne
mais apres avoir lancé cette macro mon PC devient tres lent
Peut etre une astuce ou une autre solution
Par avance merci
Ritalou
Excel & Win 2000

'________________________________________

Function NumPage(Cellule As Range) As Integer

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumPage = NumPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumPage = NumPage + VPC
Next HPB

End Function

Sub Test()

MsgBox NumPage(ActiveCell)

End Sub






--
Benead
Bretagne

Xl97













Publicité
Poster une réponse
Anonyme