Imprimer via macros
Bonjour à tous,
Je suis actuellement en stage et suis confronté à un petit problème:
J'ai dans mon classeur une petite dizaine de feuilles à imprimer.
Seulement, dans chacune de ces feuilles, j'ai une liste déroulante qui, selon l'élément de la liste sélectionné, change le contenu de l'entete, et je dois imprimer chaque version de chaque feuille...
J'avais essayé de faire une macro en sélectionnant le premier élément, imprimant, sélectionnant le deuxième, imprimant etc. Jusqu'au dernier.
Mais au lieu de me sortir les 4 feuilles différentes (j'ai pour cette feuille 4 éléments dans ma liste) il m'a sorti 4 fois la dernière...
Je pense donc devoir passer par VB mais, vous vous en doutez, c'est pas trop mon dada!
Merci à celui qui aurait une solution à ce problème et à tous ceux qui auront essayé =)
Bonjour et bienvenue
Merci de joindre ton fichier
EbNYLzTz5wM
Amicalement
Nad
Ce ne serait pas de refus mais je suis au travail actuellement et je dois me contenter de mon téléphone pour naviguer sur internet...
Sinon j'ai essayé de modifier le code VBA de la macros que j'avais faite et.... SA MARCHHEESSS!!!
Voici le code tel qu'il était avant que je le touche (en faisant la macros)
Sub Imprimer()
Sheets("THEME1 "). Select
Application.ActivePointer =
' " \\adresse \ et nom de l'imprimante:"
ExecuteExcel4Macro_
"PRINT(1,,,1,,,,,,,,2,""\\adresse \ et nom de l'imprimante:"",,TRUE,,FALSE)"
Range("X9:AA9").Select
PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
End Sub
Après modification, voici ce que ça donne :
Sub Imprimer()
Sheets("THEME1 "). Select
Range("X9").Value = 1.1
Application.ActivePointer =
' " \\adresse \ et nom de l'imprimante:"
ExecuteExcel4Macro_
"PRINT(1,,,1,,,,,,,,2,""\\adresse \ et nom de l'imprimante:"",,TRUE,,FALSE)"
Range("X9:AA9").Select
Range("X9").Value = 1.2
PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("X9").Value = 1.3
PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("X9").Value = 1.4
PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
End Sub
Vous comprendrez que X9 est la cellule où se trouve ma liste déroulante qui prend les valeurs successives : 1.1. 1.2. 1.3. Et. 1.4
Je n'ai plus qu'à répéter la tache pour les dix autres feuilles et ce sera parfait
Je ne vais cependant pas vois abandonner, dès que j'aurais finis, j'aurais d'autres question à vous poser
Merci à Nad qui a eut le coeur de m'aider et pour les autres, n'hésitez pas à poser des questions si cela semble trop flou, j'essaierais une foi chez moi de recréer un classeur à la fois simplifié et similaire (mais là par téléphone c'est pas coool!!)
-- 10 Juin 2011, 11:13 --
Rectification, ce n'est pas tout à fait çà:
Il remplace les . Par des ,
1.1-----1.2----1.3--et--1.4 deviennent:
1,1----1,2----1,3--et--1,4
Pas très grave vous allez me dire mais enfait si:
Dans mon classeur toute les feuilles et tous les champs possèdent des liens
Les valeurs de l'entete deviennent donc #N/A
J'ai également essayé :
Range("X9").Value = "1.1" comme pour les phrases mais sans succès!
J'ai une dernière idée mais après celle la...
Vous serez tenu au jus
-- 10 Juin 2011, 11:42 --
Je sèche! Je vous présente néanmoins ma dernière idée:
Remplacer
Range("X9").Value = 1.1
ou Range("X9").Value = "1.1" par:
Range("X9").Value = Sheets("Base").Range("F20").Value
En effet, ma liste déroulante fait référence à la colonne F de la feuille "Base"
Si vous avez des réponses á mes questions, je m'avouerais être très reconaissant!
Bonjour Sym,
Essaie avec :
Range("X9").FormulaLocal = "1.1"