IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

blocs non sécables à l'impression


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 24
    Par défaut blocs non sécables à l'impression
    Bonjour,
    Je suis stagiaire et mon job est de faire de l'automatisation excel avec plein de macro ...
    Voilà, je vous plante le décor:
    - J'ai ma feuille excel qui fait 700 lignes
    - Ma feuille est composée d'une grande zone en-tête et de nombreux blocs d'informations.
    - Pour qu'un "bloc" s'affiche, il doit répondre à de nombreuses conditions
    - Les autres blocs sont masqués.
    - Les blocs font tous une 15aine de lignes

    Mon problème est le suivant:
    Lors de l'impression je ne veux pas qu'un bloc commence sur une page est finisse sur l'autre, je veux qu'excel descende le bloc entier sur la feuille suivante quitte à laisser une partie blanche sur la feuille précédente.

    J'espère que je suis assez clair,
    Dans l'attente de votre réponse,
    Cordialement,
    Fangio

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut fangio et le forum
    Clair... mais pas précis
    Mon problème est le suivant:
    Lors de l'impression je ne veux pas qu'un bloc commence sur une page est finisse sur l'autre, je veux qu'excel descende le bloc entier sur la feuille suivante quitte à laisser une partie blanche sur la feuille précédente.
    Moi, ça me donne une réponse évidente : un saut de page manuel à la fin de chaque bloc .

    On ne peut utiliser un comptage de lignes, il manque trop d'éléments : les lignes sont-elles toutes de la même hauteur ? le nombre de lignes par page ? Les blocs ont-ils tous le même nombre de lignes ("Quinzaine" n'est pas un chiffre précis : de 14 à 16 rentre dans ce terme) ? Comment détermine-t-on un bloc ?

    Une fois les blocs visibles, il suffit de vérifier l'absence de saut de page automatique dans les blocs, sinon, de faire un saut de page manuel avant le bloc, après avoir ajusté le zoom d'impression, si nécessaire, de sorte que le bloc le plus long tienne sur une page.
    A+

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Par défaut
    le probleme, c'est que si tu mets un saut apres chaque bloc, si avant, tu pouvait mettre 3 bloc par page par exemple, tu n'en auras plus qu'un. Augmentant beaucoup le nombre de page

    Si tu as une séparation de bloc claire qui peut etre captée en VBA (si chaque bloc est suivit de lignes blanches par exemple, ou si chaque bloc se termine par Total dans une colonne), alors tu peux bidouiler un compteur et inserer un saut de page apres le dernier bloc complet, mais ca va demander de ne pas changer la mise en page (si tu as par exemple 50 lignes par page, que tu fais le vba autour de ca, et puis que tu passes de portrait a pyasage, il faudra adapter en fonction du nouveau nombre de ligne)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 24
    Par défaut
    Bonjour,

    Pas bête l'idée des saut de pages (je ne connaissais pas )!
    C'est donc la première proposition (de Gorfael) que j'ai testé malgrès avoir lu la réponse de EmmanuelleC. Et, effectivement elle a raison. Excel ce moque de savoir si les lignes avant est après le saut de page inséré manuellement sont masqué ou pas... Ce qui pose des problèmes (le nombre de page que cela produit dont parlait manu(j'abrège ton nom, ne m'en veut pas )).

    Ma feuille est ainsi contruite, un certain nombre de lignes "en-tête", un groupe de lignes, ensuite tous mes bloc.
    Un bloc c'est :
    - 2 lignes vide (pour la présentation, il faut aéré )
    - 4 lignes de présentation du bloc en quelque sorte (avec des cellules fusionnées par endroit)
    - 3 lignes correspondant à un premier trimestre (avec des cellules fusionnées par endroit)
    - 3 lignes correspondant à un second trimestre (avec des cellules fusionnées par endroit)
    - 3 lignes correspondant à un troisième trimestre (avec des cellules fusionnées par endroit)


    Ce que je n'ai pas encore évoqué, c'est qu'un petit UserForm permet de cacher les trimestres non désirés à l'affichage par l'utilisateur.

    Alors, je voudrais un affichage particulier lorsque:
    -tout les blocs qui répondent à mes conditions sont complet
    -un trimestre est caché (T1, T2 ou T3)
    -deux trimestres sont cachés (T1&2, T1&3 ou T2&3)
    -trois trimestres sont cachés (T1&2&3)

    Alors j'ai une idée mais por cela:
    Et il possible que excel ne prenne en compte que les lignes affichées?

    Si oui, il faut, qu'excel voie les bonnes ligne est qu'il insert des sauts de pages toutes le X lignes (ensuite je fait des paramètres d'affichage conditionnels si je suis dans tel ou tel cas)...
    Voilà, je requière votre aide! ( Gorfael & ManuC & tout ceux qui sont qui le peuvent)

    Merci d'avance,
    Fangio


  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Par défaut
    mmm, alors, ca serait pour moi

    je compterais combien j'ai de ligne sur ma page (avec un truc du genre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derlgn = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
    j'enleverai tout les saut de pages (pour éviter de cumuler ceux fait par la macro précédente et ceux qu'on va faire) (avec un code sur base de ca )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.ResetAllPageBreaks
    Ensuite, je ferai une boucle (du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i = nombre to derligne
    et a la place de nombre, si le début du document est formaté autrement, tu met le début du premier bloc. S'il n'y a pas de formatage différent)

    Je ferait un if ou je vérifie si la ligne est cachée (un code du genre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if Rows(i).Hidden then
    end if
    Si oui, je ne fais rien, sinon, j'incrémente de 1 un compteur (comme ca, on ne compte que les lignes visible)

    Je vérifie aussi si je suis au début d'un bloc avec un if (pour ca je vérifie)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (cells(i -2,x) = cells(i-1 ,x)) and (cells(i-1 ,x) ="") then
    Si c'est le cas, je met i dans une variable (pour savoir ou a commencé le dernier bloc)

    Et ensuite, je referais un if pour tester si mon compteur est égal a un certain nombre (ton nombre de ligne max par page) et si c'est le ca, j'insere un page break au dessus de la ligne qu'on a stocké dans la variable comme étant le début du dernier bloc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(variable)
    voila, essaye avec ca et s'il y a un probleme, dis nous ou ca bloque

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 24
    Par défaut
    Bonjour,
    Je dois avouer que j'ai décroché au moment où tu regarde si tu es au début du bloc (ou pas).
    Peux-tu développer à partir de là?
    Merciii

Discussions similaires

  1. [WD15] Etat couper un bloc non sécable
    Par elscorpio dans le forum WinDev
    Réponses: 6
    Dernier message: 11/02/2013, 17h13
  2. Réponses: 8
    Dernier message: 01/12/2010, 15h51
  3. Réponses: 0
    Dernier message: 18/03/2010, 14h32
  4. taille des blocs non respectées - balise h1, h2, etc
    Par polo66 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 06/10/2009, 18h57
  5. [Forms 6i] Bloc non basé et navigation
    Par macben dans le forum Oracle
    Réponses: 3
    Dernier message: 13/01/2006, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo