zone d'impression avec volet figé

breeze

XLDnaute Occasionnel
Bonjour, Je veux savoit si l'on peut définir une zone d'impression quand on a un colonne de figée.
J'ai un tableau en d jai une liste de 400 noms (D5:d405)
je déplace les colonnes pour voir des résultats
a la premiere étape de vois les colonnes D E F G H I J
2ième étape de vois les colonne D K L M N O P
3ième étape je vois D Q R S T U V
etc...
Je voudrais que maacro peuiise imprimer les 7 colonnes présentre à l'écran

ESt-ce possible ???
Merci
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : zone d'impression avec volet figé

Bonjour breeze, salut hoerwind,

Je suppose que vous avez créé 2 volets, la séparation étant entre les colonnes D et E.

1) Menu Fichier-Mise en page-Feuille => Colonnes à répéter à gauche : $D:$D

2) Lancer cette macro :

Code:
Sub Impression()
ActiveWindow.Panes(2).VisibleRange.Resize(, 6).PrintOut
End Sub
La zone visible du 2ème volet est imprimée sur 6 colonnes.

A+
 

breeze

XLDnaute Occasionnel
Re : zone d'impression avec volet figé

BonjourJob 75,
J'ai essayer la macro mais ça ne fonctionne pas. Elle imprime sur 6 colonne mais comme j'ai beaucoup de colonneelle m'imprime 50 pages de 6 colonne et non les 6 première colonne qui apparaissent après ma colonne D.

Merci
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : zone d'impression avec volet figé

Re,

Chez moi la macro n'imprime que les 6 premières colonnes visibles + la colonne D.

Normal puisqu'il y a Resize(, 6).

Et je n'ai défini aucune zone d'impression.

Il faudrait voir votre fichier.

A+
 

breeze

XLDnaute Occasionnel
Re : zone d'impression avec volet figé

Présentement elle imprime les 6 premières colonne mais juste les 3 premières lignes qui sont figées.
Les autre lignes que je filtre me s'imprime pas .
Ma colonne D qui est figé ne s'imprime pas
Merci
 

job75

XLDnaute Barbatruc
Re : zone d'impression avec volet figé

Re,

Il faudrait quand même savoir ce que vous faites exactement :confused:

1) Au post #4 vous dites que ma macro imprime 50 pages, ce n'est plus le cas ?

2) Au post #3 j'ai précisé qu'elle fonctionne pour 2 volets, maintenant je crois comprendre qu'il y en a 4 (3 premières lignes figées ?).

Alors expliquez-vous clairement une bonne fois pour toutes.

A+
 

job75

XLDnaute Barbatruc
Re : zone d'impression avec volet figé

Re,

Je vais aller me coucher et vous laisse vous débrouiller avec ce qui suit.

Je suppose que vous avez créé 4 volets, les séparations étant entre les lignes 3 et 4 et les colonnes D et E.

1) Menu Fichier-Mise en page-Feuille :

=> lignes à répéter en haut : $1:$3 (si nécessaire)
=> Colonnes à répéter à gauche : $D:$D

2) Lancer cette macro :

Code:
Sub Impression()
Dim txt As String
1 txt = InputBox("Impression sur les 6 premières colonnes visibles." & _
  vbLf & vbLf & "Entrez le nombre de lignes à imprimer (max 1000) :")
If txt = "" Then Exit Sub
If Val(txt) < 1 Or Val(txt) > 1000 Then GoTo 1
ActiveWindow.Panes(4).VisibleRange.Resize(Val(txt), 6).PrintOut
End Sub
A+
 

breeze

XLDnaute Occasionnel
Re : zone d'impression avec volet figé

Bonjour,
Finalement j'ai réessayé celle-ci ActiveWindow.Panes(2).VisibleRange.Resize(405, 7).PrintOut .
et ça fontionne très bien.
Je pense que je vais prendre cela et je l'essairai demain au bureau pour voir si tout fonctionne bien.
Je te tremercie mille fois pour tout le temps que tu m'as consacré. Tu es génial
Merci encore
 

job75

XLDnaute Barbatruc
Re : zone d'impression avec volet figé

Bonjour breeze, le forum,

Je vois que vous voulez imprimer maintenant 7 colonnes avec un maximum de 405 lignes.

Voici quelques compléments qui vous seront utiles.

1) Menu Fichier-Mise en page-Page => Ajuster : 1 page en largeur.

2) Mettez bien la macro Impression dans un module standard.

Maintenant elle imprime toujours dans le dernier volet (2 ou 4) et détermine la dernière cellule à imprimer :

Code:
Sub Impression()
Dim plage As Range, dercel As Range
Set plage = ActiveWindow.Panes(ActiveWindow.Panes.Count).VisibleRange.Resize(1000, 7)
Set dercel = plage.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If dercel Is Nothing Then MsgBox "Rien à imprimer...": Exit Sub
Set plage = Intersect(plage, [1:1].Resize(dercel.Row))
Application.EnableEvents = False 'pour désactiver l'événement BeforePrint
plage.PrintOut 'impression de plage
Application.EnableEvents = True
End Sub
3) Elle sera lancée par l'une des commandes Imprimer standard grâce à cette macro à placer dans ThisWorkbook :

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.CodeName = "Feuil1" Then 'Feuil1 => CodeName, à adapter
  Cancel = True 'annule la commande Imprimer standard
  Impression 'lance la macro
End If
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 982
Membres
103 997
dernier inscrit
SET2A