Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Menu impression

claude.dasilva

XLDnaute Junior
Bonsoir à tous,
Je cherche à créer une checkbox qui me permettrait d'imprimer les onglets de mon classeur excel en cochant les onglets que je veux avec une case me demandant le nombre d'exemplaire pour chaque onglet.
J'ai déjà avec l'aide de membres du forum créé une checkbox qui me permet d'imprimer les onglets mais sans les quantités.


Il me manque donc une case qui me permettrait de choisir le nombre d'impression pour chaque onglet.
De plus, j'ai 2 onglets pour lesquels actuellement, je rentre 1 seule valeur dans une cellule ce qui a pour effet de remplir automatiquement d'autres cellules dans le même onglet. Les données sont récupérées sur un autre onglet qui me sert de base de donnée. Une fois cette cellule renseignée, j'imprime la feuille et je rentre une nouvelle valeur et je répète l'opération autant de fois que nécessaire (selon qu'une cellule de la base de donnée est vide ou pas...)
Puis-je modifier le code pour faire ça sans devoir taper tous les chiffres manuellement.

Merci.
 

nyko283

XLDnaute Occasionnel
Re : Menu impression

Bonjour Claude, le forum,

Afin de faciliter le choix des feuilles et surtout le choix pour chacune d'entre elles le nbre de copies, j'utiliserais plutot des Checkbox pour le choix des feuilles et des combobox pour le nbre de copies.
Votre fichier a un nbre constant de feuille ou il est sujet à evoluer ?
POur ce qui est de la deuxieme question, cela doit etre possible mais la valeur a saisir est incrémenter a chaque fois de 1 ou c'est une suite de chiffre précis? un petit bout de fichier serais le bien venu.
 

claude.dasilva

XLDnaute Junior
Re : Menu impression

Bonjour Nicolas,

Voilà un morceau de mon classeur.
Pour la feuille CDE, la seule cellule libre est la Q9
Pour la feuille ABC, la seule cellule libre est la M7
Ce sont ces 2 cellules que je veux remplir automatiquement selon que la cellule colonne J de la feuille Temps Réel est vide ou pas...

Merci pour ton aide.
L'onglet menu est la feuille où je retrouve mon bouton pour imprimer avec le choix des feuilles et quantité.
J'avais déjà commencé à chercher une solution mais il m'imprime une quantité différente que celle que j'indique si au delà de 1...

Claude
 

Pièces jointes

  • Indicateurs.xls
    181.5 KB · Affichages: 92
  • Indicateurs.xls
    181.5 KB · Affichages: 95
  • Indicateurs.xls
    181.5 KB · Affichages: 97

nyko283

XLDnaute Occasionnel
Re : Menu impression

Regarde donc le fichier joint et dit moi si c'est bien ce que tu cherche:
- pour la saisie automatique à chaque fois que tu clique sur le bouton Engin alors il met automatiquement le prochain engin avec la colonne "J" non vide dans la feuille "ABC" j'ai mis une formule dans la feuille CDE pour eviter la saisie, une fois arriver au bout il recommence depuis le début.

pour l'impression , dans la configuration actuelle tu peut avoir au max 13 feuilles menu inclut mais on peut augmenter ce nombre au besoin, coche la checkbox pour avoir le choix de la quantité.
 

Pièces jointes

  • Copie de Indicateurs(1).xls
    224 KB · Affichages: 76
  • Copie de Indicateurs(1).xls
    224 KB · Affichages: 74
  • Copie de Indicateurs(1).xls
    224 KB · Affichages: 73

claude.dasilva

XLDnaute Junior
Re : Menu impression

Merci Nicolas,

Je sens que la fin est proche.
Juste une dernière chose, je n'ai pas été assez clair à mon avis dans le précédent mail.
En fait, ce que je cherche à avoir pour les feuilles ABC et CDE, c'est quand je choisis d'imprimer ces feuilles, il imprime toute les feuilles pour lesquelles la colonne J est vide.
Dans ta solution, je dois cliquer sur engin et sur imprimer à chaque fois.
Sinon pour l'impression des feuilles, c'est super c'est exactement ce que je voulais.

Claude.
 

claude.dasilva

XLDnaute Junior
Re : Menu impression

Bonjour,

Après avoir intégré le code de Nicolas, je me suis rendu compte de quelque chose.
J'ai déplacé le bouton "engin" sur la feuille ABC et l'idée serait de plutôt que d'imprimer toutes les feuilles pour lesquelles la colonne J est vide, ce serait d'avoir dès que je clique sur "engin" une combox qui me donne le choix entre OK ou Annuler.
Le bouton OK imprimerait la feuille actuelle et passerait à l'engin suivant.
Le bouton Annuler, lui, passerait à l'engin suivant sans impression.

Merci pour votre aide.
 

nyko283

XLDnaute Occasionnel
Re : Menu impression

Voila j'ai integrer le fait d'imprimer "la feuille "ABC" au lieu de toutes avec choix du nombre de copies, tu n'as besoin de cliquer q'une fois pour faire le tour de tous les numéros d'engins.
 

Pièces jointes

  • Copie de Indicateurs(1).xls
    220 KB · Affichages: 60
  • Copie de Indicateurs(1).xls
    220 KB · Affichages: 54
  • Copie de Indicateurs(1).xls
    220 KB · Affichages: 51

claude.dasilva

XLDnaute Junior
Re : Menu impression

Merci Nicolas,
C'est impeccable...
Une dernière question Est-ce la ligne suivante dans userform choiximpression qui me permettra d'ignorer les feuilles du classeur dans la liste de choix ?
Private Sub CommandButton1_Click()
For i = 1 To Sheets.Count - 1

Si j'ai bien compris avec la valeur -1 il enlève l'onglet menu... Est-ce bien ça ?

Merci.
 

claude.dasilva

XLDnaute Junior
Re : Menu impression

J'ai intégré tes modifs à mon fichier original mais ça bloque.
Je pensais n'avoir qu'à changer le nom des feuilles et quelques chiffres pour tenir compte du nombre de ligne...
Mais là dès le départ quand je clique sur "choix d'impression" il me dit que l'objet est introuvable...
Et quand je clique sur déboguage il m'envoie sur cette ligne :
ChoixImpression.Show

Pourtant la feuille ChoixImpression.Show existe bien...
Peux tu m'aiguiller ?
 

nyko283

XLDnaute Occasionnel
Re : Menu impression

En fait la feuille "Menu" est la 1ere feuille du classeur (c'est le premier onglet en partant de la gauche), lors du premier passage dans la boucle "For i = 1 To Sheets.Count - 1 " i vaut 1 mais comme lors de l'affectation des noms de feuille j'utilise ".Caption = Sheets(i + 1).Name" au premier passage il prend la feuille 2 (i+1 soit 1+1) d'ou mon Sheets.Count - 1 sinon lors du dernier passage i serait égale au nombre maximun de feuille et comme on lui ajoute 1 (Sheets(i + 1).Name) alors on aurait un indice supérieur au nombre réel de feuille.



Et quand je clique sur déboguage il m'envoie sur cette ligne :

ChoixImpression.Show
à partir de la vas-y pas à pas en appuyant sur la touche "F8" le code va avancer d'une ligne de code à chaque fois que tu appuyeras sur "F8" et donc il t'amèneras à la ligne qui génère l'erreur.
 

claude.dasilva

XLDnaute Junior
Re : Menu impression

Nicolas,
Merci pour ta réponse rapide.
En fait j'ai l'impression qui bloque par rapport au nombre de feuille, tu as paramétré l'userform pour 12 feuilles menu exclu.
Dans mon classeur original, j'ai 17 feuilles mais les 5 premières ne sont pas imprimables.
Et à quoi sert cette ligne :
num = Val(Right(Check.Name, Len(Check.Name) - 8))
J'essaye de comprendre chaque ligne au fur et à mesure pour mon autoformation.
 

nyko283

XLDnaute Occasionnel
Re : Menu impression

POUR CE QUI EST DE LA LIGNE
num = Val(Right(Check.Name, Len(Check.Name) - 8))
ON Y TROUVE EN FAIT 3 fonction de manipulation de chaine de caractere, dont tu trouveras un tuto tres complet grace à Silkyroad
Manipuler les chaînes de caractres en VB6 et VBA Excel
sinon pour faire court
tu y trouve donc la fonction
-Len(VariableEnString) dans mon code Check.name retourne le nom de la Checkbox qui a declenche le code soit par exemple "Checkbox1" et donc la fonction retourne le nombre de caracteres de la chaîne soit ici 9

- Right(VariableEnString,nombre) en fait ici on demande a couper la chaine de x caractere en partant de la droite.Soit en suivant l'exemple Right("CheckBox1",9-8) retourne donc "1" attention pour Vb le "1" bien q'un chiffre est toujours considéré comme du texte.

- Val(VariableEnString) renvoi sous format double en nombre stocké en format String
donc Val("1") renvoi 1.

Bonne continuation.
 

Discussions similaires

Réponses
4
Affichages
337
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…