Dans la procédure générale
Remplace le "5" par Range("Toto").Columns.Count
For A = 1 To 5
Me.Controls("textbox" & A) = Range("toto")(Enr, A)
Next
Cela deviendra :
For A = 1 To Range("Toto").Columns.Count
Me.Controls("textbox" & A) = Range("toto")(Enr, A)
Next
Salutations!
"Denis Michon" a écrit dans le message de
news:oFPob.1555$
Bonjour Jean-Paul,
Voici une façon de procéder. Dans la procédure Intialize de ton
formulaire, adapte le nom de la feuille. Attention, la
méthode CurrentRegion suppose que tu n'as pas de lignes complètement vide
dans ta base de données...(il ne devrait pas y
en avoir) sinon tu devras adopter une autre façon de définir la plage
nommée "Toto"
tu as besoin de 4 boutons de commandes et tu attaches à ces derniers une
des procédures.
'Dans le haut de ton module
Dim Enr As Long
'--------------------------
Private Sub UserForm_Initialize()
With Worksheets("Feuil1")
.Range("A1").CurrentRegion.Name = "Toto"
End With
AfficherEnregistrement 1
End Sub
'--------------------------
Private Sub CmdEnregistrement_Plus_1_Click()
AfficherEnregistrement 1
End Sub
'--------------------------
Private Sub CmdEnregistrement_Moins_1_Click()
AfficherEnregistrement -1
End Sub
'--------------------------
Private Sub CmdEnregistrement_Moins_50_Click()
AfficherEnregistrement -50
End Sub
'--------------------------
Private Sub CmdEnregistrement_Plus_50_Click()
AfficherEnregistrement 50
End Sub
'--------------------------
'La procédure générale
'--------------------------
Sub AfficherEnregistrement(Numero As Long)
Dim A As Long
Select Case Numero
Case Is > 0
If Enr + Numero > Range("toto").Rows.Count Then
MsgBox "L'enregistrement est à l'extérieur des " & _
"bornes de la plage de données", vbCritical, "Attention"
If MsgBox("Désirez -vous rendre au dernier enregistrement?", _
vbInformation + vbYesNo, "Dernier enregistrement") = vbYes
Then
Enr = Range("toto").Rows.Count
Else
Exit Sub
End If
Else
Enr = Enr + Numero
End If
Case Is < 0
If Enr + Numero < 1 Then
MsgBox "L'enregistrement est à l'extérieur des " & _
"bornes de la plage de données", vbCritical, "Attention"
If MsgBox("Désirez -vous rendre au premier enregistrement?", _
vbInformation + vbYesNo, "Premier enregistrement") = vbYes
Then
Enr = 1
Else
Exit Sub
End If
Else
Enr = Enr + Numero
End If
End Select
For A = 1 To 5
Me.Controls("textbox" & A) = Range("toto")(Enr, A)
Next
End Sub
'--------------------------
Salutations!
"Bataille Jean-Paul" a écrit dans le message
de news:3fa38768$0$249$
Bonjour à tous,
Dans les formulaires, en bas à gauche deux boutos enregistrement précédent
ou suivant suivant
Jaimerais faire un bon de 10 ou 50 enregistrements quelle est la macro et
la version VBA de cette commande ?
Merci anticipé,
JPB
Dans la procédure générale
Remplace le "5" par Range("Toto").Columns.Count
For A = 1 To 5
Me.Controls("textbox" & A) = Range("toto")(Enr, A)
Next
Cela deviendra :
For A = 1 To Range("Toto").Columns.Count
Me.Controls("textbox" & A) = Range("toto")(Enr, A)
Next
Salutations!
"Denis Michon" <denis.michon@cgocable.ca> a écrit dans le message de
news:oFPob.1555$Ng3.1093@charlie.risq.qc.ca...
Bonjour Jean-Paul,
Voici une façon de procéder. Dans la procédure Intialize de ton
formulaire, adapte le nom de la feuille. Attention, la
méthode CurrentRegion suppose que tu n'as pas de lignes complètement vide
dans ta base de données...(il ne devrait pas y
en avoir) sinon tu devras adopter une autre façon de définir la plage
nommée "Toto"
tu as besoin de 4 boutons de commandes et tu attaches à ces derniers une
des procédures.
'Dans le haut de ton module
Dim Enr As Long
'--------------------------
Private Sub UserForm_Initialize()
With Worksheets("Feuil1")
.Range("A1").CurrentRegion.Name = "Toto"
End With
AfficherEnregistrement 1
End Sub
'--------------------------
Private Sub CmdEnregistrement_Plus_1_Click()
AfficherEnregistrement 1
End Sub
'--------------------------
Private Sub CmdEnregistrement_Moins_1_Click()
AfficherEnregistrement -1
End Sub
'--------------------------
Private Sub CmdEnregistrement_Moins_50_Click()
AfficherEnregistrement -50
End Sub
'--------------------------
Private Sub CmdEnregistrement_Plus_50_Click()
AfficherEnregistrement 50
End Sub
'--------------------------
'La procédure générale
'--------------------------
Sub AfficherEnregistrement(Numero As Long)
Dim A As Long
Select Case Numero
Case Is > 0
If Enr + Numero > Range("toto").Rows.Count Then
MsgBox "L'enregistrement est à l'extérieur des " & _
"bornes de la plage de données", vbCritical, "Attention"
If MsgBox("Désirez -vous rendre au dernier enregistrement?", _
vbInformation + vbYesNo, "Dernier enregistrement") = vbYes
Then
Enr = Range("toto").Rows.Count
Else
Exit Sub
End If
Else
Enr = Enr + Numero
End If
Case Is < 0
If Enr + Numero < 1 Then
MsgBox "L'enregistrement est à l'extérieur des " & _
"bornes de la plage de données", vbCritical, "Attention"
If MsgBox("Désirez -vous rendre au premier enregistrement?", _
vbInformation + vbYesNo, "Premier enregistrement") = vbYes
Then
Enr = 1
Else
Exit Sub
End If
Else
Enr = Enr + Numero
End If
End Select
For A = 1 To 5
Me.Controls("textbox" & A) = Range("toto")(Enr, A)
Next
End Sub
'--------------------------
Salutations!
"Bataille Jean-Paul" <jeanpaul.bataille@free.fr> a écrit dans le message
de news:3fa38768$0$249$636a55ce@news.free.fr...
Bonjour à tous,
Dans les formulaires, en bas à gauche deux boutos enregistrement précédent
ou suivant suivant
Jaimerais faire un bon de 10 ou 50 enregistrements quelle est la macro et
la version VBA de cette commande ?
Merci anticipé,
JPB
Dans la procédure générale
Remplace le "5" par Range("Toto").Columns.Count
For A = 1 To 5
Me.Controls("textbox" & A) = Range("toto")(Enr, A)
Next
Cela deviendra :
For A = 1 To Range("Toto").Columns.Count
Me.Controls("textbox" & A) = Range("toto")(Enr, A)
Next
Salutations!
"Denis Michon" a écrit dans le message de
news:oFPob.1555$
Bonjour Jean-Paul,
Voici une façon de procéder. Dans la procédure Intialize de ton
formulaire, adapte le nom de la feuille. Attention, la
méthode CurrentRegion suppose que tu n'as pas de lignes complètement vide
dans ta base de données...(il ne devrait pas y
en avoir) sinon tu devras adopter une autre façon de définir la plage
nommée "Toto"
tu as besoin de 4 boutons de commandes et tu attaches à ces derniers une
des procédures.
'Dans le haut de ton module
Dim Enr As Long
'--------------------------
Private Sub UserForm_Initialize()
With Worksheets("Feuil1")
.Range("A1").CurrentRegion.Name = "Toto"
End With
AfficherEnregistrement 1
End Sub
'--------------------------
Private Sub CmdEnregistrement_Plus_1_Click()
AfficherEnregistrement 1
End Sub
'--------------------------
Private Sub CmdEnregistrement_Moins_1_Click()
AfficherEnregistrement -1
End Sub
'--------------------------
Private Sub CmdEnregistrement_Moins_50_Click()
AfficherEnregistrement -50
End Sub
'--------------------------
Private Sub CmdEnregistrement_Plus_50_Click()
AfficherEnregistrement 50
End Sub
'--------------------------
'La procédure générale
'--------------------------
Sub AfficherEnregistrement(Numero As Long)
Dim A As Long
Select Case Numero
Case Is > 0
If Enr + Numero > Range("toto").Rows.Count Then
MsgBox "L'enregistrement est à l'extérieur des " & _
"bornes de la plage de données", vbCritical, "Attention"
If MsgBox("Désirez -vous rendre au dernier enregistrement?", _
vbInformation + vbYesNo, "Dernier enregistrement") = vbYes
Then
Enr = Range("toto").Rows.Count
Else
Exit Sub
End If
Else
Enr = Enr + Numero
End If
Case Is < 0
If Enr + Numero < 1 Then
MsgBox "L'enregistrement est à l'extérieur des " & _
"bornes de la plage de données", vbCritical, "Attention"
If MsgBox("Désirez -vous rendre au premier enregistrement?", _
vbInformation + vbYesNo, "Premier enregistrement") = vbYes
Then
Enr = 1
Else
Exit Sub
End If
Else
Enr = Enr + Numero
End If
End Select
For A = 1 To 5
Me.Controls("textbox" & A) = Range("toto")(Enr, A)
Next
End Sub
'--------------------------
Salutations!
"Bataille Jean-Paul" a écrit dans le message
de news:3fa38768$0$249$
Bonjour à tous,
Dans les formulaires, en bas à gauche deux boutos enregistrement précédent
ou suivant suivant
Jaimerais faire un bon de 10 ou 50 enregistrements quelle est la macro et
la version VBA de cette commande ?
Merci anticipé,
JPB