Zone d'impression par rapport au résultat d'une InputBox

Bonjour tout le monde,

Je viens vers vous car j'aurai besoin d'aide.

Contexte : Je vais communiquer un fichier excel à de nombreuses personnes, ne sachant pas le niveau (excel) des futurs utilisateurs j'ai simplifié ce fichier avec des macros.

Mon problème : Chaque utilisateur va devoir imprimer l'onglet qu'il aura crée, toutefois son onglet sera basé sur un tableau de 50 groupes de 3 colonnes, toutefois certains vont remplir 1 groupe d'autres 2, etc.

J'ai actuellement crée après différentes recherches une InputBox dans laquelle la personne renseigne le nombre de groupe remplis, et en fonction de la saisie une MsgBox renseigne la plage de la zone d'impression à saisir dans une nouvelle InputBox qui apparait après avoir cliqué sur OK de la MsgBox.

J'aimerai bien que seule le nombre soit à saisir et que la zone d'impression soit définie, s'il faut en créant un tableau annexe. Je pense bien que la solution doit exister mais après de nombreuses tentatives je n'ai pas réussi à trouver.

Ci dessous mon code actuel qui résume tout ce que j'ai dit précédemment :

Sub Nb_act()
Dim Nombre As Integer
'En cas de mauvaise saisie, on va à MauvaiseSaisie
On Error GoTo MauvaiseSaisie
Nombre = InputBox("Saisissez le nombre d'activités : ", "Saisie numérique")

Select Case Nombre
   Case Is = 12: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:aj81"
    Case Is = 11: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:ag81"
    Case Is = 10: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:ad81"
    Case Is = 9: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:aa81"
    Case Is = 8: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:x81"
    Case Is = 7: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:u81"
    Case Is = 6: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:r81"
    Case Is = 5: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:o81"
    Case Is = 4: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:l81"
    Case Is = 3: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:i81"
    Case Is = 2: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:f81"
    Case Is = 1: MsgBox "La zone d'impression à saisir" & Chr(10) & "à l'étape suivante est donc :" & Chr(10) & Chr(10) & "a1:c81"
    Case Else: MsgBox "Procédez manuellement pour la zone d'impression" & Chr(10) & "La zone démarre en A1 et fini en ?81"
End Select
Dim plage As Range
    Set plage = Application.InputBox(Prompt:="Sélectionner la zone d'impression" & Chr(10) & Chr(10) & "Rappel : A1:?81", Type:=8)
    ActiveSheet.PageSetup.PrintArea = plage.Address
Exit Sub 'Sortie pour ne pas traiter MauvaiseSaisie

MauvaiseSaisie:
MsgBox "Vous n'avez pas saisi un nombre entier", vbCritical
End Sub

Je vous remercie d'avance pour toutes les réponses que vous pourrez apporter à mon problème

Damien

Bonjour

essayez avec ce code

Sub Nb_act()
Dim Nombre As Byte
'En cas de mauvaise saisie, on va à MauvaiseSaisie
On Error GoTo MauvaiseSaisie
Nombre = InputBox("Saisissez le nombre d'activités : ", "Saisie numérique")

If Nombre = 0 Then
    MsgBox "Procédez manuellement pour la zone d'impression" & Chr(10) & "La zone démarre en A1 et fini en ?81"
Else: ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(81, Nombre * 3)).Address
End If
Exit Sub 'Sortie pour ne pas traiter MauvaiseSaisie

MauvaiseSaisie:
MsgBox "Vous n'avez pas saisi un nombre entier", vbCritical
End Sub

Si ok, cliquez sur le petit v en haut à droite pour cloturer le fil.

Cordialement

Merci beaucoup, c'est parfait

Cordialement Damien

Rechercher des sujets similaires à "zone impression rapport resultat inputbox"