XL 2016 imprimer la même feuille en changeant le nom avec une liste déroulante

sergemarius

XLDnaute Nouveau
Bonjour,
J'ai un calendrier excel,j'aurai besoin d'une macro me permettant d'imprimer chaque mois la liste de camion se trouvant dans la liste déroulante immatriculation,je débute vraiment avec la VBA et j'ai du mal a trouver ce que je cherche dans les différentes aides.
Merci si quelqu'un peut m'aider
Prenez soin de vous
Cordialement
 

Pièces jointes

  • classeur liste points de controle v6.1.xlsx
    50.1 KB · Affichages: 16

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

D'après ce que j'ai compris de votre demande, il s'agit d'imprimer la feuille 'Liste des Points de
Contrôle' avec chacune des immatriculations de camion.

Dans le classeur joint j'ai créé un nom ListeIMMAT avec la formule =DECALER(VEHICULES!$A$2;;;MAX(1;NBVAL(VEHICULES!$A$2:$A$100))) pour que la plage de cellules s'adapte au contenu;; et reprendre son nom dans la macro suivante :

VB:
' impression mensuelle de la liste des points de contrôle
' Pour chaque véhicule
Sub ImprimerLPC()
    Dim i As Integer
    Dim tbl As Variant

    tbl = [listeIMMAT].Value
    For i = 1 To UBound(tbl)
        ' s'il existe une valeur
        If Not IsEmpty(tbl(i, 1)) Then
            With ThisWorkbook.Sheets("liste points de controle")
                .Range("O2").Value = tbl(i, 1)
                .PrintPreview
                '.Print
            End With
        End If
    Next i
End Sub

la macro affiche l'aperçu avant impression. Pour imprimer réellement, enlever le ' (guillemet simple) devant la ligne .Print et en mettre un devant .PrintPreview (ou éventuellement supprimer cette ligne)

Pour faire un test vous pouvez remplacer provisoirement la ligne
For i = 1 To Ubound(tbl) par
For i = 1 To 3

NB si vous voulez des macros, joignez des fichier .xlsm et non des .xlsx ça nous évitera de le créer et d'en avoir deux exemplaires. Et relisez votre demande pour ôter toute ambigüité.

Cordialement
 

sergemarius

XLDnaute Nouveau
Bonjour,j'ai bien essayé votre macro,je me retrouve avec un apercu avant impression mais toujours page par par page,si j’enlève le guillemet j'ai le message d'erreur"impossible d'executer le code en mode arrêt"
Désolé de mon ignorance en Vba
Bien cordialement
 

sergemarius

XLDnaute Nouveau
Bonsoir,
Oui,je suis bien d'accord avec vous pour le papier,mais dans une entreprise de transports ,il est important que tout le monde vérifie et note qu'il a vérifié les points de contrôle,problème de sécurité et de traçabilité,d'ou le besoin d'imprimer une feuille par immatriculation.
Cordialement
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

si j’enlève le guillemet j'ai le message d'erreur"impossible d'executer le code en mode arrêt"

Il ne faut pas enlever le guillemet lorsque la macro est en cours. Il faut l'enlever avant de la lancer.

De toute façon il y avait une petite erreur corrigée ci-dessous:

VB:
]' impression mensuelle de la liste des points de contrôle
' Pour chaque véhicule
Sub ImprimerLPC()
    Dim i As Integer
    Dim tbl As Variant
    tbl = [listeIMMAT].Value
    For i = 1 To UBound(tbl)
        ' s'il existe une valeur
        If Not IsEmpty(tbl(i, 1)) Then
            With ThisWorkbook.Sheets("liste points de controle")
                .Range("O2").Value = tbl(i, 1)
                .PrintOut
            End With
        End If
    Next i
End Sub

Cordialement
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 022
Messages
2 104 734
Membres
109 116
dernier inscrit
RALAIZANAKA