Connaître avec VB le nb de pages d'impression d'une feuille
6 réponses
Decaplan
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout
ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je
voudrais pouvoir numéroter les pages, mais voilà...la numérotation est
fonction des pages sélectionnées pour l'impression.
Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de
pages d'impression d'une feuille pour laquelle la zone d'impression et tous
les paramètre d'impression ne doivent pas être modifiés?
Merci d'avance pour votre éclairage.
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
François
Bonjour Decaplan,
Voici ce que j'ai. Cela ne répondra qu'à une partie de ta question (en cliquant sur Imprimer, un msg apparaît pour aviser l'usager du nombre de pages qui sera imprimées. De plus, ce code cache des colonnes qui n'ont pas besoin d'être imprimées :
Private Sub CmdImprimer_Click() Dim r As Integer Dim nbpages As Variant
'variable nombre de pages qui sera imprimées nbpages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
'message à l'usager If nbpages = 1 Then If MsgBox("IL Y AURA " & nbpages & " PAGE D'IMPRIMÉE. VOULEZ-VOUS CONTINUER ?", vbYesNo + vbQuestion, "Avertissement : Nombre de pages imprimées") = vbNo Then Rows().Hidden = False Columns().Hidden = False With Worksheets("Inventaire") .Range("h65536").End(xlUp).Offset(0, 0).Activate ActiveCell.ClearContents ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)" ActiveCell.Offset(0, 48).Activate ActiveCell.ClearContents ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)" .Range("a2").Activate End With Exit Sub End If Else If MsgBox("IL Y AURA " & nbpages & " PAGES D'IMPRIMÉES. VOULEZ-VOUS CONTINUER ?", vbYesNo + vbQuestion, "Avertissement : Nombre de pages imprimées") = vbNo Then Rows().Hidden = False Columns().Hidden = False With Worksheets("Inventaire") .Range("b65536").End(xlUp).Offset(1, 0).Activate ActiveCell.Offset(0, 6).Activate ActiveCell.ClearContents ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)" ActiveCell.Offset(0, 48).Activate ActiveCell.ClearContents ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)" .Range("a2").Activate End With Exit Sub End If
ActiveSheet.PrintOut End If
'affiche les lignes et les colonnes cachées Rows().Hidden = False Columns().Hidden = False
End Sub
François
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Bonjour Decaplan,
Voici ce que j'ai. Cela ne répondra qu'à une partie de ta question (en
cliquant sur Imprimer, un msg apparaît pour aviser l'usager du nombre de
pages qui sera imprimées. De plus, ce code cache des colonnes qui n'ont pas
besoin d'être imprimées :
Private Sub CmdImprimer_Click()
Dim r As Integer
Dim nbpages As Variant
'variable nombre de pages qui sera imprimées
nbpages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
'message à l'usager
If nbpages = 1 Then
If MsgBox("IL Y AURA " & nbpages & " PAGE D'IMPRIMÉE. VOULEZ-VOUS
CONTINUER ?", vbYesNo + vbQuestion, "Avertissement : Nombre de pages
imprimées") = vbNo Then
Rows().Hidden = False
Columns().Hidden = False
With Worksheets("Inventaire")
.Range("h65536").End(xlUp).Offset(0, 0).Activate
ActiveCell.ClearContents
ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)"
ActiveCell.Offset(0, 48).Activate
ActiveCell.ClearContents
ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)"
.Range("a2").Activate
End With
Exit Sub
End If
Else
If MsgBox("IL Y AURA " & nbpages & " PAGES D'IMPRIMÉES. VOULEZ-VOUS
CONTINUER ?", vbYesNo + vbQuestion, "Avertissement : Nombre de pages
imprimées") = vbNo Then
Rows().Hidden = False
Columns().Hidden = False
With Worksheets("Inventaire")
.Range("b65536").End(xlUp).Offset(1, 0).Activate
ActiveCell.Offset(0, 6).Activate
ActiveCell.ClearContents
ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)"
ActiveCell.Offset(0, 48).Activate
ActiveCell.ClearContents
ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)"
.Range("a2").Activate
End With
Exit Sub
End If
ActiveSheet.PrintOut
End If
'affiche les lignes et les colonnes cachées
Rows().Hidden = False
Columns().Hidden = False
End Sub
François
"Decaplan" <yvon-plancade@wanado.fr> a écrit dans le message de news:
44efeab0$0$27390$ba4acef3@news.orange.fr...
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de
tout ou partie des feuilles d'un classeur (paramétrable par
l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la
numérotation est fonction des pages sélectionnées pour l'impression.
Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre
de pages d'impression d'une feuille pour laquelle la zone d'impression et
tous les paramètre d'impression ne doivent pas être modifiés?
Merci d'avance pour votre éclairage.
Voici ce que j'ai. Cela ne répondra qu'à une partie de ta question (en cliquant sur Imprimer, un msg apparaît pour aviser l'usager du nombre de pages qui sera imprimées. De plus, ce code cache des colonnes qui n'ont pas besoin d'être imprimées :
Private Sub CmdImprimer_Click() Dim r As Integer Dim nbpages As Variant
'variable nombre de pages qui sera imprimées nbpages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
'message à l'usager If nbpages = 1 Then If MsgBox("IL Y AURA " & nbpages & " PAGE D'IMPRIMÉE. VOULEZ-VOUS CONTINUER ?", vbYesNo + vbQuestion, "Avertissement : Nombre de pages imprimées") = vbNo Then Rows().Hidden = False Columns().Hidden = False With Worksheets("Inventaire") .Range("h65536").End(xlUp).Offset(0, 0).Activate ActiveCell.ClearContents ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)" ActiveCell.Offset(0, 48).Activate ActiveCell.ClearContents ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)" .Range("a2").Activate End With Exit Sub End If Else If MsgBox("IL Y AURA " & nbpages & " PAGES D'IMPRIMÉES. VOULEZ-VOUS CONTINUER ?", vbYesNo + vbQuestion, "Avertissement : Nombre de pages imprimées") = vbNo Then Rows().Hidden = False Columns().Hidden = False With Worksheets("Inventaire") .Range("b65536").End(xlUp).Offset(1, 0).Activate ActiveCell.Offset(0, 6).Activate ActiveCell.ClearContents ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)" ActiveCell.Offset(0, 48).Activate ActiveCell.ClearContents ActiveCell.FormulaR1C1 = "=SUM(R2C:R[-1]C)" .Range("a2").Activate End With Exit Sub End If
ActiveSheet.PrintOut End If
'affiche les lignes et les colonnes cachées Rows().Hidden = False Columns().Hidden = False
End Sub
François
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Daniel
Bonjour. Essaie :
Sub NombrePages() MsgBox ExecuteExcel4Macro("Get.Document(50)") End Sub
Cordialement. Daniel "Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Bonjour.
Essaie :
Sub NombrePages()
MsgBox ExecuteExcel4Macro("Get.Document(50)")
End Sub
Cordialement.
Daniel
"Decaplan" <yvon-plancade@wanado.fr> a écrit dans le message de news:
44efeab0$0$27390$ba4acef3@news.orange.fr...
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de
tout ou partie des feuilles d'un classeur (paramétrable par
l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la
numérotation est fonction des pages sélectionnées pour l'impression.
Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre
de pages d'impression d'une feuille pour laquelle la zone d'impression et
tous les paramètre d'impression ne doivent pas être modifiés?
Merci d'avance pour votre éclairage.
Sub NombrePages() MsgBox ExecuteExcel4Macro("Get.Document(50)") End Sub
Cordialement. Daniel "Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Decaplan
Merci à François et à Daniel.
Decaplan
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Merci à François et à Daniel.
Decaplan
"Decaplan" <yvon-plancade@wanado.fr> a écrit dans le message de news:
44efeab0$0$27390$ba4acef3@news.orange.fr...
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de
tout ou partie des feuilles d'un classeur (paramétrable par
l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la
numérotation est fonction des pages sélectionnées pour l'impression.
Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre
de pages d'impression d'une feuille pour laquelle la zone d'impression et
tous les paramètre d'impression ne doivent pas être modifiés?
Merci d'avance pour votre éclairage.
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Michel Pierron
Bonsoir Decaplan;
Private Function NbPages(Wsh As Worksheet) As Long NbPages = (Wsh.VPageBreaks.Count + 1) * (Wsh.HPageBreaks.Count + 1) End Function
Sub Test() MsgBox NbPages(ActiveSheet) & " pages !", 64 End Sub
MP
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Bonsoir Decaplan;
Private Function NbPages(Wsh As Worksheet) As Long
NbPages = (Wsh.VPageBreaks.Count + 1) * (Wsh.HPageBreaks.Count + 1)
End Function
Sub Test()
MsgBox NbPages(ActiveSheet) & " pages !", 64
End Sub
MP
"Decaplan" <yvon-plancade@wanado.fr> a écrit dans le message de news:
44efeab0$0$27390$ba4acef3@news.orange.fr...
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de
tout ou partie des feuilles d'un classeur (paramétrable par
l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la
numérotation est fonction des pages sélectionnées pour l'impression.
Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre
de pages d'impression d'une feuille pour laquelle la zone d'impression et
tous les paramètre d'impression ne doivent pas être modifiés?
Merci d'avance pour votre éclairage.
Private Function NbPages(Wsh As Worksheet) As Long NbPages = (Wsh.VPageBreaks.Count + 1) * (Wsh.HPageBreaks.Count + 1) End Function
Sub Test() MsgBox NbPages(ActiveSheet) & " pages !", 64 End Sub
MP
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Decaplan
Merci.
Decaplan "Michel Pierron" a écrit dans le message de news:
Bonsoir Decaplan;
Private Function NbPages(Wsh As Worksheet) As Long NbPages = (Wsh.VPageBreaks.Count + 1) * (Wsh.HPageBreaks.Count + 1) End Function
Sub Test() MsgBox NbPages(ActiveSheet) & " pages !", 64 End Sub
MP
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Merci.
Decaplan
"Michel Pierron" <michel.pierron@free.fr> a écrit dans le message de news:
euSbywSyGHA.1936@TK2MSFTNGP06.phx.gbl...
Bonsoir Decaplan;
Private Function NbPages(Wsh As Worksheet) As Long
NbPages = (Wsh.VPageBreaks.Count + 1) * (Wsh.HPageBreaks.Count + 1)
End Function
Sub Test()
MsgBox NbPages(ActiveSheet) & " pages !", 64
End Sub
MP
"Decaplan" <yvon-plancade@wanado.fr> a écrit dans le message de news:
44efeab0$0$27390$ba4acef3@news.orange.fr...
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de
tout ou partie des feuilles d'un classeur (paramétrable par
l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la
numérotation est fonction des pages sélectionnées pour l'impression.
Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre
de pages d'impression d'une feuille pour laquelle la zone d'impression et
tous les paramètre d'impression ne doivent pas être modifiés?
Merci d'avance pour votre éclairage.
Decaplan "Michel Pierron" a écrit dans le message de news:
Bonsoir Decaplan;
Private Function NbPages(Wsh As Worksheet) As Long NbPages = (Wsh.VPageBreaks.Count + 1) * (Wsh.HPageBreaks.Count + 1) End Function
Sub Test() MsgBox NbPages(ActiveSheet) & " pages !", 64 End Sub
MP
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Decaplan
Bonjour,
Cette solution fonctionne excellement...mais ! Il y a un mais, du moins, me semble-t-il, il faut avoir impriméou prévisualsé au moins une fois la feuille dont on veut connaître le nombre de pages d'impression avant d'utiliser la propriété VPageBreaks. Faute de quoi, le résultat est invariablement 1 Y-a-t-il un moyen de contourner cette difficulté? Merci de vos lumières. Amicalement.
Decaplan "Michel Pierron" a écrit dans le message de news:
Bonsoir Decaplan;
Private Function NbPages(Wsh As Worksheet) As Long NbPages = (Wsh.VPageBreaks.Count + 1) * (Wsh.HPageBreaks.Count + 1) End Function
Sub Test() MsgBox NbPages(ActiveSheet) & " pages !", 64 End Sub
MP
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.
Decaplan
Bonjour,
Cette solution fonctionne excellement...mais !
Il y a un mais, du moins, me semble-t-il, il faut avoir impriméou
prévisualsé au moins une fois la feuille dont on veut connaître le nombre de
pages d'impression avant d'utiliser la propriété VPageBreaks. Faute de quoi,
le résultat est invariablement 1
Y-a-t-il un moyen de contourner cette difficulté?
Merci de vos lumières.
Amicalement.
Decaplan
"Michel Pierron" <michel.pierron@free.fr> a écrit dans le message de news:
euSbywSyGHA.1936@TK2MSFTNGP06.phx.gbl...
Bonsoir Decaplan;
Private Function NbPages(Wsh As Worksheet) As Long
NbPages = (Wsh.VPageBreaks.Count + 1) * (Wsh.HPageBreaks.Count + 1)
End Function
Sub Test()
MsgBox NbPages(ActiveSheet) & " pages !", 64
End Sub
MP
"Decaplan" <yvon-plancade@wanado.fr> a écrit dans le message de news:
44efeab0$0$27390$ba4acef3@news.orange.fr...
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de
tout ou partie des feuilles d'un classeur (paramétrable par
l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la
numérotation est fonction des pages sélectionnées pour l'impression.
Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre
de pages d'impression d'une feuille pour laquelle la zone d'impression et
tous les paramètre d'impression ne doivent pas être modifiés?
Merci d'avance pour votre éclairage.
Cette solution fonctionne excellement...mais ! Il y a un mais, du moins, me semble-t-il, il faut avoir impriméou prévisualsé au moins une fois la feuille dont on veut connaître le nombre de pages d'impression avant d'utiliser la propriété VPageBreaks. Faute de quoi, le résultat est invariablement 1 Y-a-t-il un moyen de contourner cette difficulté? Merci de vos lumières. Amicalement.
Decaplan "Michel Pierron" a écrit dans le message de news:
Bonsoir Decaplan;
Private Function NbPages(Wsh As Worksheet) As Long NbPages = (Wsh.VPageBreaks.Count + 1) * (Wsh.HPageBreaks.Count + 1) End Function
Sub Test() MsgBox NbPages(ActiveSheet) & " pages !", 64 End Sub
MP
"Decaplan" a écrit dans le message de news: 44efeab0$0$27390$
Bonjour,
Je souhaite créer un un utilitaire destiné à commander l'impression de tout ou partie des feuilles d'un classeur (paramétrable par l'utilisateur). Je voudrais pouvoir numéroter les pages, mais voilà...la numérotation est fonction des pages sélectionnées pour l'impression. Ma question: Existe-t-il un moyen d'extraire dans une variable, le nombre de pages d'impression d'une feuille pour laquelle la zone d'impression et tous les paramètre d'impression ne doivent pas être modifiés? Merci d'avance pour votre éclairage.