Bonjour,
Je suis nouveau ici, malgré que votre forum m'a beaucoup aidé sur d'autres problèmes. Je vous en remercie!
En ce moment, je cherche à résoudre un problème que je n'ai pas trouvé de solution ailleurs, donc voici ma situation.
Je voudrais faire une macro qui me permetterait d'établir une zone d'impression sur des données filtrées...
Par exemple, j'ai 1000 ligne, lorsque je filtre selon certains critères, je réduis ma liste à 100 lignes.
Je suis capable en ce moment de définir une zone d'impression sur une plage fixe (non filtrée), mais je ne sais pas comment ajuster le code pour que ça fonctionne sur une plage filtrée.
Macro du filtre:
Sub Bouton1_Cliquer()
Range("B22:O50000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("B1:O2"), Unique:=False
End Sub
Macro de la zone d'impression:
Dim debut As Date, fin As Date, lignedebut As Range, lignefin As Range, ligne1 As Integer, ligne2 As Integer
debut = Range("S18")
fin = Range("S19")
Set lignedebut = Range("F1:F50000").Find(debut, lookat:=xlWhole)
If lignedebut Is Nothing Then
MsgBox ("Bogue")
Else
ligne1 = lignedebut.Row
End If
Set lignefin = Range("F1:F50000").Find(fin, lookat:=xlWhole)
If lignefin Is Nothing Then
MsgBox ("Bogue")
Else
ligne2 = lignefin.Row
End If
Set debutcell = Range("F" & ligne2)
Set currentcell = Range("F" & ligne2)
Set nextcell = currentcell.Offset(1, 0)
Do While debutcell + 6.8287037037037E-04 >= currentcell
If currentcell + 6.8287037037037E-04 >= nextcell Then
Set currentcell = nextcell
Set nextcell = currentcell.Offset(1, 0)
End If
Set fincell = currentcell.Offset(-1, 0)
Loop
Range("B" & ligne1, "O" & fincell.Row).Select
ActiveSheet.PageSetup.PrintArea = _
Selection.Address
End Sub
Je suis nouveau ici, malgré que votre forum m'a beaucoup aidé sur d'autres problèmes. Je vous en remercie!
En ce moment, je cherche à résoudre un problème que je n'ai pas trouvé de solution ailleurs, donc voici ma situation.
Je voudrais faire une macro qui me permetterait d'établir une zone d'impression sur des données filtrées...
Par exemple, j'ai 1000 ligne, lorsque je filtre selon certains critères, je réduis ma liste à 100 lignes.
Je suis capable en ce moment de définir une zone d'impression sur une plage fixe (non filtrée), mais je ne sais pas comment ajuster le code pour que ça fonctionne sur une plage filtrée.
Macro du filtre:
Sub Bouton1_Cliquer()
Range("B22:O50000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("B1:O2"), Unique:=False
End Sub
Macro de la zone d'impression:
Dim debut As Date, fin As Date, lignedebut As Range, lignefin As Range, ligne1 As Integer, ligne2 As Integer
debut = Range("S18")
fin = Range("S19")
Set lignedebut = Range("F1:F50000").Find(debut, lookat:=xlWhole)
If lignedebut Is Nothing Then
MsgBox ("Bogue")
Else
ligne1 = lignedebut.Row
End If
Set lignefin = Range("F1:F50000").Find(fin, lookat:=xlWhole)
If lignefin Is Nothing Then
MsgBox ("Bogue")
Else
ligne2 = lignefin.Row
End If
Set debutcell = Range("F" & ligne2)
Set currentcell = Range("F" & ligne2)
Set nextcell = currentcell.Offset(1, 0)
Do While debutcell + 6.8287037037037E-04 >= currentcell
If currentcell + 6.8287037037037E-04 >= nextcell Then
Set currentcell = nextcell
Set nextcell = currentcell.Offset(1, 0)
End If
Set fincell = currentcell.Offset(-1, 0)
Loop
Range("B" & ligne1, "O" & fincell.Row).Select
ActiveSheet.PageSetup.PrintArea = _
Selection.Address
End Sub