Imprimer les onglets voulus

N

nat

Guest
Voilà mon tableau de bord sur excel est quasi (et mon CDD avec) ; la personne suivante va prendre la relève...

elle souhaite (pour + de faciltés) n'avoir qu'à cliquer sur un bouton pour que ca envoit à l'impression les onglets voulus compris dansle tabelau de bord (certains onglets ne doivent pas être imprimés et à la main c 'long')

comment faire cette macro ?
VBA ?


j'ai trouvé ça sur le net

sheets(array('feuil1','feuil2','feuil3')).printout

sub demo
for each sh in activeworkbook.sheets
sh.activate
sh.printout
next sh
end sub


mais je débute complètement en VBA doc je comprends pas si ca convient à mon pb
 

2passage

XLDnaute Impliqué
Bonjour,

Sélectionner tous les onglets à imprimer en maintenant la touche control avant d'imprimer est trop long ? dans ce cas, il suffit de le faire une fois avec l'enregistreur de macro. Tu peux ensuite voir le code généré via ALT + F11

A+

Message édité par: 2passage, à: 17/08/2005 10:06
 
N

nat

Guest
je venais de trouver le même code en faisant la manip donnée au-dessus en la modifiant un peu

Sub impression()
'
' impression Macro
' Macro enregistrée le 17/08/2005 par alidor
'

'
Sheets(Array('Page1', 'Suivi engagements', 'Par statut', 'Suivi CA', 'Section 1', 'Pers. titulaire', 'Analyse budgétaire', 'Analyse par équipe')).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Nat, 2passage, Dan, le Forum

Ah c'est triste la fin d'un CDD, j'espère que tu as du taff en vu.

Sinon pour bien terminer ce programme et ce CDD en beauté, on peut aussi faire quelque chose d'assez simple qui permettra un code dynamiquement évolutif...

Imaginons tes Feuilles :

Interface
Budget
January
February
March
April
May
June
July
Echéancier Semestriel
August
September
October
November
December
Echéancier Annuel
Calcul
Tableau
Database

Et qu'en fait tu ne veuilles qu'imprimer les douzes mois :

Alors il suffirait d'indiquer ceci dans le nom de l'onglet :
Interface ZZ
Budget ZZ
January
February
March
April
May
June
July
Echéancier Semestriel ZZ
August
September
October
November
December
Echéancier Annuel ZZ
Calcul ZZ
Tableau ZZ
Database ZZ

Ensuite un code comme celui-ci lirait dynamiquement les noms et ferait la ségrégation automatiquement :

Option Explicit

Sub PrintOutSpecialSheetsByName()
Dim WS As Worksheet

   
For Each WS In ThisWorkbook.Worksheets
       
If InStr(1, WS.Name, 'ZZ', 1) = 0 Then
            WS.PrintOut
       
End If
   
Next

End Sub

Il y a a plein d'autres méthodes, avec aussi (par exemple le début du nom de feuille...

Exemple :

Interface
Budget
Tableau January
Tableau February
Tableau March
Tableau April
Tableau May
Tableau June
Tableau July
Echéancier Semestriel
Tableau August
Tableau September
Tableau October
Tableau November
Tableau December
Echéancier Annuel
Calcul
Tableau
Database

Option Explicit
Option Compare Text

Sub PrintOutSpecialSheetsByLeftName()
Dim WS As Worksheet

   
For Each WS In ThisWorkbook.Worksheets
       
If Left(WS.Name, 3) = 'TAB' Then
            WS.PrintOut
       
End If
   
Next

End Sub

Par contre cet exemple imprimera les Douzes Mois et aussi la feuille 'Tableau'...

Enfin il y a de quoi s'amuser avant ton départ !!!

Bon Appétit
[ol]@+Thierry[/ol]

Message édité par: _Thierry, à: 17/08/2005 11:35
 

Dan

XLDnaute Barbatruc
Re,

bien sûr si mon collègue Thierry moitié Belge repasse cela ne peut être que mieux !! :eek:hmy: ...toujours aussi pro

:) Nat je vois que tu finis ton CDD. Reçois tous mes encouragements pour ta recherche de nouveau job. J'espère que tu retrouveras vite !!!

Laisse nous de tes nouvelles sur le salon XLD par exemple.

Si pb n'hésite pas
 
N

nat

Guest
merci thierry pour toutes ces astuces
car je débute vraiment en VBA

ne vous en faites pas pour moi
en fait, j'étais en stage 3 mois (au labo lorrain de recherche en informatique), mais service budgétaire car je finissais ma maitrise en sciences de gestion
j'ai été reconduite 3 mois en CDD

et à la rentrée, je fais un master (bac+5) en audit et conception des systèmes d'information

a++ :)
 
N

nat

Guest
par contre j'aurai une autre question sur les userform

est-ce possible d'afficher un userform au lancement de mon fichier excel ?
comme un menu (access serait + simple ; sic) où l'utilisateur choisira s'il veut aller sur le tableau, s'il veut lire la procédure, s'il veut imprimer le tableau de bord

(pour l'impression j'utiliserai le code VBA trouvé ce matin) pour le reste faudra que je cherche comment faire un lien hypertext vers l'onglet 'personnel' et l'onglet 'procédure')

dites le si j'abuse mais c dur dur de finaliser ..alors que VBA c mes débuts...
 

Shining Hawk

XLDnaute Junior
Salut nat,

dans le VBE (Alt + F11), sélectionne 'ThisWorkbook' et utilise la méthode open :

Private Sub Workbook_Open()
UserForm1.Visible = True
End Sub

Tu peux aussi utiliser les méthodes Show et Hide de ton UserForm pour l'afficher ou le cacher.


PS : tu as le mérite de vouloir apprendre et progresser... je vois pas en quoi c'est abuser. ;)

bonne continuation
A+

Message édité par: shining hawk, à: 17/08/2005 16:18
 

Statistiques des forums

Discussions
312 321
Messages
2 087 249
Membres
103 498
dernier inscrit
FAHDE