Imprimer une sélection
Résolu/Fermé
aminesc
Messages postés
70
Date d'inscription
dimanche 25 octobre 2015
Statut
Membre
Dernière intervention
3 juillet 2017
-
Modifié par crapoulou le 16/05/2016 à 11:39
Utilisateur anonyme - 26 mai 2016 à 19:59
Utilisateur anonyme - 26 mai 2016 à 19:59
A voir également:
- Vba imprimer sélection en pdf
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Comment signer un pdf sans l'imprimer - Guide
- Imprimer en a5 - Guide
- Enregistrer en pdf - Guide
- Save as pdf - Télécharger - Bureautique
1 réponse
Utilisateur anonyme
16 mai 2016 à 12:07
16 mai 2016 à 12:07
Bonjour aminesc,
Pourquoi donc utiliser les anciennes macros XL4 ?
C'est mieux d'utiliser le VBA, qui a été créé et mis en place par
Microsoft afin de les remplacer plus efficacement !
----------------------------------------
D'autre part, la façon dont la dernière ligne est déterminée
indique qu'il n'y a rien d'autre sous le tableau ; et donc
on peut imprimer la feuille entière :
En français comptable, on écrit : « Brouillard de Caisse » ;
donc le nom de la feuille à indiquer est peut-être plutôt :
WorkSheets("Brouillard_de_Caisse").PrintOut
Et si on nomme cette feuille "Brouillard de Caisse", ce sera :
WorkSheets("Brouillard de Caisse").PrintOut
avec 2 " " (espaces) au lieu de 2 "_" (soulignés).
Mais vous pouvez aussi appeler cette feuille "Caisse", donc :
WorkSheets("Caisse").PrintOut
Cordialement. 😊
Pourquoi donc utiliser les anciennes macros XL4 ?
C'est mieux d'utiliser le VBA, qui a été créé et mis en place par
Microsoft afin de les remplacer plus efficacement !
----------------------------------------
D'autre part, la façon dont la dernière ligne est déterminée
indique qu'il n'y a rien d'autre sous le tableau ; et donc
on peut imprimer la feuille entière :
Sub IMPR() WorkSheets("Brouillarde_Caisse").PrintOut End Sub
En français comptable, on écrit : « Brouillard de Caisse » ;
donc le nom de la feuille à indiquer est peut-être plutôt :
WorkSheets("Brouillard_de_Caisse").PrintOut
Et si on nomme cette feuille "Brouillard de Caisse", ce sera :
WorkSheets("Brouillard de Caisse").PrintOut
avec 2 " " (espaces) au lieu de 2 "_" (soulignés).
Mais vous pouvez aussi appeler cette feuille "Caisse", donc :
WorkSheets("Caisse").PrintOut
Cordialement. 😊
26 mai 2016 à 17:26
Pour se qui concerne ta solution :
Sub IMPR()
WorkSheets("Brouillarde_Caisse").PrintOut
End Sub
elle n'est pas utile pour mois car j' besoin d'imprimer une sélection et non pas la page entière .
voici se que j'ai trouve comme solution :
Sub IMPR()
Sheets("Brouillarde_Caisse").Select
ligne = Worksheets("Brouillarde_Caisse").Range("B" & Rows.Count).End(xlUp).Row 'deteriner fin de ligne
Range("B2:H" & ligne).Select
ExecuteExcel4Macro "PRINT(1,,,2,,TRUE,,,,,,1,,,TRUE,,FALSE)"
End Sub
quesque vous en dit .
26 mai 2016 à 18:28
================================
A) Choix de la feuille
Pour sélectionner la feuille, mettez plutôt :
Worksheets("Brouillarde_Caisse").Select
Car Sheets est pour tout type de feuille (y compris graphique),
alors que Worksheets est pour feuille de calcul (c'est-à-dire
avec toutes les cellules), ce qui est le cas. De plus, la feuille
sera trouvée plus rapidement par Excel, car au lieu de la
chercher dans toutes les feuilles de tout type, il la cherchera
seulement dans les feuilles de calcul (soit un seul type).
--------------------------------------------------------
Sélectionner la feuille indiquée est une bonne solution, mais comme
en général on préfère voir d'abord ce qu'on va imprimer, je pense
que c'est mieux que la macro refuse de se lancer si on n'est pas
sur la bonne feuille, et ce sera à l'utilisateur d'aller sur la feuille
"Brouillarde_Caisse" pour voir les données (et vérifier si besoin),
puis de lancer la macro. Pour cela, en 1ère ligne de la macro :
If AcriveSheet.Name <> "Brouillarde_Caisse" Then Exit Sub
================================
B) Impression de la plage, sans sélection de cette plage
Pour la suite, après avoir utilisé une des 2 méthodes ci-dessus,
on est donc forcément sur la bonne feuille : "Brouillarde_Caisse",
donc il sera alors inutile de spécifier cette feuille, et le code VBA
sera plus court. Ainsi :
ligne = Worksheets("Brouillarde_Caisse").Range("B" & Rows.Count).End(xlUp).Row ' déterminer fin de ligne
peut devenir plus simplement :
ligne = Range("B" & Rows.Count).End(xlUp).Row ' déterminer fin de ligne
Vous pouvez imprimer votre plage sans avoir à faire de sélection.
Solution sans macro XL4 (obsolète) et avec VBA seulement.
================================
C) Complément
Comme on imprime la plage sans faire de sélection, on peut l'imprimer depuis
n'importe quelle feuille, sans même aller sur la feuille "Brouillarde_Caisse".
Mais cette fois, bien sûr, on est obligé d'indiquer le nom de la feuille :
================================
Bien sûr, si vraiment vous y tenez (par habitude ou autre), vous pouvez
continuer à utiliser les macros XL4 ; à vous de choisir ! 😉
Pouvez-vous me dire ce que vous pensez de ce long article ?
Cordialement. 😊
Modifié par albkan le 26/05/2016 à 20:04
Rectificatif
Il y a 2 erreurs dans mon code VBA qui figure en partie C) Complément.
1) Pour la ligne 5 :
La feuille doit aussi être indiquée pour le Range correspondant à « ligne ».
2) Pour la ligne 6 :
Le nom de la feuille Brouillarde_Caisse doit être entre guillemets.
D'où ce nouveau code VBA :
Attention : il faut un point ( . ) devant le R des 2 Range !