VBA - Sélectionner et nommer une plage variable Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
K
Kurosaki
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 6 janvier 2016
Version d'Excel : 2010

Message par Kurosaki » 16 décembre 2016, 16:32

Bonjour à tous !

Je souhaiterais créer un code VBA qui puisse sélectionner et nommer un plage une de cellule variable.

Dans le fichier joint, il y a un tableau dans la feuille : Base (2). Ce tableau sera rempli au fur et à mesure de l'année. En fin d'année il faudrait que je puisse imprimé ce fichier. Mais je souhaiterais imprimer que jusqu'à la dernière ligne remplie.

J'ai déjà un code qui m'imprime le tableau et enregistre ce tableau dans un dossier comme nouveau fichier Excel ! Cependant, il imprime les 4 pages...

Faudra que la plage se nomme : Facture

Pourriez-vous m'aider, s'il vous plait ???

Merci d'avance !! :D :D
Test.xlsm
(171.48 Kio) Téléchargé 59 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 16 décembre 2016, 16:47

Bonjour,

Tu nommes ta plage Facture en dynamique :
=DECALER('Base (2)'!$A$1;;;NBVAL('Base (2)'!$A:$A);5)
Formule à mettre dans la zone Fait référence à.

Si la dernière ligne de la facture est dans une autre colonne que A, tu changes la colonne dans NBVAL (qui sert à dimensionner).

Et dans ton code d'impression tu définiras la zone d'impression (.PrintArea) par : = [Facture].Address

Cordialement.
K
Kurosaki
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 6 janvier 2016
Version d'Excel : 2010

Message par Kurosaki » 19 décembre 2016, 10:03

Bonjour MFerrand,

La formule est juste et je t'en remercie beaucoup.

Pourrais-tu, par contre, m'en dire plus sur le code d'impression ? Je ne sais pas comment le faire...

Merci d'avance !!
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 19 décembre 2016, 10:50

Bonjour,

Exemple : le bout de code suivant :
    With [Facture].Worksheet 'renvoie la feuille contenant la facture
        .PageSetup.PrintArea = [Facture].Address 'définit la zone d'impression
        .PrintOut 'lance l'impression
    End With
Pour tester ce code, remplace .PrintOut par .PrintPreview (qui renvoie un aperçu sans imprimer...)
[NB- dans ce code, je renvoie la feuille à partir de la plage nommée, tu peux bien sûr y référer directement.
PrintArea attend une donnée de type String pour définir la zone d'impression, ce pourquoi on lui envoie l'adresse de la plage nommée qui correspond à ce que l'on veut imprimer.

Cordialement.
K
Kurosaki
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 6 janvier 2016
Version d'Excel : 2010

Message par Kurosaki » 19 décembre 2016, 14:32

:D C'est parfait.

Merci infiniment !

Belle semaine à toi et d'avance de bonne fête !
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message