XL 2019 Problème d'impression

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Pieerre69

XLDnaute Junior
Bonjour à tous,

J'ai, dans mon fichier Excel, des commandes boutons pour imprimer des zones d'impressions. Quand je clique sur le bouton, Excel mouline, ferme et se réouvre. Je n'ai aucunes idées pourquoi ça ne fonctionne pas, alors que ça marchait très bien avant.

Précision : même faire CTRL+P sur n'importe quelle feuille/cellule/données/Etc fait "planter" le logiciel.

Je vous joint mon fichier, ainsi que le code.

VB:
Private Sub Workbook_Open()

Application.ScreenUpdating = False

Sheets("MENU PRINCIPAL").Activate
For i = 1 To 7
    Sheets("MAGASIN " & i).Visible = xlSheetHidden
Next

End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Call remise_a_zero
    ActiveWorkbook.Save
    
End Sub
Sub redirection_mag()

Application.ScreenUpdating = False

Dim choix_mag As String
Dim num_anomalie As Integer

num_anomalie = Range("A2").Value
num_anomalie = num_anomalie + 1
Range("A2") = num_anomalie
choix_mag = Range("A1")

Sheets(choix_mag).Visible = xlSheetVisible
Sheets(choix_mag).Select
ActiveSheet.Unprotect
Range("C4") = num_anomalie
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Sub retour_accueil()

Sheets("MENU PRINCIPAL").Select

End Sub

Sub GoTo_decla_fiche()

Sheets("FICHE DE DECLARATION").Select

End Sub
Sub impression_parent()

Dim val As Integer

val = Range("C4").Value

If val <> 0 Then
    ActiveSheet.PageSetup.PrintArea = "A1:D33"
    ActiveSheet.PrintOut
    Else
    MsgBox "NUMÉRO D'ANOMALIE NON DETECTÉ, REVENIR AU MENU PRINCIPAL ET RELANCER LA DÉCLARATION MANQUANT", vbOKCancel + vbCritical, "ERREUR"
    
End If

End Sub
Sub impression_enfant()

Dim val As Integer

val = Range("M4").Value

If val <> 0 Then
    ActiveSheet.PageSetup.PrintArea = "K1:N33"
    ActiveSheet.PrintOut
    Else
    MsgBox "VEUILLEZ INDIQUER UN NUMÉRO D'ANOMALIE", vbOKCancel + vbExclamation, "ERREUR"
    
End If

End Sub
Sub impression_decla()

Dim val As Integer

val = Range("C9").Value

If val <> 0 Then
    ActiveSheet.PageSetup.PrintArea = "A1:D32"
    ActiveSheet.PrintOut
    Else
    MsgBox "VEUILLEZ INDIQUER UN NUMÉRO D'ANOMALIE", vbOKCancel + vbExclamation, "ERREUR"
    
End If

End Sub

Sub remise_a_zero()

    Application.ScreenUpdating = False
    Dim i As Integer
    'RaZ fiche décla
    Sheets("FICHE DE DECLARATION").Activate
    Range("B6:B7").Select
    Selection.ClearContents
    Range("D6:D7").Select
    Selection.ClearContents
    Range("C8:D8").Select
    Selection.ClearContents
    Range("C9:D9").Select
    Selection.ClearContents
    Range("A12:D26").Select
    Selection.ClearContents
    Range("C28:D28").Select
    Selection.ClearContents
    Range("B30:D32").Select
    Selection.ClearContents
    'RaZ magasins
    For i = 1 To 7
        Sheets("MAGASIN " & i).Activate
        Range("A9:D33").Select
        Selection.ClearContents
        Range("K9:N33").Select
        Selection.ClearContents
        Range("m4").Select
        Selection.ClearContents
    Next
    
End Sub
 

Pièces jointes

Bonjour,



Avant quoi ?

Si tu essaies d'imprimer un autre classeur, ça fonctionne sans problème ?

Daniel
Avant que je modifie quelque chose, mais impossible de me souvenir quoi.
Le fichier semble corrompu car je peux imprimer d'autres classeurs, et personne n'arrive à imprimer ce fichier.
Mais je ne sais pas dire d'où vient cette "corruption" de données..

J'ai transvasé le fichier sur un nouveau (VBA, formules et feuilles) et tout fonctionne normalement. C'est à n'y rien comprendre !!
 
J'ai trouvé le soucis ! Dans les macros (d'ouverture et de fermeture), je mettais "Sheets("xxxxxx").activate et je les laissais activé en permanence... Du coup le fichier moulinait sans arrêt et plantait quand on lui demandait des ressources (impression, modif de style sur une plage de selection).
J'ai remplacé par sheets("xxxx").select. Tout est rentré dans l'ordre, encore merci
 
Ce n'est sans doute pas la cause du problème. L"instruction "Activate" n'est pas permanente. Son effet est le même que de cliquer sur un onglet. De plus le classeur que je t'ai retourné fonctionne, sans modification de code.

Daniel
En tout cas je n'ai plus d'erreurs d'impression !
Par contre j'ai une erreur d'éxécution du code.. (cf. photo)
1580478705889.png


C'est la ligne Sheets(i).select qui déconne.
Avant j'avais pour i allant de 1 à 7, faire
sélectionner la feuille ("MAGASIN " & i)

mais ça faisait cette erreur également.

Je ne vois pas comment réglé ce soucis
 
Celle-ci.
VB:
Sub remise_a_zero()
 
    Application.ScreenUpdating = False
    Dim i As Integer
    'RaZ fiche décla
    Sheets("FICHE DE DECLARATION").Activate
    Range("B6:B7").Select
    Selection.ClearContents
    Range("D6:D7").Select
    Selection.ClearContents
    Range("C8:D8").Select
    Selection.ClearContents
    Range("C9:D9").Select
    Selection.ClearContents
    Range("A12:D26").Select
    Selection.ClearContents
    Range("C28:D28").Select
    Selection.ClearContents
    Range("B30:D32").Select
    Selection.ClearContents
    
    'RaZ magasins
    For i = 1 To 7
        Sheets("MAGASIN " & i).Visible = xlSheetVisible
        Sheets("MAGASIN " & i).Activate
        Range("A9:D33").Select
        Selection.ClearContents
        Range("K9:N33").Select
        Selection.ClearContents
        Range("M4:N5").Select
        Selection.ClearContents
    Next
    
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
193
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
1
Affichages
180
Réponses
4
Affichages
177
Réponses
10
Affichages
547
Réponses
2
Affichages
201
Réponses
7
Affichages
163
Retour