Souci de code VBA

bonjour ,

j'ai trouvé un code sur le web qui permet de masquer des cellules avant l’impression , je l'ai essayé mais ça n'a rien donné

le code est le suivant :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If ActiveSheet.Name = "feuil1" Then
        Cancel = True
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        With ActiveSheet
    .Range("a6,D31").EntireColumn.Hidden = True
    .PrintOut
    .Range("a6,D31").EntireColumn.Hidden = False
End With
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End If
End Sub

si vous pouvez SVP m'aider à régler ce problème je vous serais reconnaissant .

21taoat.zip (124.15 Ko)

Bonjour,

Le nom de la feuille n'est pas identique à celui écrit dans le code, tout simplement.

"Feuil1 <> feuil1"

feuille <> code

Quand tu es dans ton code, frappe F8 pour faire du pas-à-pas.

Gelinotte

gelinotte a écrit :

Bonjour,

Le nom de la feuille n'est pas identique à celui écrit dans le code, tout simplement.

"Feuil1 <> feuil1"

feuille <> code

Quand tu es dans ton code, frappe F8 pour faire du pas-à-pas.

Gelinotte

merci pour ta réponse , j'ai changé " feuil1 " en " Feuil1 " mais ça n'a rien donné non plus

Bonjour

Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Ws As Worksheet
Dim Plage As Range

    Set Ws = ActiveSheet
    If Ws.Name = "Feuil1" Then Exit Sub

    Application.ScreenUpdating = False

    With Ws
        Set Plage = Ws.Range("A6:D31")
        Plage.EntireColumn.Hidden = True
        .PrintOut
        Plage.EntireColumn.Hidden = False
    End With

    Set Ws = Nothing: Set Plage = Nothing

End Sub
Jean-Eric a écrit :

Bonjour

Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Ws As Worksheet
Dim Plage As Range

    Set Ws = ActiveSheet
    If Ws.Name = "Feuil1" Then Exit Sub

    Application.ScreenUpdating = False

    With Ws
        Set Plage = Ws.Range("A6:D31")
        Plage.EntireColumn.Hidden = True
        .PrintOut
        Plage.EntireColumn.Hidden = False
    End With

    Set Ws = Nothing: Set Plage = Nothing

End Sub

merci pour le code jean-eric , mais toujours rien

Bonjour

Déplace la macro du module vers THISWORKBOOK puis lance ton impression

Dans ton fichier elle est dans un module

Amicalement

Dan a écrit :

Bonjour

Déplace la macro du module vers THISWORKBOOK puis lance ton impression

Dans ton fichier elle est dans un module

Amicalement

bonjour Dan , j'ai pas compris ce que je dois faire exactement

comment déplacer le macro vers THISWORKBOOK ?

Re,

  • Va dans le module où elle se trouve (Module 2)
  • Sélectionne le code
  • Couper
  • Dans VBA double clique sur l'icone THISWORKBOOK
  • Colle le code dans la fenetre

Pour imprimer, exécute l'impression comme tu le fais habituellement

Dan a écrit :

Re,

  • Va dans le module où elle se trouve (Module 2)
  • Sélectionne le code
  • Couper
  • Dans VBA double clique sur l'icone THISWORKBOOK
  • Colle le code dans la fenetre

Pour imprimer, exécute l'impression comme tu le fais habituellement

j'ai déplacé le macro comme tu me l'a demandé , mais toujours rien

je l'ai même essayé sur d'autres fichiers

est ce que t'as essayé le code sur le fichier joint ??

Re,

fais un peu le test suivant :

Dans un module, mets ce code

Sub test()
Application.EnableEvents = True
End sub

Exécute ce code puis refais un essai avec la macro Beforeprint

Amicalement

Dan a écrit :

Re,

fais un peu le test suivant :

Dans un module, mets ce code

Sub test()
Application.EnableEvents = True
End sub

Exécute ce code puis refais un essai avec la macro Beforeprint

Amicalement

c'est fait , mais tjrs rien

tous les codes qui commencent avec private sub ne fonctionne pas chez moi

Re,

Les codes avec private sub sont placés où dans ton fichier ?

Edit Dan : dans le fichier que tu as placé sur le forum tu as deux fois la même macro en VBA. Une fois dans le module et une fois dans la feuille 1. Tu ne dois l'avoir qu'une seule fois et ce, dans thisworkbook comme je te l'ai expliqué avant

Dan a écrit :

Re,

Les codes avec private sub sont placés où dans ton fichier ?

Edit Dan : dans le fichier que tu as placé sur le forum tu as deux fois la même macro en VBA. Une fois dans le module et une fois dans la feuille 1. Tu ne dois l'avoir qu'une seule fois et ce, dans thisworkbook comme je te l'ai expliqué avant

j'ai crée un autre fichier , et j'ai copier/coler le code dans (THISWORKBOOK) et c'est pareil , toujours rien

peut être à cause de ma version 2013 d'excel !!!


et pour le code je l'ai coller dans THISWORKBOOK , et j'ai effacé tout les modules ça n'a rien donné non plus

Re,

Pas sur que ce soit cela le souci mais enregistre ton fichier avec l'extension *.XLSM puis refais un essai

A te relire

Dan a écrit :

Re,

Pas sur que ce soit cela le souci mais enregistre ton fichier avec l'extension *.XLSM puis refais un essai

A te relire

je m'excuse pour le dérangement Dan

je vois pas d'extension xmls , j'ai essayer avec (classeur excel prenant en charge les macros ) mais ça n'a rien donné

taoat zps03a075ba

re,

C'est bon pour le classeur prenant les macros en charge.

Bon cela a l'air plus problématique là

Tu peux replacer ton fichier que je regarde si tout est ok

le voila , et merci pour tout

6taoat.xlsm (20.58 Ko)

RE

Mets la Private Sub CommandButton1_Click() dans la feuil1 et non dans le module

Pour excéuter le code il faut cliquer sur l'icone imprimer ou imprimer via le menu Fichier. C'est ce que tu fais ?

A te relire

j'ai suivi tes instructions , mais tjrs rien

j'imprime par l'icone d’impression rapide ...

est ce que ça a marché chez toi ??

Rechercher des sujets similaires à "souci code vba"