Bonjour tout le monde. Avant de me mettre à décrire mon problème en VBA, je remercie tout ceux qui portent de l'aide en programmation pour moi et pour tous ceux qui ont en besoin.
J'ai fait un programme qui permet prendre des données, les saisie dans une case appropriée puis imprime la page. C'est toujours une seule page à imprimer. Cela fonctionne très bien. Mais pour améliorer l'utilisation, j'ai introduit deux variables pour choisir à partir de quel donnée imprimer et jusqu'à quel donnée utilisant INPUTBOX. J'ai du mettre des conditions sur les valeurs à introduire mais cela m'a ébloui, une fois ça passe et d'autres non, ce qui est étrange en VBA! Une personne peut trouver l'erreur ?
Voici mon programme :
Sub contrat()
Dim employe(1 To 1000, 0 To 17) As String
Dim i, j, n, c, e As Integer
Dim deb, fin, l As Byte
Sheets("data").Select
Range("C3").Select
n = 0
Do While Selection.Offset(n, 0) <> ""
n = n + 1
Loop
For i = 1 To n
For j = 0 To 17
employe(i, j) = Selection.Offset(i - 1, j - 1)
Next
Next
l = n
Do
deb = InputBox("Num debut : ")
Loop Until (deb <= l) = True
Do
fin = InputBox("num fin : ")
Loop Until (deb <= fin <= l) = True
For i = deb To fin
If MsgBox("Etes-vous sûr d'imprimer le contrat de " & employe(i, 2) & " ?", vbExclamation + vbOKCancel, "Contrat") = vbOK Then
Sheets("premier CDD MOD").Activate
Range("C12") = employe(i, 1)
Range("C22") = employe(i, 1)
Range("C34") = employe(i, 1)
Range("D107") = employe(i, 1)
Range("N12") = employe(i, 2)
Range("N107") = employe(i, 2)
Sheets("premier CDD MOD").PrintOut
End if
End sub
J'ai fait un programme qui permet prendre des données, les saisie dans une case appropriée puis imprime la page. C'est toujours une seule page à imprimer. Cela fonctionne très bien. Mais pour améliorer l'utilisation, j'ai introduit deux variables pour choisir à partir de quel donnée imprimer et jusqu'à quel donnée utilisant INPUTBOX. J'ai du mettre des conditions sur les valeurs à introduire mais cela m'a ébloui, une fois ça passe et d'autres non, ce qui est étrange en VBA! Une personne peut trouver l'erreur ?
Voici mon programme :
Sub contrat()
Dim employe(1 To 1000, 0 To 17) As String
Dim i, j, n, c, e As Integer
Dim deb, fin, l As Byte
Sheets("data").Select
Range("C3").Select
n = 0
Do While Selection.Offset(n, 0) <> ""
n = n + 1
Loop
For i = 1 To n
For j = 0 To 17
employe(i, j) = Selection.Offset(i - 1, j - 1)
Next
Next
l = n
Do
deb = InputBox("Num debut : ")
Loop Until (deb <= l) = True
Do
fin = InputBox("num fin : ")
Loop Until (deb <= fin <= l) = True
For i = deb To fin
If MsgBox("Etes-vous sûr d'imprimer le contrat de " & employe(i, 2) & " ?", vbExclamation + vbOKCancel, "Contrat") = vbOK Then
Sheets("premier CDD MOD").Activate
Range("C12") = employe(i, 1)
Range("C22") = employe(i, 1)
Range("C34") = employe(i, 1)
Range("D107") = employe(i, 1)
Range("N12") = employe(i, 2)
Range("N107") = employe(i, 2)
Sheets("premier CDD MOD").PrintOut
End if
End sub