CODE VBA Imprimer à partir d'une liste déroualnte

eduperier

XLDnaute Nouveau
Bonjour,

J'ai créé un formulaire vba sur lequel j'ai créér 2 listes déroulantes :

1ère liste : Matricule de Départ
2ème liste : Matricule de Fin

J'aimerai pouvoir imprimer à partir de ces 2 listes déroulantes, les matricules souhaités.
Exemple de 1 à 5.

En pièce jointe vous trouverez mon fichier ainsi que le code.

Merci pour votre aide.

Claire
 

Pièces jointes

  • Imprimer à partir d'une liste déroulante.xls
    56 KB · Affichages: 44

job75

XLDnaute Barbatruc
Re : CODE VBA Imprimer à partir d'une liste déroualnte

Bonjour Claire,

Voyez le fichier joint avec cette macro dans l'USF :

Code:
Private Sub cmdLancerImpression_Click()
Dim dep As Variant, fin As Variant, i As Long
With Sheets("Base")
  dep = Application.Match(Val(cmbMatriculeDepart), .[B3:B65536], 0)
  If IsError(dep) Then MsgBox "Matricule de départ inexistant !", 48: cmbMatriculeDepart.SetFocus: Exit Sub
  fin = Application.Match(Val(cmbMatriculeFin), .[B3:B65536], 0)
  If IsError(fin) Then MsgBox "Matricule de fin inexistant !", 48: cmbMatriculeFin.SetFocus: Exit Sub
  dep = .[A3].Cells(dep)
  fin = .[A3].Cells(fin)
End With
With Sheets("Formulaire")
  .PageSetup.PrintArea = ""
  For i = dep To fin
    .[G1] = i
    .PrintOut
  Next
End With
End Sub
Il faut utiliser la fonction Val quand on définit dep et fin car les matricules sont des nombres.

A+
 

Pièces jointes

  • Imprimer à partir d'une liste déroulante(1).xls
    49.5 KB · Affichages: 59

job75

XLDnaute Barbatruc
Re : CODE VBA Imprimer à partir d'une liste déroualnte

Re,

Solution nettement plus simple, donc meilleure :

Code:
Private Sub cmdLancerImpression_Click()
Dim dep As Long, fin As Long, i As Long
dep = cmbMatriculeDepart.ListIndex
If dep = -1 Then MsgBox "Matricule de départ inexistant !", 48: cmbMatriculeDepart.SetFocus: Exit Sub
fin = cmbMatriculeFin.ListIndex
If fin = -1 Then MsgBox "Matricule de fin inexistant !", 48: cmbMatriculeFin.SetFocus: Exit Sub
With Sheets("Formulaire")
  .PageSetup.PrintArea = ""
  For i = dep To fin
    .[G1] = i + 1
    .PrintOut
  Next
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Imprimer à partir d'une liste déroulante(2).xls
    44 KB · Affichages: 66

eduperier

XLDnaute Nouveau
Re : CODE VBA Imprimer à partir d'une liste déroualnte

Re Job 75,

Merci infiniment pour ces 2 procédures, cela fonctionne à merveille.

Pour abuser encore, je ne comprends pas ce à quoi correspond sur la ligne de la MSGBOX le nombre 48 : ?

Si tu peux m'éclairer cela m'aiderait fortement.

Encore mille mercis.

Claire
 

Discussions similaires

Réponses
12
Affichages
304

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87