Zone impression sur filtre élaboré (vba)

TomG_

XLDnaute Nouveau
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
 
C

Compte Supprimé 979

Guest
Re : Zone impression sur filtre élaboré (vba)

Bonjour TomG_ et bienvenue sur ce forum ;)

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.

Quelque chose que je ne comprends pas !?

Si tes lignes sont filtrées, elles ne sont pas visibles ...
dont la zone que tu as définit préalablement est toujours valable ... non !?

Si tu imprimes ton document tu n'auras que les lignes visibles
:eek:


A+
 

TomG_

XLDnaute Nouveau
Re : Zone impression sur filtre élaboré (vba)

En fait, le filtre permet d'avoir certains éléments de la liste. Par la suite, je veux définir une zone d'impression selon les heures. Par exemple, je veux imprimer toutes les données comprises entre 5:00 et 7:00 (cellules S18 et S19), la zone d'impression selon mon code fonctionne et se définie bien lorsque les données ne sont pas filtrées. Lorsque je filtre, il ne reconnait pas la zone de recherche : Range("F1:F50000").Find(debut, lookat:=xlWhole)

Merci
 

Discussions similaires

Réponses
0
Affichages
153
Réponses
2
Affichages
153
Réponses
2
Affichages
118

Statistiques des forums

Discussions
312 243
Messages
2 086 550
Membres
103 245
dernier inscrit
gdesign