Bonjour à tous, j'ai un bug dans le code suivant pouvez-vous m'aider?
Ce code a pour objet:
- sous condition en M12
- une feuille "Synthèse client" s'ouvre
- le Tableau Croisé Dynamique qu'elle comporte est actualisé
- ce tableau est mis en forme
- la feuille s'imprime sur l'imprimante configurée par réseau (au passage je voudrai imprimer 2 exemplaires...)
- la feuille se refermer
- sinon une msg box s'ouvre
Cependant mon code bloque au niveau:
Sheets("Synthèse client").PrintOut
Avec comme message d'erreur:
'Erreur d'execution' 1004
Erreur de l'impression sur "mon imprimante"
Le fichier n'a pas été imprimé.
Raisons possibles:
- la mémoire disponible est peut etre insuffisante. Essayer de fermer les documents et programmes que vous n'utilisez pas.
- Sivous utilisez une imprimante connectée à un réseau le problème
A noter que mon imprimante marche bien.
Voici le code:
Sub ImprimerClient()
If Range("M12").Value = 1 Then
Application.ScreenUpdating = False
Sheets("Synthèse client").Visible = True
Sheets("Synthèse client").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
Sheets("Synthèse client").Select
Range("F10:H36").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("G13:H36").Select
Selection.NumberFormat = "#,##0"
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Sheets("Synthèse client").PrintOut
Sheets("Synthèse client").Visible = False
Application.ScreenUpdating = True
Else
MsgBox "L'impression de la synthèse client est impossible car vous n'êtes pas à 100% investit."
Exit Sub
End If
End Sub
Merci de votra aide,
Mat
Ce code a pour objet:
- sous condition en M12
- une feuille "Synthèse client" s'ouvre
- le Tableau Croisé Dynamique qu'elle comporte est actualisé
- ce tableau est mis en forme
- la feuille s'imprime sur l'imprimante configurée par réseau (au passage je voudrai imprimer 2 exemplaires...)
- la feuille se refermer
- sinon une msg box s'ouvre
Cependant mon code bloque au niveau:
Sheets("Synthèse client").PrintOut
Avec comme message d'erreur:
'Erreur d'execution' 1004
Erreur de l'impression sur "mon imprimante"
Le fichier n'a pas été imprimé.
Raisons possibles:
- la mémoire disponible est peut etre insuffisante. Essayer de fermer les documents et programmes que vous n'utilisez pas.
- Sivous utilisez une imprimante connectée à un réseau le problème
A noter que mon imprimante marche bien.
Voici le code:
Sub ImprimerClient()
If Range("M12").Value = 1 Then
Application.ScreenUpdating = False
Sheets("Synthèse client").Visible = True
Sheets("Synthèse client").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
Sheets("Synthèse client").Select
Range("F10:H36").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("G13:H36").Select
Selection.NumberFormat = "#,##0"
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Sheets("Synthèse client").PrintOut
Sheets("Synthèse client").Visible = False
Application.ScreenUpdating = True
Else
MsgBox "L'impression de la synthèse client est impossible car vous n'êtes pas à 100% investit."
Exit Sub
End If
End Sub
Merci de votra aide,
Mat