XL 2010 code vba pour imprimer le nbr de pages indiquées d'onglets sélectionnés

sebbbbb

XLDnaute Impliqué
Bonsoir a toutes et tous

je bute sur un problème que j'aimerai vous soumettre.

Dans le 1er onglet du fichier en pJ se trouve un petit tableau pour indiquer quel onglet (sur les 5 au total) sera imprimé et le nbr de copie de chacun

un bouton devra pouvoir lancer l'impression

le top du top serait de lancer l'impression en mode 'copies NON assemblées

Pouvez vous m'aider svp ?

un grand merci par avance
seb
 

Pièces jointes

  • Classeur3.xlsm
    107.2 KB · Affichages: 69
Solution
??? moi aussi, j'ai Excel 2007, avec le bouton raccourci dont tu parles pour ajouter
une feuille (Maj F11) ; mais ce n'est pas pour autant que ça me crée une feuille
fantôme de nom "" ! quand j'exécute la macro qui affiche le nom des feuilles,
ça se termine bien avec la dernière feuille réelle "SWB service1" ; ça ne m'affiche
pas une fausse feuille supplémentaire "" ! là, je ne sais pas comment expliquer
cette différence de comportement (peut-être que c'est lié à une des options
d'Excel ? si oui, je ne vois vraiment pas laquelle !)
; et-tu bien sûr que tu n'as pas
de virus sur ton PC ? sinon, maintenant que la cause du plantage est connue,
le remède est simple ; mets la boucle For I ... Next I comme ceci ...

sebbbbb

XLDnaute Impliqué
Soan
voici le résultat de mes test
test 1 : OK - comme prévu plus d'éxécution
test 2 : tous les onglets affichés à l'écran sont passés en revu un par une avec le message qui s'affiche
1599933756996.png

1599933783456.png


et la macro s'arrete sans plus de message d'erreur et pas d'impression

c'est grave docteur ? :)

merci pour ta patience
seb
 

soan

XLDnaute Barbatruc
Inactif
Bonjour seb,

Tu as écrit : « test 1 : OK - comme prévu plus d'exécution » ; il manque un mot,
c'est : « ... plus d'erreur d'exécution » ; ;) (la macro s'exécute quand même !)

Bon, l'essentiel, c'est que ça marche sans erreur jusqu'ici ! :)


-------------------------------------------------------------------------------------------

Passons maintenant au test 2 ; comme tu l'as écrit, tous les onglets du classeur
sont passés en revue ; ça c'est ok : c'était le but de la modif de la macro.

Tu as écrit : « la macro s'arrête sans plus de message d'erreur » ; c'est normal,
car la ligne de code VBA qui causait l'erreur est en commentaire (le texte en
vert n'est pas exécuté)
; je parle de cette ligne : 'Set Wsh = Worksheets(Ar(I))

Tu as écrit : « et pas d'impression » ; là aussi, c'est normal, car la ligne de code
qui fait l'impression (via .PrintOut) est aussi en commentaire :
If Nb > 0 Then Wsh.PrintOut Copies:=Nb ', Collate:=False
avantages : pour toi et moi, ça évite de gaspiller du papier et de l'encre ;
pour notre belle planète bleue (hélas polluée), c'est plus écologique.


Maintenant, voyons en détail le résultat de la macro :

0 : "CList Airbus"
1 : "SSI"
2 : "Fiche Données"
...
7 : "BL Mobile1"
...
10 : "Receipt1"
11 : "SWB service1"

c'est ok, n'est-ce pas ? alors comment tu expliques ceci :

Image 1.JPG


c'est quoi cette 13ème feuille qui n'a pas de nom ("") ? (n'oublie pas que
c'est à partir de 0, donc c'est bien la 13ème feuille, pas la 12ème)

c'est cette mystérieuse feuille sans nom qui a causé le plantage de la macro ;
mais je ne vois pas ce que peut être cette feuille, et normalement, c'est tout
simplement impossible de nommer une feuille "" : il faut au minimum
1 caractère !


comme tu as recréé ton fichier correctement, je sais qu'il n'y a plus
ThisWorkbook1 ; mais alors ? peut-être une feuille cachée de nom "" ?
ce qui serait une autre anomalie, aussi bizarre que ThisWorkbook1.


fais Alt F11 pour aller sur l'éditeur VBA ; côté gauche, regarde la fenêtre
de projet, avec toutes les feuilles (visibles ou non) ; juste sous la feuille
"SWB service1", tu devrais voir la feuille fautive (même si elle n'a pas de
nom)
; je te laisse joindre une image, comme celle-ci :

Image 2.JPG


mais fais en sorte que tout le bas apparaisse, jusqu'à ThisWorkbook
(et même un peu plus bas, au cas où).

comme tu as recréé entièrement ton classeur, j'espère que ce n'est pas
l'effet indésirable d'un virus ! à tout hasard, fais avec ton antivirus
une analyse complète de ton PC (et j'espère que ton antivirus est de
bonne qualité, car ceux de bas de gamme et / ou gratuits ne sont
pas toujours suffisamment efficaces).

ajout : si ton PC est hanté et que tu as des feuilles fantômes,
je ne peux rien faire pour toi : je ne suis pas exorciste ! :p

à te lire pour la suite.


soan
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
??? moi aussi, j'ai Excel 2007, avec le bouton raccourci dont tu parles pour ajouter
une feuille (Maj F11) ; mais ce n'est pas pour autant que ça me crée une feuille
fantôme de nom "" ! quand j'exécute la macro qui affiche le nom des feuilles,
ça se termine bien avec la dernière feuille réelle "SWB service1" ; ça ne m'affiche
pas une fausse feuille supplémentaire "" ! là, je ne sais pas comment expliquer
cette différence de comportement (peut-être que c'est lié à une des options
d'Excel ? si oui, je ne vois vraiment pas laquelle !)
; et-tu bien sûr que tu n'as pas
de virus sur ton PC ? sinon, maintenant que la cause du plantage est connue,
le remède est simple ; mets la boucle For I ... Next I comme ceci :
VB:
    For I = 0 To UBound(Ar)
      If Ar(I) <> "" Then
        Set Wsh = Worksheets(Ar(I))
        If WshAct.Range("BS" & j) = Ar(I) Then
          Nb = WshAct.Range("CD" & j)
          If Nb > 0 Then Wsh.PrintOut Copies:=Nb ', Collate:=False
          j = j + 1
        End If
      End If
    Next I
J'ai seulement ajouté ce test : If Ar(I) <> "" Then ... End If
mais c'est un « patch » car la vraie solution aurait été
d'arriver à ce qu'il n'y aie plus de feuille sans nom.

Ce qu'on appelle un « patch », c'est comme une « rustine » ;
de la même façon qu'on répare une chambre à air de vélo
avec une rustine au lieu de changer de chambre à air pour
une neuve : c'est juste du rafistolage, pour dépanner. ;)

Mais cette rustine devrait être suffisante pour que
tes impressions ne plantent plus, même avec une
feuille fantôme.

si ça marche, je suis peut-être un petit peu exorciste, finalement ! :p

soan
 

sebbbbb

XLDnaute Impliqué
Merci Soan
je vais tester apres mon travail
ce qui m'étonne c'est que dans le fichier séparé reçu j'ai également cette 'fausse feuille' mais cela n'empeche pas la macro de focntionner
je pense plus a un autre quelque chose qui empecherait la macro de fonctionner dans mon fichier source
 

soan

XLDnaute Barbatruc
Inactif
??? même avec en plus le test : If Ar(I) <> "" Then ... End If
ça plante quand même ? o_O

Pourtant, quand Ar(I) est vide (""), maintenant, ça saute
tout le code VBA qui est dans la boucle For I ... Next I

Donc si ça plante, ça doit être sur une autre ligne ;
quelle est cette autre ligne de code VBA ?


soan
 

soan

XLDnaute Barbatruc
Inactif
Lis mes 2 posts précédents.

Dans ton post #51, tu as écrit : « ce qui m'étonne c'est que dans le fichier séparé reçu j'ai également
cette 'fausse feuille' »
; comme moi je n'ai pas cette 'fausse feuille' sur mon PC, je pense que ton
fichier reçu ne l'a pas non plus, mais je soupçonne ton Excel 2007 de l'avoir automatiquement
créée à l'ouverture du fichier.

C'est peut-être dû à une de tes options d'Excel différente des miennes ? mais en fait, je crois
plutôt qu'il est possible que ton Excel ne soit pas à jour, et / ou qu'il soit mal installé.

menu Fichier (bouton Office), Options Excel, Ressources ; regarde le côté droit.

* pour le 1er cas, clique sur le bouton « Rechercher les mises à jour »

* pour le 2ème cas : clique sur le bouton « Diagnostiquer »

C'est possible que tu doives faire les 2, pas qu'un seul !

Le docteur t'enverra bientôt sa note d'honoraires ; je te préviens,
elle sera salée ! et non remboursable par la Sécu ! :D:p


soan
 

soan

XLDnaute Barbatruc
Inactif
Quand tu auras lu mes 3 posts précédents, voici 2 autres pistes :

1) Tu as peut-être un complément Excel qui crée la 'fausse feuille' ?

2) Sur mon PC, mon imprimante laser, qui peut numériser un document,
rajoute dans le menu Excel (et Word) l'onglet « Easy Document Creator » ;
tu as peut-être une imprimante qui crée une 'fausse feuille' pour faire
des opérations utiles à son job ? (ou même chose par un autre périph ?)

aie ! la note d'honoraires a encore augmenté ! :p


soan
 

soan

XLDnaute Barbatruc
Inactif
C'est normal que tu ne vois pas l'onglet "Easy Document Creator" : tu le verrais seulement
si tu avais la même imprimante laser que la mienne (marque et modèle).

Non, j'en ai parlé uniquement en tant qu'exemple, pour te montrer qu'une imprimante peut
avoir une incidence sur Excel ; donc je me suis dit que ton imprimante (ou un autre de tes
périphériques)
avait peut-être fait cette modif d'Excel : créer une feuille supplémentaire sans
nom
, pour ses besoins de fonctionnement ; mais en fait, même si un périphérique a besoin
de se créer une feuille Excel cachée, je ne pense pas que cette feuille puisse s'appeler "" :
il faut quand même un nom d'au moins 1 caractère.


------------------------------------------------------------------------------------------------------

As-tu essayé les boutons « Rechercher les mises à jour » et « Diagnostiquer » ?
avec de la chance, peut-être que ça réparera ce problème mystérieux de
'fausse' feuille sans nom ?

Dans ton post #57, tu as écrit : « le 'patch' fonctionne parfaitement :) »
j'en suis positivement ravi ! ce sujet est donc résolu, n'est-ce pas ?

Si la mise à jour d'Office et / ou la réparation d'Office fonctionnent,
merci de bien vouloir me l'indiquer. ;)


soan
 

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 914
Membres
103 036
dernier inscrit
Greg33091