Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Atiom
  • Date de début Date de début

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 !

Atiom

XLDnaute Occasionnel
Bonjour le forum

Ce code imprime toute la Feuil
Code:
Private Sub CommandButton1_Click()
Sheets("Feuil1").PrintOut
End Sub
Celui –Ci une plage
Code:
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("A1:D37").PrintOut
End Sub
Je souhaiterait supprimer de l’impression les colonnes A et B.

Mon problème est que je ne peux pas utiliser la deuxième solution parce que la page diffère en fonction du tri effectué dans la Feuil1.

Alors ma question est commet je peux faire ce-ci en VBA :
Code:
Private Sub CommandButton1_Click()
Sheets("Feuil1").PrintOut 
Sauf les colonnes A et B
End Sub
Merci
Amicalemet
Atiom
 
Re : PrintOut

Bonjour Atiom, bonjour le forum,

Il y a certainement plus simple mais je te propose ça :

Code:
Private Sub CommandButton1_Click()
With Sheets("Feuil1")
Application.Intersect(.Range("C1:IV65536"), .UsedRange).PrintOut
End With
End Sub
 
Re : PrintOut

Bonjour, Robert

Malheureusement ça ne marche pas.

Je mets ci-dessous le code au complet.
Je pense qu’il faut remplacer la ligne.
Code:
Sheets("Feuil1").PrintOut
par :

PHP:
Imprimer toute la Feuil1 Sauf les colonnes A et B

Mais commet faire ça ?

Quelqu’un à une idée ?

Merci de votre aide
Cordialement Atiom


Code:
' Impression 

Sub CommandButton1_Click()
On Error Resume Next

Application.ScreenUpdating = False

Sheets("Feuil1").Cells.EntireColumn.AutoFit

With Sheets("Feuil1").PageSetup
     .PrintTitleRows = "$1:$1"
     .PrintTitleColumns = "$A:$C"
     .Orientation = xlLandscape
     .Order = xlOverThenDown
End With

Sheets("Feuil1").PrintOut

MsgBox "Impression terminée...", , "Base"

Application.ScreenUpdating = True

End Sub
 
Re : PrintOut

Bonsoir Atiom

Essaies ceci :

Code:
Sub PrintO()
Dim MaPlage As Range
Set MaPlage = Sheets("Feuil1").Range(Cells(1, 3), Cells(65536, 256))
MaPlage.PrintOut
Set MaPlage = Nothing
End Sub

Le gros avantage avec Range(Cells(1, 3), Cells(65536, 256)),c'est que tu peux remplacer les chiffres "en dur" (en gras) par des variables et rendre ta plage mobile selon tes besoins. pour info Cells(ligne, colonne)
Bonne soirée
Kotov
 
Dernière édition:
Re : PrintOut

Bonsoir, Kotov
Merci de ton aide.

J’ai fait un essaie comme ci-dessous, mais ça ne fonctionne pas non plus.

Cordialement
Atiom
Code:
' Impression 

Sub CommandButton1_Click()
On Error Resume Next

Application.ScreenUpdating = False

Sheets("Feuil1").Cells.EntireColumn.AutoFit

With Sheets("Feuil1").PageSetup
     .PrintTitleRows = "$1:$1"
     .PrintTitleColumns = "$A:$C"
     .Orientation = xlLandscape
     .Order = xlOverThenDown
End With

Dim MaPlage As Range
Set MaPlage = Sheets("Feuil1").Range(Cells(1, 3), Cells(65536, 256))
MaPlage.PrintOut
Set MaPlage = Nothing

MsgBox "Impression terminée...", , "Base"

Application.ScreenUpdating = True

End Sub
 
Re : PrintOut

Re,

Alors essaies de cette manière :
Code:
Sub PrintO()
Dim MaPlage As Range
Set MaPlage = Sheets("Feuil1").Range(Cells(1, 3), Cells(65536, 256))
    With ActiveSheet
        .PageSetup.PrintArea = MaPlage
        .PrintOut
    End With
Set MaPlage = Nothing
End Sub

A+
Kotov
 
Re : PrintOut

Re,

J’ai appliqué ta deuxième méthode, mais la c’est la feuil active que est imprimé au lieu de la Feuil1.
Merci

Franchement au début il me semblait que ça n’été pas quelque chose de trop difficile mais je commence à voir que c’est pas si simple que ça .

Merci de votre aide.

Cordialement
Atiom


Ci-dessous se que je viens d’essayer, il y a peut-être une erreur ?

Quelqu’un à une idée ?
Code:
' Impression 

Sub CommandButton1_Click()
On Error Resume Next

Application.ScreenUpdating = False

Sheets("Feuil1").Cells.EntireColumn.AutoFit

With Sheets("Feuil1").PageSetup
     .PrintTitleRows = "$1:$1"
     .PrintTitleColumns = "$A:$C"
     .Orientation = xlLandscape
     .Order = xlOverThenDown
End With

Dim MaPlage As Range
Set MaPlage = Sheets("Feuil1").Range(Cells(1, 3), Cells(65536, 256))
    With ActiveSheet
        .PageSetup.PrintArea = MaPlage
        .PrintOut
    End With
Set MaPlage = Nothing

MsgBox "Impression terminée...", , "Base"

Application.ScreenUpdating = True

End Sub
 
Re : PrintOut

Bonsoir
regarde si cela te convient

Edit
ajout du fichier avec la redefinition de la zone d'impression dans la macro, sinon le probléme que tu dois avoir avec ta macro, c'est que tu veux imprimer a partir de la colonne C et que tu demande des titres de la colonne A à C
 

Pièces jointes

Dernière édition:
Re : PrintOut

Re

Il suffit donc d'activer la Feuil1

Code:
Sub PrintO()
Dim MaPlage As Range
Set MaPlage = Sheets("Feuil1").Range(Cells(1, 3), Cells(65536, 256))
[color=red]Sheets("Feuil1").activate[/color]
    With ActiveSheet
        .PageSetup.PrintArea = MaPlage
        .PrintOut
    End With
Set MaPlage = Nothing
End Sub


Bonne nuit
Kotov
 
Re : PrintOut

Bonsoir, Bruno

Effectivement ton exemple fonctionne parfaitement.

Mais je ne comprend pas pourquoi lorsque je l’adapte à ma base il bloque !

Si on charge la base de Didier.
https://www.excel-downloads.com/resources/multi-mini-bd.16/

et si on remplace la macro :
Nom de la macro : ImpExpRésultatImprimer

Par ta macro ça bloque l’ordi, pourquoi ?

Cordialemet

Pardon, je n’avais actualisé mas page,

Non Kotov j’avais essayé cette solution avant et Ca ne marche pas non plus .

Mais merci pour ton effort.


Atiom
 
Dernière édition:
Re : PrintOut

Bonjour
Essai de faire comme cela.

Sub CommandButton1_Click()
On Error Resume Next
Application.ScreenUpdating = False
Sheets("MMBD_Extraction").Cells.EntireColumn.AutoFit
ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
"=Multi_Mini_BD V 4_51.xls!maplage"
With Sheets("MMBD_Extraction").PageSetup
.PrintTitleRows = "$1:$1"
'.PrintTitleColumns = "$A:$C"
.Orientation = xlLandscape
.Order = xlOverThenDown
End With
Application.ScreenUpdating = True
Dim MaPlage As Range
Set MaPlage = Sheets("MMBD_Extraction").Range(MaPlage)
With ActiveSheet
.PageSetup.PrintArea = MaPlage
.PrintPreview
End With
Set MaPlage = Nothing
MsgBox "Impression terminée...", , "Base"
End Sub
Je ne peux pas lancer l'application car ça plante avec une autre macro.
J'ai fais l'essai en mettant cette macro dans un module et cela fonctionne
 
Re : PrintOut

Bonjour, Bruno et le Forum

Merci Bruno

Effectivement en mettant cette macro dans un module cela fonctionne, sauf que les colonnes A et B sont toujours imprimer.

J’ai essai de modifier ta macro mais c’est dur… dur

Je ne peux pas lancer l'application car ça plante avec une autre macro.
Apparemment ça bloque dans cette ligne, et pourquoi ?
Code:
Sheets("MMBD_Extraction").Cells.EntireColumn.AutoF it
Enfin j’ai toujours le don de m’attaquer à de choses qui au départ me paressent simple et que pour finir c’est hyper compliqué.

Le but est quand même de pouvoir imprimer à partir de l’application en excluent les colonnes A et B.

Merci à tous pour des idées

Cordialement
Atiom
 
Dernière édition:
Re : PrintOut

re
Je suis surpris que tu es les colonnes A et B car chez moi ils ni sont pas .
A tu repris exactement la macro que j'ai mis sur le post?
Et à cet endroit (en bleu) il ne faut pas que tu demande les titres des colonnes a et b
With Sheets("Feuil1").PageSetup
.PrintTitleRows = "$1:$1"
'.PrintTitleColumns = "$A:$C"
.PrintTitleColumns = "$C" mets cela à la place
.Orientation = xlLandscape
.Order = xlOverThenDown
End With

Pour autofit il doit y avoir un espace en trop aprés le F
 
Re : PrintOut

Bonjour,

Bruno j’ai déjà tout essayé

Ci-dessous la macro que j’ai mis
Si on exécute la macro dans la base de Didier, tu verras qui d’une par ça imprime la Feuil active et d’autre par j’ai toujours les colonnes A et B, je suis d’accord que c’est bizarre mais voila c’est comme ça !

Et le but est quand même de pouvoir imprimer à partir de l’application et je ne comprends toujours pas pourquoi ça bloque

Merci de votre aide
Cordialement
Atiom

Edit
Si on remplace la Ligne :
Code:
With ActiveSheet
par:
With Sheets("MMBD_Extraction")
Le problème de la Feuil active est résolu mais il reste toujours le problème des colonnes A et B


Code:
Sub CommandButton1_Click()
On Error Resume Next
Application.ScreenUpdating = False
Sheets("MMBD_Extraction").Cells.EntireColumn.AutoFit
ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
"=Multi_Mini_BD V 4_51.xls!maplage"
With Sheets("MMBD_Extraction").PageSetup
.PrintTitleRows = "$1:$1"
.PrintTitleColumns = "$C"
.Orientation = xlLandscape
.Order = xlOverThenDown
End With
Application.ScreenUpdating = True
Dim MaPlage As Range
Set MaPlage = Sheets("MMBD_Extraction").Range(MaPlage)
With ActiveSheet
.PageSetup.PrintArea = MaPlage
.PrintPreview
End With
Set MaPlage = Nothing
MsgBox "Impression terminée...", , "Base"
End Sub
 
Dernière édition:
Re : PrintOut

Bonjour à tous. Bonjour Atiom, Bruno, Kotov et tous les autres

Je ne suis pas du tout spécialiste en VBA , mais à tout hasard, ayant eu un problème un peu similaire , je me permet d'apporter mon grain de sel (à moudre) .

N'aurait tu pas des cellules fusionnées dans tes colonnes A,B, ou C ?

Bon courage à tous et à +
 
- 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
15
Affichages
784
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
740
Réponses
3
Affichages
922
Réponses
4
Affichages
652
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…