Bonjour, Je souhaiterais imprimer deux plage différentes d'une même
feuille, avec une macro pour chacune
J'utilise cette macro pour une plage, mais elle ne prend pas en compte
la plage spécifiée, mais la zone d'impression de la dernière
impression demandée:
Sub Imprimer_suppr_Lv2()
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
Selection.EntireRow.Hidden = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True,
_
IgnorePrintAreas:úlse
Rows().Hidden = False
End Sub
Comment obliger la macro à imprimer la plage indiquée ?
Merci à tous
Bonjour, Je souhaiterais imprimer deux plage différentes d'une même
feuille, avec une macro pour chacune
J'utilise cette macro pour une plage, mais elle ne prend pas en compte
la plage spécifiée, mais la zone d'impression de la dernière
impression demandée:
Sub Imprimer_suppr_Lv2()
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
Selection.EntireRow.Hidden = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True,
_
IgnorePrintAreas:úlse
Rows().Hidden = False
End Sub
Comment obliger la macro à imprimer la plage indiquée ?
Merci à tous
Bonjour, Je souhaiterais imprimer deux plage différentes d'une même
feuille, avec une macro pour chacune
J'utilise cette macro pour une plage, mais elle ne prend pas en compte
la plage spécifiée, mais la zone d'impression de la dernière
impression demandée:
Sub Imprimer_suppr_Lv2()
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
Selection.EntireRow.Hidden = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True,
_
IgnorePrintAreas:úlse
Rows().Hidden = False
End Sub
Comment obliger la macro à imprimer la plage indiquée ?
Merci à tous
Bonjour,
Une autre fa on de faire :
'----------------------------------------
Sub Imprimer_suppr_Lv2()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "R1:Z100")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concl uant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'----------------------------------------
MichD
--------------------------------------------
"michir" a crit dans le message de groupe de discussion :
Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
feuille, avec une macro pour chacune
J'utilise cette macro pour une plage, mais elle ne prend pas en compte
la plage sp cifi e, mais la zone d'impression de la derni re
impression demand e:
Sub Imprimer_suppr_Lv2()
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
Selection.EntireRow.Hidden = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate :=True,
_
IgnorePrintAreas:úlse
Rows().Hidden = False
End Sub
Comment obliger la macro imprimer la plage indiqu e ?
Merci tous
Bonjour,
Une autre fa on de faire :
'----------------------------------------
Sub Imprimer_suppr_Lv2()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "R1:Z100")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concl uant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'----------------------------------------
MichD
--------------------------------------------
"michir" a crit dans le message de groupe de discussion :
95bedc35-14a3-4031-8313-2ad6ecc87...@i14g2000yqe.googlegroups.com...
Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
feuille, avec une macro pour chacune
J'utilise cette macro pour une plage, mais elle ne prend pas en compte
la plage sp cifi e, mais la zone d'impression de la derni re
impression demand e:
Sub Imprimer_suppr_Lv2()
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
Selection.EntireRow.Hidden = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate :=True,
_
IgnorePrintAreas:=False
Rows().Hidden = False
End Sub
Comment obliger la macro imprimer la plage indiqu e ?
Merci tous
Bonjour,
Une autre fa on de faire :
'----------------------------------------
Sub Imprimer_suppr_Lv2()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "R1:Z100")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concl uant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'----------------------------------------
MichD
--------------------------------------------
"michir" a crit dans le message de groupe de discussion :
Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
feuille, avec une macro pour chacune
J'utilise cette macro pour une plage, mais elle ne prend pas en compte
la plage sp cifi e, mais la zone d'impression de la derni re
impression demand e:
Sub Imprimer_suppr_Lv2()
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
Selection.EntireRow.Hidden = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate :=True,
_
IgnorePrintAreas:úlse
Rows().Hidden = False
End Sub
Comment obliger la macro imprimer la plage indiqu e ?
Merci tous
Bonjour,
Une autre fa on de faire :
'----------------------------------------
Sub Imprimer_suppr_Lv2()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "R1:Z100")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concluant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'----------------------------------------
MichD
--------------------------------------------
"michir" a crit dans le message de groupe de discussion :
Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
feuille, avec une macro pour chacune
J'utilise cette macro pour une plage, mais elle ne prend pas en compte
la plage sp cifi e, mais la zone d'impression de la derni re
impression demand e:
Sub Imprimer_suppr_Lv2()
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
Selection.EntireRow.Hidden = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True,
_
IgnorePrintAreas:úlse
Rows().Hidden = False
End Sub
Comment obliger la macro imprimer la plage indiqu e ?
Merci tous
Bonjour,
Une autre fa on de faire :
'----------------------------------------
Sub Imprimer_suppr_Lv2()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "R1:Z100")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concluant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'----------------------------------------
MichD
--------------------------------------------
"michir" a crit dans le message de groupe de discussion :
95bedc35-14a3-4031-8313-2ad6ecc87...@i14g2000yqe.googlegroups.com...
Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
feuille, avec une macro pour chacune
J'utilise cette macro pour une plage, mais elle ne prend pas en compte
la plage sp cifi e, mais la zone d'impression de la derni re
impression demand e:
Sub Imprimer_suppr_Lv2()
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
Selection.EntireRow.Hidden = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True,
_
IgnorePrintAreas:úlse
Rows().Hidden = False
End Sub
Comment obliger la macro imprimer la plage indiqu e ?
Merci tous
Bonjour,
Une autre fa on de faire :
'----------------------------------------
Sub Imprimer_suppr_Lv2()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "R1:Z100")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concluant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'----------------------------------------
MichD
--------------------------------------------
"michir" a crit dans le message de groupe de discussion :
Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
feuille, avec une macro pour chacune
J'utilise cette macro pour une plage, mais elle ne prend pas en compte
la plage sp cifi e, mais la zone d'impression de la derni re
impression demand e:
Sub Imprimer_suppr_Lv2()
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
Selection.EntireRow.Hidden = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True,
_
IgnorePrintAreas:úlse
Rows().Hidden = False
End Sub
Comment obliger la macro imprimer la plage indiqu e ?
Merci tous
Cette procédure fonctionne très bien.
Elle masque toutes les lignes dont les cellules de la colonne B:B sont to talement vides.
Elle imprime 2 fois la même plage de cellules que tu as définies dans la procédure :
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
Que veux-tu de plus ?
'-------------------------------------------------
Sub Imprimer_suppr_Lv4()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
'Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concl uant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'-------------------------------------------------
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
Bonjour,
Merci à Isabelle et MichD
Je préfère joindre mon fichier Ci-joint
J'ai deux questions:
. pourquoi le masquage des lignes à l'impression ne fonctionne plus ?
. pourquoi la macro imprime 2 exemplaires systématiquement ?
Lien:http://cjoint.com/?0dFjSchyPBW
Merci
Michel
Sub Imprimer_suppr_Lv3()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$B$1:$I$135")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concl uant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
Range("$J$1:$P$135").PrintOut Copies:=1, Preview:=True, Collate:=Tr ue
End Sub
On 30 mar, 19:52, "MichD" wrote:
> Bonjour,
> Une autre fa on de faire :
> '----------------------------------------
> Sub Imprimer_suppr_Lv2()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "R1:Z100")
> Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = Tru e
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est con cluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> End Sub
> '----------------------------------------
> MichD
> --------------------------------------------
> "michir" a crit dans le message de groupe de discussion :
>
> Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
> feuille, avec une macro pour chacune
> J'utilise cette macro pour une plage, mais elle ne prend pas en compte
> la plage sp cifi e, mais la zone d'impression de la derni re
> impression demand e:
> Sub Imprimer_suppr_Lv2()
> Application.ScreenUpdating = False
> For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
> If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
> Next r
> With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
> Selection.EntireRow.Hidden = True
> End With
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, Colla te:=True,
> _
> IgnorePrintAreas:úlse
> Rows().Hidden = False
> End Sub
> Comment obliger la macro imprimer la plage indiqu e ?
> Merci tous
Cette procédure fonctionne très bien.
Elle masque toutes les lignes dont les cellules de la colonne B:B sont to talement vides.
Elle imprime 2 fois la même plage de cellules que tu as définies dans la procédure :
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
Que veux-tu de plus ?
'-------------------------------------------------
Sub Imprimer_suppr_Lv4()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
'Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concl uant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'-------------------------------------------------
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
abb510af-499f-4229-b4bc-2fe339f3d...@x3g2000yqj.googlegroups.com...
Bonjour,
Merci à Isabelle et MichD
Je préfère joindre mon fichier Ci-joint
J'ai deux questions:
. pourquoi le masquage des lignes à l'impression ne fonctionne plus ?
. pourquoi la macro imprime 2 exemplaires systématiquement ?
Lien:http://cjoint.com/?0dFjSchyPBW
Merci
Michel
Sub Imprimer_suppr_Lv3()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$B$1:$I$135")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concl uant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
Range("$J$1:$P$135").PrintOut Copies:=1, Preview:=True, Collate:=Tr ue
End Sub
On 30 mar, 19:52, "MichD" <michde...@hotmail.com> wrote:
> Bonjour,
> Une autre fa on de faire :
> '----------------------------------------
> Sub Imprimer_suppr_Lv2()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "R1:Z100")
> Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = Tru e
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est con cluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> End Sub
> '----------------------------------------
> MichD
> --------------------------------------------
> "michir" a crit dans le message de groupe de discussion :
> 95bedc35-14a3-4031-8313-2ad6ecc87...@i14g2000yqe.googlegroups.com...
> Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
> feuille, avec une macro pour chacune
> J'utilise cette macro pour une plage, mais elle ne prend pas en compte
> la plage sp cifi e, mais la zone d'impression de la derni re
> impression demand e:
> Sub Imprimer_suppr_Lv2()
> Application.ScreenUpdating = False
> For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
> If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
> Next r
> With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
> Selection.EntireRow.Hidden = True
> End With
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, Colla te:=True,
> _
> IgnorePrintAreas:=False
> Rows().Hidden = False
> End Sub
> Comment obliger la macro imprimer la plage indiqu e ?
> Merci tous
Cette procédure fonctionne très bien.
Elle masque toutes les lignes dont les cellules de la colonne B:B sont to talement vides.
Elle imprime 2 fois la même plage de cellules que tu as définies dans la procédure :
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
Que veux-tu de plus ?
'-------------------------------------------------
Sub Imprimer_suppr_Lv4()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
'Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concl uant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'-------------------------------------------------
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
Bonjour,
Merci à Isabelle et MichD
Je préfère joindre mon fichier Ci-joint
J'ai deux questions:
. pourquoi le masquage des lignes à l'impression ne fonctionne plus ?
. pourquoi la macro imprime 2 exemplaires systématiquement ?
Lien:http://cjoint.com/?0dFjSchyPBW
Merci
Michel
Sub Imprimer_suppr_Lv3()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$B$1:$I$135")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concl uant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
Range("$J$1:$P$135").PrintOut Copies:=1, Preview:=True, Collate:=Tr ue
End Sub
On 30 mar, 19:52, "MichD" wrote:
> Bonjour,
> Une autre fa on de faire :
> '----------------------------------------
> Sub Imprimer_suppr_Lv2()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "R1:Z100")
> Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = Tru e
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est con cluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> End Sub
> '----------------------------------------
> MichD
> --------------------------------------------
> "michir" a crit dans le message de groupe de discussion :
>
> Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
> feuille, avec une macro pour chacune
> J'utilise cette macro pour une plage, mais elle ne prend pas en compte
> la plage sp cifi e, mais la zone d'impression de la derni re
> impression demand e:
> Sub Imprimer_suppr_Lv2()
> Application.ScreenUpdating = False
> For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
> If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
> Next r
> With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
> Selection.EntireRow.Hidden = True
> End With
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, Colla te:=True,
> _
> IgnorePrintAreas:úlse
> Rows().Hidden = False
> End Sub
> Comment obliger la macro imprimer la plage indiqu e ?
> Merci tous
Cette procédure fonctionne très bien.
Elle masque toutes les lignes dont les cellules de la colonne B:B sont totalement vides.
Elle imprime 2 fois la même plage de cellules que tu as définies dans la procédure :
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
Que veux-tu de plus ?
'-------------------------------------------------
Sub Imprimer_suppr_Lv4()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
'Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concluant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'-------------------------------------------------
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
Bonjour,
Merci à Isabelle et MichD
Je préfère joindre mon fichier Ci-joint
J'ai deux questions:
. pourquoi le masquage des lignes à l'impression ne fonctionne plus ?
. pourquoi la macro imprime 2 exemplaires systématiquement ?
Lien:http://cjoint.com/?0dFjSchyPBW
Merci
Michel
Sub Imprimer_suppr_Lv3()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$B$1:$I$135")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concluant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
Range("$J$1:$P$135").PrintOut Copies:=1, Preview:=True, Collate:=True
End Sub
On 30 mar, 19:52, "MichD" wrote:
> Bonjour,
> Une autre fa on de faire :
> '----------------------------------------
> Sub Imprimer_suppr_Lv2()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "R1:Z100")
> Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est concluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> End Sub
> '----------------------------------------
> MichD
> --------------------------------------------
> "michir" a crit dans le message de groupe de discussion :
>
> Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
> feuille, avec une macro pour chacune
> J'utilise cette macro pour une plage, mais elle ne prend pas en compte
> la plage sp cifi e, mais la zone d'impression de la derni re
> impression demand e:
> Sub Imprimer_suppr_Lv2()
> Application.ScreenUpdating = False
> For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
> If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
> Next r
> With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
> Selection.EntireRow.Hidden = True
> End With
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True,
> _
> IgnorePrintAreas:úlse
> Rows().Hidden = False
> End Sub
> Comment obliger la macro imprimer la plage indiqu e ?
> Merci tous
Cette procédure fonctionne très bien.
Elle masque toutes les lignes dont les cellules de la colonne B:B sont totalement vides.
Elle imprime 2 fois la même plage de cellules que tu as définies dans la procédure :
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
Que veux-tu de plus ?
'-------------------------------------------------
Sub Imprimer_suppr_Lv4()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
'Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concluant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'-------------------------------------------------
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
abb510af-499f-4229-b4bc-2fe339f3d...@x3g2000yqj.googlegroups.com...
Bonjour,
Merci à Isabelle et MichD
Je préfère joindre mon fichier Ci-joint
J'ai deux questions:
. pourquoi le masquage des lignes à l'impression ne fonctionne plus ?
. pourquoi la macro imprime 2 exemplaires systématiquement ?
Lien:http://cjoint.com/?0dFjSchyPBW
Merci
Michel
Sub Imprimer_suppr_Lv3()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$B$1:$I$135")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concluant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
Range("$J$1:$P$135").PrintOut Copies:=1, Preview:=True, Collate:=True
End Sub
On 30 mar, 19:52, "MichD" <michde...@hotmail.com> wrote:
> Bonjour,
> Une autre fa on de faire :
> '----------------------------------------
> Sub Imprimer_suppr_Lv2()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "R1:Z100")
> Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est concluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> End Sub
> '----------------------------------------
> MichD
> --------------------------------------------
> "michir" a crit dans le message de groupe de discussion :
> 95bedc35-14a3-4031-8313-2ad6ecc87...@i14g2000yqe.googlegroups.com...
> Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
> feuille, avec une macro pour chacune
> J'utilise cette macro pour une plage, mais elle ne prend pas en compte
> la plage sp cifi e, mais la zone d'impression de la derni re
> impression demand e:
> Sub Imprimer_suppr_Lv2()
> Application.ScreenUpdating = False
> For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
> If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
> Next r
> With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
> Selection.EntireRow.Hidden = True
> End With
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True,
> _
> IgnorePrintAreas:úlse
> Rows().Hidden = False
> End Sub
> Comment obliger la macro imprimer la plage indiqu e ?
> Merci tous
Cette procédure fonctionne très bien.
Elle masque toutes les lignes dont les cellules de la colonne B:B sont totalement vides.
Elle imprime 2 fois la même plage de cellules que tu as définies dans la procédure :
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
Que veux-tu de plus ?
'-------------------------------------------------
Sub Imprimer_suppr_Lv4()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$J$1:$P$135")
'Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concluant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
End Sub
'-------------------------------------------------
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
Bonjour,
Merci à Isabelle et MichD
Je préfère joindre mon fichier Ci-joint
J'ai deux questions:
. pourquoi le masquage des lignes à l'impression ne fonctionne plus ?
. pourquoi la macro imprime 2 exemplaires systématiquement ?
Lien:http://cjoint.com/?0dFjSchyPBW
Merci
Michel
Sub Imprimer_suppr_Lv3()
Dim Arr(), X As String
'Liste tes plages discontinues imprimer
Arr = Array("$J$1:$P$135", "$B$1:$I$135")
Application.ScreenUpdating = False
With Feuil1 ' ActiveSheet
'Pour masquer toutes les lignes dont les cellules de
'la colonne B:B sont totalement vides
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'Impression de chaque plage de cellules d finie
For Each elt In Arr
.PageSetup.PrintArea = elt
.PrintPreview 'tu utilise .Printout si ton test est concluant
.PageSetup.PrintArea = ""
Next
'Pour afficher les lignes la fin de l'impression
.Range("B:B").EntireRow.Hidden = False
End With
Range("$J$1:$P$135").PrintOut Copies:=1, Preview:=True, Collate:=True
End Sub
On 30 mar, 19:52, "MichD" wrote:
> Bonjour,
> Une autre fa on de faire :
> '----------------------------------------
> Sub Imprimer_suppr_Lv2()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "R1:Z100")
> Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est concluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> End Sub
> '----------------------------------------
> MichD
> --------------------------------------------
> "michir" a crit dans le message de groupe de discussion :
>
> Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
> feuille, avec une macro pour chacune
> J'utilise cette macro pour une plage, mais elle ne prend pas en compte
> la plage sp cifi e, mais la zone d'impression de la derni re
> impression demand e:
> Sub Imprimer_suppr_Lv2()
> Application.ScreenUpdating = False
> For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
> If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
> Next r
> With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
> Selection.EntireRow.Hidden = True
> End With
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True,
> _
> IgnorePrintAreas:úlse
> Rows().Hidden = False
> End Sub
> Comment obliger la macro imprimer la plage indiqu e ?
> Merci tous
| .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
| SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Dans ta question, tu parles de cellules "VIDES" et la ligne de code qui p récède
fait le travail. Tu devras ajouter juste avant "On error resume next" au cas où
il n'y pas de cellules vides, la méthode specialcells retourne une erre ur et c'est normal.
Si tu préfères employer la boucle, c'est ton choix!
2 approches pour le prix d'une !
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
Re, Oui, merci MichD
Ma question est relative au non masquage des lignes vides malgré
l'instruction :
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Dans une macro précédente tu avais utilisé l'instruction suivante q ui
fonctionnait bien:
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
Je ne suis pas très doué et je ne comprends pas pourquoi ton
instruction avec Range ne fonctionne pas chez moi ?
Merci à toi
Michel
On 31 mar, 13:08, "MichD" wrote:
> Cette procédure fonctionne très bien.
> Elle masque toutes les lignes dont les cellules de la colonne B:B sont totalement vides.
> Elle imprime 2 fois la même plage de cellules que tu as définies da ns la procédure :
> Arr = Array("$J$1:$P$135", "$J$1:$P$135")
> Que veux-tu de plus ?
> '-------------------------------------------------
> Sub Imprimer_suppr_Lv4()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "$J$1:$P$135")
> 'Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = Tru e
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est con cluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> End Sub
> '-------------------------------------------------
> MichD
> --------------------------------------------
> "michir" a écrit dans le message de groupe de discussion :
>
> Bonjour,
> Merci à Isabelle et MichD
> Je préfère joindre mon fichier Ci-joint
> J'ai deux questions:
> . pourquoi le masquage des lignes à l'impression ne fonctionne plus ?
> . pourquoi la macro imprime 2 exemplaires systématiquement ?
> Lien:http://cjoint.com/?0dFjSchyPBW
> Merci
> Michel
> Sub Imprimer_suppr_Lv3()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "$B$1:$I$135")
> Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = Tru e
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est con cluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> Range("$J$1:$P$135").PrintOut Copies:=1, Preview:=True, Collate:= True
> End Sub
> On 30 mar, 19:52, "MichD" wrote:
> > Bonjour,
> > Une autre fa on de faire :
> > '----------------------------------------
> > Sub Imprimer_suppr_Lv2()
> > Dim Arr(), X As String
> > 'Liste tes plages discontinues imprimer
> > Arr = Array("$J$1:$P$135", "R1:Z100")
> > Application.ScreenUpdating = False
> > With Feuil1 ' ActiveSheet
> > 'Pour masquer toutes les lignes dont les cellules de
> > 'la colonne B:B sont totalement vides
> > .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> > SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = T rue
> > 'Impression de chaque plage de cellules d finie
> > For Each elt In Arr
> > .PageSetup.PrintArea = elt
> > .PrintPreview 'tu utilise .Printout si ton test est c oncluant
> > .PageSetup.PrintArea = ""
> > Next
> > 'Pour afficher les lignes la fin de l'impression
> > .Range("B:B").EntireRow.Hidden = False
> > End With
> > End Sub
> > '----------------------------------------
> > MichD
> > --------------------------------------------
> > "michir" a crit dans le message de groupe de discussion :
> >
> > Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
> > feuille, avec une macro pour chacune
> > J'utilise cette macro pour une plage, mais elle ne prend pas en compt e
> > la plage sp cifi e, mais la zone d'impression de la derni re
> > impression demand e:
> > Sub Imprimer_suppr_Lv2()
> > Application.ScreenUpdating = False
> > For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
> > If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
> > Next r
> > With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
> > Selection.EntireRow.Hidden = True
> > End With
> > ActiveWindow.SelectedSheets.PrintOut Copies:=1, Col late:=True,
> > _
> > IgnorePrintAreas:úlse
> > Rows().Hidden = False
> > End Sub
> > Comment obliger la macro imprimer la plage indiqu e ?
> > Merci tous
| .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
| SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Dans ta question, tu parles de cellules "VIDES" et la ligne de code qui p récède
fait le travail. Tu devras ajouter juste avant "On error resume next" au cas où
il n'y pas de cellules vides, la méthode specialcells retourne une erre ur et c'est normal.
Si tu préfères employer la boucle, c'est ton choix!
2 approches pour le prix d'une !
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
36bdb4d9-264a-4e61-a877-afdf891dd...@ed10g2000vbb.googlegroups.com...
Re, Oui, merci MichD
Ma question est relative au non masquage des lignes vides malgré
l'instruction :
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Dans une macro précédente tu avais utilisé l'instruction suivante q ui
fonctionnait bien:
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
Je ne suis pas très doué et je ne comprends pas pourquoi ton
instruction avec Range ne fonctionne pas chez moi ?
Merci à toi
Michel
On 31 mar, 13:08, "MichD" <michde...@hotmail.com> wrote:
> Cette procédure fonctionne très bien.
> Elle masque toutes les lignes dont les cellules de la colonne B:B sont totalement vides.
> Elle imprime 2 fois la même plage de cellules que tu as définies da ns la procédure :
> Arr = Array("$J$1:$P$135", "$J$1:$P$135")
> Que veux-tu de plus ?
> '-------------------------------------------------
> Sub Imprimer_suppr_Lv4()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "$J$1:$P$135")
> 'Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = Tru e
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est con cluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> End Sub
> '-------------------------------------------------
> MichD
> --------------------------------------------
> "michir" a écrit dans le message de groupe de discussion :
> abb510af-499f-4229-b4bc-2fe339f3d...@x3g2000yqj.googlegroups.com...
> Bonjour,
> Merci à Isabelle et MichD
> Je préfère joindre mon fichier Ci-joint
> J'ai deux questions:
> . pourquoi le masquage des lignes à l'impression ne fonctionne plus ?
> . pourquoi la macro imprime 2 exemplaires systématiquement ?
> Lien:http://cjoint.com/?0dFjSchyPBW
> Merci
> Michel
> Sub Imprimer_suppr_Lv3()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "$B$1:$I$135")
> Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = Tru e
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est con cluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> Range("$J$1:$P$135").PrintOut Copies:=1, Preview:=True, Collate:= True
> End Sub
> On 30 mar, 19:52, "MichD" <michde...@hotmail.com> wrote:
> > Bonjour,
> > Une autre fa on de faire :
> > '----------------------------------------
> > Sub Imprimer_suppr_Lv2()
> > Dim Arr(), X As String
> > 'Liste tes plages discontinues imprimer
> > Arr = Array("$J$1:$P$135", "R1:Z100")
> > Application.ScreenUpdating = False
> > With Feuil1 ' ActiveSheet
> > 'Pour masquer toutes les lignes dont les cellules de
> > 'la colonne B:B sont totalement vides
> > .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> > SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = T rue
> > 'Impression de chaque plage de cellules d finie
> > For Each elt In Arr
> > .PageSetup.PrintArea = elt
> > .PrintPreview 'tu utilise .Printout si ton test est c oncluant
> > .PageSetup.PrintArea = ""
> > Next
> > 'Pour afficher les lignes la fin de l'impression
> > .Range("B:B").EntireRow.Hidden = False
> > End With
> > End Sub
> > '----------------------------------------
> > MichD
> > --------------------------------------------
> > "michir" a crit dans le message de groupe de discussion :
> > 95bedc35-14a3-4031-8313-2ad6ecc87...@i14g2000yqe.googlegroups.com...
> > Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
> > feuille, avec une macro pour chacune
> > J'utilise cette macro pour une plage, mais elle ne prend pas en compt e
> > la plage sp cifi e, mais la zone d'impression de la derni re
> > impression demand e:
> > Sub Imprimer_suppr_Lv2()
> > Application.ScreenUpdating = False
> > For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
> > If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
> > Next r
> > With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
> > Selection.EntireRow.Hidden = True
> > End With
> > ActiveWindow.SelectedSheets.PrintOut Copies:=1, Col late:=True,
> > _
> > IgnorePrintAreas:=False
> > Rows().Hidden = False
> > End Sub
> > Comment obliger la macro imprimer la plage indiqu e ?
> > Merci tous
| .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
| SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Dans ta question, tu parles de cellules "VIDES" et la ligne de code qui p récède
fait le travail. Tu devras ajouter juste avant "On error resume next" au cas où
il n'y pas de cellules vides, la méthode specialcells retourne une erre ur et c'est normal.
Si tu préfères employer la boucle, c'est ton choix!
2 approches pour le prix d'une !
MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :
Re, Oui, merci MichD
Ma question est relative au non masquage des lignes vides malgré
l'instruction :
.Range("B1:B" & .Range("B65536").End(xlUp).Row). _
SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Dans une macro précédente tu avais utilisé l'instruction suivante q ui
fonctionnait bien:
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
Next r
Je ne suis pas très doué et je ne comprends pas pourquoi ton
instruction avec Range ne fonctionne pas chez moi ?
Merci à toi
Michel
On 31 mar, 13:08, "MichD" wrote:
> Cette procédure fonctionne très bien.
> Elle masque toutes les lignes dont les cellules de la colonne B:B sont totalement vides.
> Elle imprime 2 fois la même plage de cellules que tu as définies da ns la procédure :
> Arr = Array("$J$1:$P$135", "$J$1:$P$135")
> Que veux-tu de plus ?
> '-------------------------------------------------
> Sub Imprimer_suppr_Lv4()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "$J$1:$P$135")
> 'Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = Tru e
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est con cluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> End Sub
> '-------------------------------------------------
> MichD
> --------------------------------------------
> "michir" a écrit dans le message de groupe de discussion :
>
> Bonjour,
> Merci à Isabelle et MichD
> Je préfère joindre mon fichier Ci-joint
> J'ai deux questions:
> . pourquoi le masquage des lignes à l'impression ne fonctionne plus ?
> . pourquoi la macro imprime 2 exemplaires systématiquement ?
> Lien:http://cjoint.com/?0dFjSchyPBW
> Merci
> Michel
> Sub Imprimer_suppr_Lv3()
> Dim Arr(), X As String
> 'Liste tes plages discontinues imprimer
> Arr = Array("$J$1:$P$135", "$B$1:$I$135")
> Application.ScreenUpdating = False
> With Feuil1 ' ActiveSheet
> 'Pour masquer toutes les lignes dont les cellules de
> 'la colonne B:B sont totalement vides
> .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = Tru e
> 'Impression de chaque plage de cellules d finie
> For Each elt In Arr
> .PageSetup.PrintArea = elt
> .PrintPreview 'tu utilise .Printout si ton test est con cluant
> .PageSetup.PrintArea = ""
> Next
> 'Pour afficher les lignes la fin de l'impression
> .Range("B:B").EntireRow.Hidden = False
> End With
> Range("$J$1:$P$135").PrintOut Copies:=1, Preview:=True, Collate:= True
> End Sub
> On 30 mar, 19:52, "MichD" wrote:
> > Bonjour,
> > Une autre fa on de faire :
> > '----------------------------------------
> > Sub Imprimer_suppr_Lv2()
> > Dim Arr(), X As String
> > 'Liste tes plages discontinues imprimer
> > Arr = Array("$J$1:$P$135", "R1:Z100")
> > Application.ScreenUpdating = False
> > With Feuil1 ' ActiveSheet
> > 'Pour masquer toutes les lignes dont les cellules de
> > 'la colonne B:B sont totalement vides
> > .Range("B1:B" & .Range("B65536").End(xlUp).Row). _
> > SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = T rue
> > 'Impression de chaque plage de cellules d finie
> > For Each elt In Arr
> > .PageSetup.PrintArea = elt
> > .PrintPreview 'tu utilise .Printout si ton test est c oncluant
> > .PageSetup.PrintArea = ""
> > Next
> > 'Pour afficher les lignes la fin de l'impression
> > .Range("B:B").EntireRow.Hidden = False
> > End With
> > End Sub
> > '----------------------------------------
> > MichD
> > --------------------------------------------
> > "michir" a crit dans le message de groupe de discussion :
> >
> > Bonjour, Je souhaiterais imprimer deux plage diff rentes d'une m me
> > feuille, avec une macro pour chacune
> > J'utilise cette macro pour une plage, mais elle ne prend pas en compt e
> > la plage sp cifi e, mais la zone d'impression de la derni re
> > impression demand e:
> > Sub Imprimer_suppr_Lv2()
> > Application.ScreenUpdating = False
> > For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
> > If IsEmpty(Cells(r, "B")) Then Rows(r).Hidden = True
> > Next r
> > With ActiveSheet.PageSetup.PrintArea = "$J$1:$P$135"
> > Selection.EntireRow.Hidden = True
> > End With
> > ActiveWindow.SelectedSheets.PrintOut Copies:=1, Col late:=True,
> > _
> > IgnorePrintAreas:úlse
> > Rows().Hidden = False
> > End Sub
> > Comment obliger la macro imprimer la plage indiqu e ?
> > Merci tous