Creation d'une MACRO a partir d'une liste déroulante

Bonjour

Je me permets de venir vous déranger car je me retrouve embêtée dans le cadre de mon travail dans un dossier.

Je dispose d'un fichier (voir ci-joint), dans lequel chaque mois j'agrémente les données de l'onglet BDD.

Cependant je voudrais créer une macro dans l'onglet "à imprimer" qui me permet de lancer l'édition de la zone d'impression, qui prend en compte la liste déroulante de chacun des salariés.

Dans la cellule O3, la liste déroulante de tous les salariés qui met à jour mon tableau à imprimer.

Je voudrais pouvoir lancer l'impression en direct de chacune des pages d'impression sans avoir à faire les changements manuellement.

Deuxième particularité, est il possible d'intégrer le principe que l'impression se fasse dans l'ordre non alphabétique mais de Z à A ?

Merci par avance de vos solutions,

Charline

36bdd-avec-macro.xlsm (52.41 Ko)

charline1809,

Je crois qu'en consultant ton fichier et tes explications, en testant et en relisant, j'ai fini par comprendre ta demande ... mais j'insiste sur le je crois !!

Tu souhaites un bouton qui va faire en sorte que tous les tableaux de la feuille BDD s'impriment, l'un après l'autre automatiquement, dans l'ordre décroissant du nom de famille et sur le modèle de ce qui figure dans la zone d'impression que tu as définie ... c'est bien ça ?

As-tu déjà entendu parler du Publipostage ? C'est une fonctionnalité présente dans Word, mais pour laquelle la source de données peut être un fichier Excel (entre autres). Si tu ne connais pas, ça fait précisément ce que je pense que tu souhaites, sans macro (ça vaut donc la peine que tu t'y intéresses, sans doute!).

Dans le même ordre d'idée, on aurait pu te proposer une formule bien plus simple pour compléter ton petit tableau, à la place de tes SI imbriqués. J'en ai compté jusqu'à plus de 50

Ceci étant (et en admettant que tu cherches toujours une solution!) que ce soit pour une formule ou un publipostage, il vaut mieux travailler avec une véritable source de données ou liste de données. Ce que tu appelles ta BDD n'en est pas une, en réalité. Un tableau structuré te faciliterait le travail, à terme, même pour un Tableau Croisé Dynamique, que tu sembles avoir fait dans ta 2e feuille.

Si tu ne peux pas revoir la structure du fichier dans l'immédiat, tu avais un bout de code qui faisait presque le job ... Modifie-le comme suit:

Sub Impression()

Set f = Sheets("a imprimer")
For lig = 55 To 52 Step -1
    f.Cells(3, 15) = f.Cells(lig, 18)
    ActiveSheet.PrintOut
Next lig

End Sub

charline1809,

Je crois qu'en consultant ton fichier et tes explications, en testant et en relisant, j'ai fini par comprendre ta demande ... mais j'insiste sur le je crois !!

Tu souhaites un bouton qui va faire en sorte que tous les tableaux de la feuille BDD s'impriment, l'un après l'autre automatiquement, dans l'ordre décroissant du nom de famille et sur le modèle de ce qui figure dans la zone d'impression que tu as définie ... c'est bien ça ?

As-tu déjà entendu parler du Publipostage ? C'est une fonctionnalité présente dans Word, mais pour laquelle la source de données peut être un fichier Excel (entre autres). Si tu ne connais pas, ça fait précisément ce que je pense que tu souhaites, sans macro (ça vaut donc la peine que tu t'y intéresses, sans doute!).

Dans le même ordre d'idée, on aurait pu te proposer une formule bien plus simple pour compléter ton petit tableau, à la place de tes SI imbriqués. J'en ai compté jusqu'à plus de 50

Ceci étant (et en admettant que tu cherches toujours une solution!) que ce soit pour une formule ou un publipostage, il vaut mieux travailler avec une véritable source de données ou liste de données. Ce que tu appelles ta BDD n'en est pas une, en réalité. Un tableau structuré te faciliterait le travail, à terme, même pour un Tableau Croisé Dynamique, que tu sembles avoir fait dans ta 2e feuille.

Si tu ne peux pas revoir la structure du fichier dans l'immédiat, tu avais un bout de code qui faisait presque le job ... Modifie-le comme suit:

Sub Impression()

Set f = Sheets("a imprimer")
For lig = 55 To 2 Step -1
    f.Cells(3, 15) = f.Cells(lig, 18)
    ActiveSheet.PrintOut
Next lig

End Sub

[Edit:] corrigé la boucle en For lig = 55 to 2 Step-1

Pffff..... en plus, je me suis cité moi-même (ce qui n'est pas très "U. Milité", j'en conviens!)

Bonjour,

Je confirme : C'est pas une BDD mais une s... !

Je t'ai quand même fait ça aux petits oignons. (en pièce jointe)

Il a été crée dans le gestionnaire de noms une plage nommée "LNoms"

Cette plage s'adapte automatiquement au nombre de noms qui s'y trouvent. (Cellules vides inadmises...)

A+

44charline1809vg.xlsm (46.25 Ko)

MERCI MERCI MERCI MERCI !!!!

c'est absolument parfait !!!!

je sais que c'est un fichier qui a été complexifié au maximum (ma prédécesseuse) mais je n'avais vraiment pas le temps de tout reprendre à 0, ni même faire du publipostage car il fallait que ce fichier soit opérationnel pour mardi maximum !!!!!

Mais je suis ravie d'apprendre que je peux faire du publipostage à partir d"'un fichier excel, je vais le mettre en place pour le mois prochain !!!

une chose est sur l'un comme l'autre m'a fait économiser un gain de temps et d'arrachage de cheveux !

Merci encore

Rechercher des sujets similaires à "creation macro partir liste deroulante"