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 !

nadir****

XLDnaute Occasionnel
Bonjour.
Je voudrais imprimer une plage de cellules.
Pour des questions de mise en page (hauteur de lignes notamment) j'ai copié cette plage sur une feuille que j'ai crée temporairement dans mon classeur.
Voici le code que j'ai écrit:
Code:
Sub TestImp()
    Sheets.Add After:=Sheets(Sheets.Count)
    Range("J1").Copy Destination:=Sheets(Sheets.Count).Range("A1")
    Range("A1").CurrentRegion.PrintOut
    Sheets(Sheets.Count).Select
    ActiveWindow.SelectedSheets.Delete
End Sub
Cela pose 2 problèmes :
1 - je ne reviens pas nécessairement sur la feuille précédemment active
2 - l'utilisateur doit confirmer la suppression de la feuille.

Est-ce que quelqu'un aurait une idée à me proposer pour résoudre ces 2 problèmes ?

Je joints un fichier exemple (les chiffres ne veulent rien dire) pour illustrer ce problème.

Merci
 

Pièces jointes

Re : Impression en VBA

Bonjour,

Code:
Sub TestImp()
    Dim Sh As Worksheet
    Set Sh = ActiveSheet
    Sheets.Add After:=Sheets(Sheets.Count) 'Devient la feuille Active
    Range("J1").Copy Destination:=Sheets(Sheets.Count).Range("A1")
    Range("A1").CurrentRegion.PrintOut
    Application.DisplayAlerts = False  'Empêche les alertes
    Activesheet.delete 'Supprime la feuille
    Application.DisplayAlerts = True 'Rétablit les alertes
    Sh.Activate  'Retourne sur la feuille d'origine
End Sub

A+
 
Re : Impression en VBA

Re,

J'avais pas fait attention au reste de la macro mais avec ça cela devrait aller mieux.

Code:
Sub TestImp()
    Dim Sh As Worksheet
    Set Sh = ActiveSheet
    Sheets.Add After:=Sheets(Sheets.Count) 'Devient la feuille Active
  [COLOR=red]  Sh.Range("J1").Copy[/COLOR] Destination:=Sheets(Sheets.Count).Range("A1")
   [COLOR=blue] Application.DisplayAlerts = False  'Empêche les alertes
[/COLOR]   [COLOR=red] ActiveSheet.PageSetup.PrintArea = Range("A1").CurrentRegion.Address
[/COLOR]    ActiveSheet.PrintPreview ' .[COLOR=red]PrintOut[/COLOR]
    ActiveSheet.Delete 'Supprime la feuille
    Application.DisplayAlerts = True 'Rétablit les alertes
    Sh.Activate  'Retourne sur la feuille d'origine
End Sub

Mais tu n'a qu'une cellule de copiée?

A+
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
12
Affichages
1 K
Retour