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
332

Statistiques des forums

Discussions
312 330
Messages
2 087 346
Membres
103 525
dernier inscrit
gbaipc