Macro liste déroulante + mise en page + impression

nemzor

XLDnaute Nouveau
Bonjour,

J'aimerais utiliser une macro afin d'imprimer un tableau qui se modifiera à chaque changement de critère dans une liste déroulante. Pour cela j'ai déjà trouvé cette macro pour créer la boucle :

Sub test()

Dim c As Range
For Each c In Range("test1")
Range("test2").Value = c.Value
Worksheets("Feuil1").PrintOut
Next c

End Sub

Cette macro imprime bien un tableau par page.
Cependant, mon problème est qu'il me manque la mise en page...En effet, j'aimerais pouvoir imprimer plusieurs tableaux par page...sachant que chaque tableau est soumis à un critère de liste déroulante différent. Est-ce possible?

Merci d'avance
 

Gorfael

XLDnaute Barbatruc
Re : Macro liste déroulante + mise en page + impression

Salut nemzor et le forum
Bienvenue
petit rappel : il n'y a ni devin, ni télépathe sur ce site !
Et avec le peu d'infos données, ça va être difficile de savoir ce que tu veux

on sait que tu as quelque part une plage de cellules nommée "test1"
que tu les copies, une par une dans dans une cellule nommée "test2" qui doit être vraisemblablement sur l'onglet "Feuil1" que tu imprimes !
que tu as des listes déroulantes.

Pas de quoi faire ce qui est dans ta têe.
A+
 
Dernière édition:

nemzor

XLDnaute Nouveau
Re : Macro liste déroulante + mise en page + impression

Salut !

Désolé, étant débutant en VB je pensais que la macro était compréhensible pour des initiés :)

Sub test()

Dim c As Range
For Each c In Range("test1")
Range("test2").Value = c.Value
Worksheets("Feuil1").PrintOut
Next c

End Sub

"test1" renvoit à la plage de données utilisée par ma liste déroulante, qui elle s'appelle "test2"..
Une fois que je clique sur le bouton associé à cette macro, cela va m'imprimer mon tableau avec différentes valeurs, autant de fois qu'il existe de valeur dans ma plage de données (= "next c"),
Mon problème vient du fait que si j'ai 5 "c" par exemple, cela va m'imprimer 5 pages avec un seul tableau par page.
Je recherche un complément de code qui configure l'impression en placant ces 5 tableaux sur une seule et même page..

J'espère être un peu plus clair

Merci
 

Gorfael

XLDnaute Barbatruc
Re : Macro liste déroulante + mise en page + impression

Salut nemzor et le forum
Désolé, étant débutant en VB je pensais que la macro était compréhensible pour des initiés :)
Le code oui, la macro non !
Une fois que je clique sur le bouton associé à cette macro, cela va m'imprimer mon tableau avec différentes valeurs, autant de fois qu'il existe de valeur dans ma plage de données (= "next c"),
Non ! autant de cellules (avec ou sans valeur) qu'il y a dans la plage "test1"
Je recherche un complément de code qui configure l'impression en placant ces 5 tableaux sur une seule et même page...
Dans ta macro, tu envoies la valeur de C en "test2" => comme il n'y a qu'une seule adresse de réception, avec impression avant de passer à la cellule suivante...

Excel fait toujours (quand c'est possible) ce que tu lui demandes et quelques (rares) fois ce que tu veux !
J'espère être un peu plus clair
Mon but est de répondre en un minimum de postes.

Tu parts du principe qu'on a trouver les données implicites. Ce n'est jamais le cas ! Plus ta description est floue, moins tu as de chance que ça t'aide. Si effectivement je finis par comprendre ce que tu veux, ce sera avec une multitude de postes, donc avec des délais conséquents (si j'en ai pas assez entretemps et abandonne ce sujet).

Avec autant de précisions que toi (quoique):
Code:
Sub test()
Dim Cel As Range
For Each Cel In Range("test1")
    Sheets("Feuil1").Cells(Cells(Rows.Count, "A").End(xlUp).Row + 1, "A") = Cel
Next Cel
Sheets("Feuil1").PrintOut
End sub
pour chaque cellule de test1
copier la valeur en A, dernière ligne utilisée +1 de la feuille Feuil1
puis imprimer la feuille

Il faut penser à la remise à zéro en commençant la macro
A+
 

nemzor

XLDnaute Nouveau
Re : Macro liste déroulante + mise en page + impression

Merci pour ta réponse.
Cependant, cela ne fonctionne toujours pas, et pour cause : mes explications ne sont pas claires.
Dans ton code on ne parle plus de "test2" alors que c'est la liste déroulante qui détermine les données de mon tableau.


Tu trouveras ci-joint un fichier d'illustration.
La cellule G6 est "test2", liste déroulante
La plage C7:C10 est "test1", base de données de la liste déroulante.

Je cherche à imprimer entierement le tableau encadré G6:G10 à chaque fois qu'on change de critère dans la liste déroulante (4 critères = 4 tableaux). Est-ce qu'on se comprend jusque là?
Ma macro m'imprimait un tableau par page..
Seulement j'aimerais que ces tableaux tiennent sur une même page (ou plusieurs si on a trop de tableaux et que ca déborde).

Merci du temps que tu prends à m'aider.
 

Pièces jointes

  • Classeur1.xls
    43 KB · Affichages: 64
  • Classeur1.xls
    43 KB · Affichages: 80
  • Classeur1.xls
    43 KB · Affichages: 84

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi