Impression auto

Ataahualpa

XLDnaute Junior
Bonsoir a tous

Je n'ai pas trouvé dans le forum la solution a mon problème, pourtant très riche. Je vous l'expose donc en espérant une solution de l'un d'entre vous.

Dans un atelier j’ai 10 classeurs qui contiens 5 onglets nommés Lundi,Mardi….Vendredi.
En arrivant au travail chaque matin j’aimerai pouvoir imprimer les feuilles de la veille de chaque classeurs.
J'ai reussi a faire la macro, mais j'aimerai savoir s'il était possible de l'ameliorer en évitant d'ouvrir tous les claseurs.
Le code ci-dessous ouvre et imprime l'onglet voulu.
Je précise aussi que les classeur peuvent être fermer ou ouvert sur d'autre PC

ChDir "R:\MonClasseur\Tableaux \L1"
Workbooks.Open Filename:= "R:\ MonClasseur\Tableaux \L1\L1_s" & (Range("C6")) & ".xls", UpdateLinks:=0
Windows("L1_S" & (Range("C6")) & ".xls").Activate
Sheets(LaJournée).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True


merci d'avance.
 

michel_m

XLDnaute Accro
Re : Impression auto

Bonjour,

C'est possible MAIS:

1/On ne verra QUE les données inscrites sur la feuille "journée" SANS les mises en forme, polices diverses etc;
2/ Il faudra créer auparavant une feuille tampon provisoire baptisée "dummy"
3/ tu préciseras le nom complet (chemin et nom) de tes classeurs et où sont indiquées ces données

Un ou des classeurs pouvant être restés ouvert lors du lancement de la procédure, ceux ci devront avoir le statut "partagé"

Dans l'attente,
 

Ataahualpa

XLDnaute Junior
Re : Impression auto

Bonjour Michel-m

J’ai travaillé sur les nombreux exemples que vous avez mis sur le forum (classeurs fermés), mais je séchais sur
With Cn
' .Provider = "Microsoft.Jet.OLEDB.4.0"
' .ConnectionString = "Data Source=" & Fichier & _
' ";Extended Properties=Excel 8.0;"
' .Open
lorsque les classeurs étaient ouvert.

La feuille tampon peut-elle contenir les mises en formes ?Les feuilles que j'imprime son sous forme de tableaux(cellules fusionnées,list...)
Dans le code le nom des classeurs est une variable, nom changeant toutes les semaines(N° de semaine).
L’option partage du classeur est elle indispensable ? j’ai eu qq souci avec cette option.

A+
 

michel_m

XLDnaute Accro
Re : Impression auto

re,

Il faut que tu testes si le fichier est fermé ou non:

Function FichOuvert(F As String) As Boolean
'Auteur: Didier_mdf sur forum www.Excel-downloads.com (merci)
Dim Wk As Workbook
On Error Resume Next
Set Wk = Workbooks(F)
On Error GoTo 0
FichOuvert = Not Wk Is Nothing
End Function

sub ta_macro()
....
if fichouvert(fichier) then
Sheets(LaJournée).Select
ActiveWindow.SelectedSheets.PrintOut

else
'on travaille avec le fichier fermé
Set source = New ADODB.Connection
source.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier & ";" & _
"extended properties=""Excel 8.0;"""

...

Tu as la procédure pour copier la feuille "la journée" dans le Wiki page6 de notre ami MichelXLD
A copier dans une feuille tampon ("dummy") que tu nettoies après une impression par l'instruction cells.clear

Je repète ce que je t'ai dit: on importe du fichier fermé que des données
quant aux cellules fusionnées, elle sont à éviter au maximum possible! (tu peux utiliser format-cellule-alignement -horzontal, centrer sur plusieurs colonnes tout aussi présentable).


Enfin, pour 10 fichiers s'ils ne sont pas trop lourds, pour ma part j'utiliserais l'ouverture des fichiers en gardant la fonction "fichouvert" de notre Didier_mdf national , l'avantage étant de garder la mise en forme originelle.
Et si c'est un peu long, j'irais boire un café (ou autre)
 

Statistiques des forums

Discussions
312 559
Messages
2 089 603
Membres
104 224
dernier inscrit
Brilma