Bonjour à toutes zé à tous,
J'ai rédigé une petite macro par ajouts successifs et apprentissage sur le tas, notamment sur ce forum.Merci!
Elle me permet d'imprimer toujours avec la même mise en forme une sélection de colonnes faite par l'utilisateur en utilisant un Userform et la fonction refedit
J'aimerais savoir s'il est possible de "scinder" cette sélection faite par l'utilisateur pour imprimer la moitié des colonnes sur le recto d'une feuille et l'autre moitié sur le verso. ]e joins le code actuel commenté:
Private Sub Cmdvalider_Click()
'Permet de lancer l'impression
'Teste si une valeur a été saisie dans la TextBox
On Error Resume Next
If TextBox1.Value = "" Then
MsgBox "Vous devez saisir un nom "
RefEdit1.SetFocus
On Error GoTo 0
Exit Sub
End If
Set PlageSelect = Range(RefEdit1.Text)
NomStag = TextBox1.Value
' Teste si la sélelection effectuée est correcte
If Err <> 0 Then
MsgBox "La plage sélectionnée est invalide"
RefEdit1.SetFocus
On Error GoTo 0
Exit Sub
End If
Dim Impr As String, Plage As String
If RefEdit1.Value = "" Then Exit Sub
Plage = RefEdit1.Value
Me.Hide
Impr = MsgBox("Voulez-vous imprimer la plage " & RefEdit1.Value, vbYesNo + vbInformation, "Impression")
If Impr = vbNo Then UserForm1.Show: Exit Sub
If Impr = vbYes Then
ActiveSheet.PageSetup.PrintArea = Plage
With ActiveSheet.PageSetup
'Mise en page
.PaperSize = xlPaperA3 'définit le format A3 par défaut
.Orientation = xlLandscape ' format Payasage
.Zoom = False
.FitToPagesWide = 1 ' 1page en largeur
.FitToPagesTall = 2 ' 1 page en hauteur
.CenterHorizontally = True 'centrage horizonatl
.CenterVertically = True 'centrage vertical
End With
ActiveSheet.PrintOut 'Commande pour Imprimer!
ActiveSheet.PageSetup.PrintArea = "" 'remise à zéro des paramètres
End If
Unload Me
End Sub
Merci de votre aide!