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... je sèche

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"
Rechercher des sujets similaires à "imprimer via macros"