Bonsoir =C3=A0 tous,
Avec le code suivant (tronqu=C3=A9 pour faire court) j'ins=C3=A8re des saut=
de page en fonction du code "1" que j'ai mis dans une colonne, et une bouc=
le qui parcourt les cellules en descendant pas de 1 s'il n'y a pas le code =
1. Malheureusement j'ai un probl=C3=A8me avec les lignes masqu=C3=A9es (oui=
, il y en a), que la macro parcourt alors que je souhaiterais passer =C3=A0=
la suivante visible..
Je vous remercie d'avance pour vos id=C3=A9es ou solutions,
Emile
---------------------------------------------------------------------------=
-----
Do While ActiveCell.Value <> ""
If ActiveCell =3D 1 Then ' 1 =3D Insertion du saut de page
MaCellule =3D ActiveCell.Address(RowAbsolute:=3DFalse, Colu=
mnAbsolute:=3DFalse)
Selection.EntireRow.Select
Selection.PageBreak =3D xlManual
Range(MaCellule).Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
---------------------------------------------------------------------------=
----------
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
Emile63
Le Tuesday, September 8, 2020 à 1:45:53 AM UTC+2, MichD a écrit :
Le 07/09/20 à 18:16, Emile63 a écrit :
Do While ActiveCell.Value <> "" If ActiveCell = 1 Then ' 1 = Insertion du saut de page MaCellule = ActiveCell.Address(RowAbsolute:lse, ColumnAbsolute: lse) Selection.EntireRow.Select Selection.PageBreak = xlManual Range(MaCellule).Offset(1, 0).Select Else ActiveCell.Offset(1, 0).Select End If Loop
Bonjour, Essaie comme ceci : 'En déclarant une variable comme ceci, Dim X As XlPageBreak 'Dès que tu tapes le symbole = apparaissent les 3 possibilité s que peut prendre cette variable. X = xlPageBreakManual '-------------------------------------------- Sub test() Dim Rg As Range, C As Range Dim X As XlPageBreak X = xlPageBreakManual 'Adapte le nom de l'onglet de la feuille With Worksheets("Feuil1") 'adapte la plage de cellules si requise Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With For Each C In Rg.SpecialCells(xlCellTypeVisible) If C.Value = 1 Then C.EntireRow.PageBreak = X End If Next End Sub '-------------------------------------------- MiichD
Merci , et bonne soirée. Emile
Le Tuesday, September 8, 2020 à 1:45:53 AM UTC+2, MichD a écrit :
Le 07/09/20 à 18:16, Emile63 a écrit :
> Do While ActiveCell.Value <> ""
> If ActiveCell = 1 Then ' 1 = Insertion du saut de page
> MaCellule = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute: =False)
> Selection.EntireRow.Select
> Selection.PageBreak = xlManual
> Range(MaCellule).Offset(1, 0).Select
> Else
> ActiveCell.Offset(1, 0).Select
> End If
> Loop
Bonjour,
Essaie comme ceci :
'En déclarant une variable comme ceci,
Dim X As XlPageBreak
'Dès que tu tapes le symbole = apparaissent les 3 possibilité s que peut
prendre cette variable.
X = xlPageBreakManual
'--------------------------------------------
Sub test()
Dim Rg As Range, C As Range
Dim X As XlPageBreak
X = xlPageBreakManual
'Adapte le nom de l'onglet de la feuille
With Worksheets("Feuil1")
'adapte la plage de cellules si requise
Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With
For Each C In Rg.SpecialCells(xlCellTypeVisible)
If C.Value = 1 Then
C.EntireRow.PageBreak = X
End If
Next
End Sub
'--------------------------------------------
Le Tuesday, September 8, 2020 à 1:45:53 AM UTC+2, MichD a écrit :
Le 07/09/20 à 18:16, Emile63 a écrit :
Do While ActiveCell.Value <> "" If ActiveCell = 1 Then ' 1 = Insertion du saut de page MaCellule = ActiveCell.Address(RowAbsolute:lse, ColumnAbsolute: lse) Selection.EntireRow.Select Selection.PageBreak = xlManual Range(MaCellule).Offset(1, 0).Select Else ActiveCell.Offset(1, 0).Select End If Loop
Bonjour, Essaie comme ceci : 'En déclarant une variable comme ceci, Dim X As XlPageBreak 'Dès que tu tapes le symbole = apparaissent les 3 possibilité s que peut prendre cette variable. X = xlPageBreakManual '-------------------------------------------- Sub test() Dim Rg As Range, C As Range Dim X As XlPageBreak X = xlPageBreakManual 'Adapte le nom de l'onglet de la feuille With Worksheets("Feuil1") 'adapte la plage de cellules si requise Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With For Each C In Rg.SpecialCells(xlCellTypeVisible) If C.Value = 1 Then C.EntireRow.PageBreak = X End If Next End Sub '-------------------------------------------- MiichD