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, chatroc

Merci pour l’info, mais non il n y a pas de cellules fusionnées dans les colonnes A , B ou C, comme dans toute la Feuil (Sheets("MMBD_Extraction").de la Multi Mini BDMulti Mini BD de Didier Clément.

Puis encore une fois je souhaite trouver un module que puisse remplacer celui de l’application de Didier ( Ci-dessous ) de façon a que les colonnes A et B ne s’impriment pas.
Merci de toute Aide

Cordialement
Atiom

Code:
' Impression / Exportation

Sub ImpExpRésultatImprimer_Click()

On Error Resume Next

Application.ScreenUpdating = False

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

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

Sheets("MMBD_Extraction").PrintOut

MsgBox "Impression terminée...", , "Multi Mini BD"

Application.ScreenUpdating = True

End Sub
 
Re : PrintOut

bonjour à tous

pour ne pas imprimer des colonnes complette, il suffit de les masquer

Code:
Range("A:B").EntireColumn.Hidden = True

pour les reafficher :
Code:
Range("A:B").EntireColumn.Hidden = false
 
Re : PrintOut

Bonjour,
en suivant le fil, les solutions qui vont bien t'ont été proposées, à savoir, supprimer
.PrintTitleColumns = "$A:$C"
et définir ta zone d'impression.
Si tu as vraiment un problème avec ton fichier, joint-le, exempt de toutes données confidentielles.
PS : je cite :
"Puis encore une fois je souhaite trouver.....", ça veut dire qu'on comprend rien?
 
Re : PrintOut

Bonsoir, à tous

Merci, wilfried_42 et bhbh.
Puis encore une fois je souhaite trouver.....", ça veut dire qu'on comprend rien?
Pas de tout, je suis vraiment désolé si tu l’as pris comme ça je voulais vraiment préciser le maximum, mais bon on ne va pas faire en débat…

Je ne peux pas joindre le fichier, trop volumineux pour les pièces jointes.

Mais j’ai dis dans un des postes antérieurs qui si on charge la Multi Mini BD dans le lien ci-dessous


https://www.excel-downloads.com/resources/multi-mini-bd.16/
Ensuite il s’agit dans l’application de Didier d’essayer de modifier la fonction

PHP:
Sub ImpExpRésultatImprimer_Click()

De Façon à pouvoir imprimer en excluent les colonnes A et B.

Cordialement
Atiom
 
Re : PrintOut

Re-,
comme on te l'a dit, il faut que tu supprimes les colonnes à répéter à gauche :

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

et tu rajoutes une ligne en dessous de End With :

ActiveSheet.PageSetup.PrintArea = "$C$1:$D$29" afin de déterminer ta zone d'impression (PS : "$C$1:$D$29" c'est un exemple)
Tu peux déterminer ta zone d'impression dynamiquement
 
Re : PrintOut

Re,

Je sais que je suis très souvent null en VBA mais…

As-tu testé cette solution dans l’application de la Multi Mini BD de Didier ?

Sinon peut tu le faire STP.
Tu comprendras peut-être le pourquoi de mon problème.
Moi j’ai essayé et ça ne marche pas. J’ai toujours les colonnes A et B

Si ça fonctionne peut tu mettre le code complet que vas remplacer celui-ci dessous

Dans l’attente grand Merci
Code:
' Impression / Exportation

Sub ImpExpRésultatImprimer_Click()

On Error Resume Next

Application.ScreenUpdating = False

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

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

Sheets("MMBD_Extraction").PrintOut

MsgBox "Impression terminée...", , "Multi Mini BD"

Application.ScreenUpdating = True

End Sub
Cordialement
Atiom
 
Re : PrintOut

Re-, je viens de le faire, et tout fonctionne...

Sub ImpExpRésultatImprimer_Click()
On Error Resume Next
Application.ScreenUpdating = False
Sheets("MMBD_Extraction").Cells.EntireColumn.AutoFit
With Sheets("MMBD_Extraction").PageSetup
.PrintTitleRows = "$1:$1"
.Orientation = xlLandscape
.Order = xlOverThenDown
End With
Sheets("MMBD_Extraction").PageSetup.PrintArea = "$C$1:$D$29"
Sheets("MMBD_Extraction").PrintOut , , , True
MsgBox "Impression terminée...", , "Multi Mini BD"
Application.ScreenUpdating = True
End Sub

j'ai rajouté les 3 virgules et True à la suite de PrintOut afin de n'avoir qu'un aperçu, mais l'aperçu était bon.
Bon courage, on va y arrivé
 
Re : PrintOut

Re,

On progresse.

J’ai enlevé les 3 virgules et True à la suite de PrintOut, chez moi ça bloque l’ordi.
Ets-ce que quelqu’un d’autre à le même problème ?

Si non sans l’ aperçu, ça fonctionne, la plage imprimer est celle qui on demande ( $C$1:$D$29 )

Merci beaucoup.

Mais comme je ne sais jamais quel seras la plage, puisque elle dépends de la recherche ça pose des problèmes on ne sais pas quel page il faut définir !

Est-ce qu’il aurait un moyen de contourner ça ?

Cordialement
atiom
 
Re : PrintOut

Re-,
Bien sûr pour déterminer ta zone d'impression, il te faut nommer cette zone!
Et la nommer dynamiquement....
Pour cela, il faut savoir quelle colonne et quelle ligne sera obligatoirement remplie.
A partir de cela, le nom que tu DOIS donner à ta zone d'impression est :
Zone_d_impression
(avec les underscores (touche 8 en haut du clavier))
ensuite, la formule magique DECALER
P ex :
colonne obligatoirement remplie : F
ligne obligatoirement remplie : 5
cellule de début du tableau à imprimer : C1
si ton onglet s'appelle base :

formule : =DECALER(base!$C$1;;;NBVAL(base!$F:$F);NBVAL(base!$5:$5))
 
Re : PrintOut

Re,
Je ne suis par sûr d’avoir tout bien compris.

Les formules oui, mais concrètement comment je peu adapter ça en VBA.

Puis dans ma Feuil nommée MMBD_Extraction les formules serons constatent effacées par action de la recherche en VBA.

Ets-ce qu’il n y pas une solution en VBA ?


Cordialement
Atiom
 
Re : PrintOut

Re-,
tu connais l'enregistreur de macro?
Tu fais tout ce que je t'ai dit, en l'enregistrant, et tu pourras en tirer toutes les lignes de code nécessaires pour créer ta zone d'impression
 
Re : PrintOut

Re,

Je connais l'enregistreur de macro, mais pas tout !

Supposons que ma zone d'impression est C1 : M500 dans la Feuil MMBD_Extraction.
Je ne vois pas ou mettre le :
Zone_d_impression()
ni ta formule
=DECALER(MMBD_Extraction!$C$1;;;NBVAL(MMBD_Extraction!$C:$C);NBVAL(MMBD_Extraction! $1:$1))

Peut tu m’aider stp ? on y est presque !

Quest-ce que je dois ajouter au code ci-dessous

Merci
Atiom
Code:
Sub ImpExpRésultatImprimer_Click()
On Error Resume Next
Application.ScreenUpdating = False
Sheets("MMBD_Extraction").Cells.EntireColumn.AutoF it
With Sheets("MMBD_Extraction").PageSetup
.PrintTitleRows = "$1:$1"
.Orientation = xlLandscape
.Order = xlOverThenDown
End With
Sheets("MMBD_Extraction").PageSetup.PrintArea = "$C$1:$D$29"
Sheets("MMBD_Extraction").PrintOut 
MsgBox "Impression terminée...", , "Multi Mini BD"
Application.ScreenUpdating = True
End Sub
 
Re : PrintOut

Re-,
avec cette formule, tu définis une zone d'impression de la cellule C1 à la colonne M, le numéro de la ligne étant défini par le nombre de cellules non vides dans la colonne C

ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
"=OFFSET(Feuil1!R1C3,,,COUNTA(Feuil1!C3),11)"

Ainsi, tu peux supprimer la ligne de ton code:

Sheets("MMBD_Extraction").PageSetup.PrintArea = "$C$1:$D$29"
 
Re : PrintOut

Re,

Merci.

Je pense que ta patience aura des limites, mais je suis vraiment nulle et bien fatigué en plus !

Je viens de tester le code ci-dessous mais les colonnes A et B sont imprimées .

Qu est-ce que j’ai fait de faux ?
Cordialement
Atiom
Code:
' Impression / Exportation

Sub ImpExpRésultatImprimer_Click()
On Error Resume Next
Application.ScreenUpdating = False
Sheets("MMBD_Extraction").Cells.EntireColumn.AutoFit
With Sheets("MMBD_Extraction").PageSetup
.PrintTitleRows = "$1:$1"
.Orientation = xlLandscape
.Order = xlOverThenDown
End With
ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
"=OFFSET(MMBD_Extraction!R1C3,,,COUNTA(MMBD_Extraction!C3),11)"
Sheets("MMBD_Extraction").PrintOut
MsgBox "Impression terminée...", , "Multi Mini BD"
Application.ScreenUpdating = True
End Sub
 
Re : PrintOut

Re,Re,Re........
Même pas t'arriveras au bout de ma patience.
Trouvé le souci 😀

La zone d'impression DOIT être définie avant l'impression des titres....

Sub ImpExpRésultatImprimer_Click()
On Error Resume Next
Application.ScreenUpdating = False
Sheets("MMBD_Extraction").Cells.EntireColumn.AutoFit
ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
"=OFFSET(MMBD_Extraction!R1C3,,,COUNTA(MMBD_Extraction!C3),11)"
With Sheets("MMBD_Extraction").PageSetup
.PrintTitleRows = "$1:$1"
.Orientation = xlLandscape
.Order = xlOverThenDown
End With
Sheets("MMBD_Extraction").PrintOut , , , True
MsgBox "Impression terminée...", , "Multi Mini BD"
Application.ScreenUpdating = True
End Sub

Normalement, c'est bon....(du moins j'espère (y'a pas de smiley imitant le pape))
 
- 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
786
  • 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…