Impression, avec un random associé

Bonjour,

Je suis à la recherche d'une solution à un soucis qui me paraissait simple...

J'ai un onglet contenant une page de calcul et la page de correction associée.

J'ai créé un bouton lançant un userform.

Dans ce userform, je donne le nombre d'exemplaire que je souhaite et valide l'impression.

Ce que je n'arrive pas à faire, en contrôlant le nombre d'exemplaire, je fais un random.

Je m'explique : Si je veux 3 exemplaires, j'ai donc l'onglet qui s'imprime, puis un random, puis une deuxième impression du même onglet, puis un random et enfin la troisième impression (bien sur si je mets 7, le même schéma se répète).

Enfin, je veux que cette commande d'impression soit faite en une seule fois (pas à valider "impression" autant de fois que le nombre renseigné) comme si cela était qu'un seul fichier.

En vous remerciant !!

8calcul.xlsm (31.93 Ko)

Bonjour Erwann,

Dans ce cas, si c'est ok pour vous (?), je pense que le plus simple c'est de créer dans votre fichier autant de feuilles (donc de plages) que d'impressions requises. Pour reprendre votre exemple on recrérait 3x la plage A2:DC23 avec chaque groupe différent. Ensuite il faudrait imprimer tout le document.

Autrement je ne vois pas comment lancer 1 impression uniquement, il faudrait obligatoirement lancer 3 impressions.


EDIT : j'ai peut etre mal compris, une alternative pourrait être de lancer en réalité 3 impressions en "arrière-plan" (= sans vous demander quoi que ce soit), et avant de lancer cela on mettrait une petite MsgBox qui demande une confirmation (avec éventuellement un check par exemple si >50 feuilles).

C'est une alternative beaucoup + simple en terme de code.

Ci-après le code correspondant à ma proposition 2 (le EDIT) à mettre dans le code de l'userform (remplacez l'ancien) :

NB : utilisation de la dernière imprimante utilisée (c'est paramétrable)

Private Const MAX_IMPRESSIONS As Long = 50

Private Sub ValidImpr_Click()
    ' nombre de feuilles a imprimer
    Dim nbFeuilles As Long: nbFeuilles = CLng(Me.NBImpr)

    ' verification de la limite
    If nbFeuilles > MAX_IMPRESSIONS Then
      If MsgBox("Plus de " & nbFeuilles & " impressions sont prévues !!" & vbCrLf & _
        "Etes-vous sur de vouloir continuer ?", vbExclamation + vbYesNo, "ATTENTION") = vbNo Then
        Exit Sub
      End If
    End If

    ' demande confirmation
    If MsgBox(nbFeuilles & " impression(s) sont prévues." & vbCrLf & "Confirmer ?", vbInformation + vbYesNo, "CONFIRMATION") = vbYes Then
      Dim i As Long
      For i = 1 To nbFeuilles
        Feuil1.Calculate
        Feuil1.PrintOut Preview:=False
      Next i
    End If

    ' Fermeture de la fenêtre
    Unload Me
End Sub
Rechercher des sujets similaires à "impression random associe"