Masquer des cellules lors de l'impression

Anonyme
2015-09-15T09:27:12+00:00

Bonjour à vous!

Dans le forum il y a deja une question semblable mais je n'arrive pas à adapter les macro que j'ai trouvé à mon cas. En effet je voudrais masqué des lignes de sortes à ne pas les imprimé mais avec condition. Je m'explique:

Considerons l'image joint, je voudrais une macro qui masque les lignes qui ne sont pas les coupures de la devise qui se trouve dans la cellule D11.

Si dans D11 il y a CFAO alors la macro masque les lignes 21:27

Si dans D11 il y a DOLLAR alors la macro masque les lignes 16:21

Si dans D11 il y a EURO alors la macro masque les lignes 16:19 et la ligne 27

Si dans D11 il y a LIVRES STERLING alors la macro masque les lignes 16:22 et la ligne 27

apres l'impression toutes les lignes devrons reapparaitre.

NB: Nottons que la plage A1:M33 est variable

Merci

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

26 réponses

  1. DanielCo 107.1K Points de réputation
    2015-09-26T11:21:24+00:00

    Bonjour,

    Essaie, je n'ai pas ton classeur.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2015-09-26T11:03:45+00:00

    Bonjour monsieur Daniel

    seul "A1:M34" qui a marché mais la aussi les lignes ne se sont pas masquées, je ne sais pas si c'est à l'impression que je ne verrai plus les lignes.

    Merci et bon week end.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.1K Points de réputation
    2015-09-25T17:42:16+00:00

    Bonjour,

    Printarea attend l'adresse d'une plage, pas un objet "Range", mets donc :

    ActiveSheet.PageSetup.PrintArea = [A1:M34].Address

    ou :

    ActiveSheet.PageSetup.PrintArea = "A1:M34"

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2015-09-25T17:18:46+00:00

    Bonjour

    J'ai essayé la macro, elle fonctionne tres bien le seul probleme est que j'ai pas compris toutes ses lignes.

    Quand à la macro qui masque les lignes en fonction de la devise choisie lors de l'impression, j'ai voulu qu'il y ai d'abord l'aperçu avant impression j'ai donc modifié un peu la macro que vous m'aviez envoyé mais elle génère une erreur lors de l'execution: (Erreur d'execution "1004". Désolé... Nous avons rencontré un probleme avec cette formule: nous n'avons pas trouvé de réference de plage ou de nom défini)

    Voici la macro que j'execute:

    Sub Masquer_lignes() <br><br>'Pour masquer les coupures non pris en charge par la devise choisit <br><br>     Select Case [D11].Value <br><br>         Case "CFAO": [21:27].EntireRow.Hidden = True <br><br>         Case "DOLLAR": [16:21].EntireRow.Hidden = True <br><br>         Case "EURO": [16:19].EntireRow.Hidden = True: Rows(27).Hidden = True <br><br>         Case "LIVRES STERLING": [16:22].EntireRow.Hidden = True: Rows(27).Hidden = True <br><br>     End Select <br><br>     ActiveSheet.PageSetup.PrintArea = [A1:M34] <br><br>     [A1:M34].PrintPreview <br><br>     Cells.EntireRow.Hidden = False <br><br>     ActiveWorkbook.Save <br><br>End Sub

    Le débogage colore la ligne soulignée.

    je ne comprends pas pourquoi elle génère un erreur.

    Merci

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2015-09-25T08:01:47+00:00

    Bonjour Monsieur Daniel

    Merci pour la macro, je l'essaye mais avant si voulez bien me donnez les explications.

    Merci

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire