Bonjour PierreJean, GuenFood, Hervé, les 'Grands Maîtres' qui passeront par là, le Forums
Tu as été plus rapide que moi Hervé, mais je vais regarder maintenant ta proposition en attendant les 'Grands Maîtres' lol
Moi je conseillerai à GuenFood d'abandonner une Dénomination à la manière 'Datereception' etc pour tes Contrôles TextBox, c'est plus compliqué qu'autre chose à gérer...
On ne les nomme pas du tout et c'est encore plus simple...
'=============================================================================
'Exemple Un UserForm avec
'
' Dix TexBox Nommées respectivement :
'
'Texbox1, TextBox2, ......... Etc.. TextBox10
'
' Un CommandButton nommé 'CommandButton1'
'
' Trois OptionButtons Nommés
'
'OptionButton1, OptionButton2, OptionButton3
'==============================================================================
Private Sub UserForm_Initialize()
Dim x As Byte
For x = 1 To 10
Me.Controls('TextBox' & x).Value = 'Toto ' & x
Next
Me.OptionButton1 = True
End Sub
Private Sub CommandButton1_Click()
Dim x As Byte, FeuilleNum As Byte
Dim CellCible As Range
If Me.OptionButton1 = True Then FeuilleNum = 1
If Me.OptionButton2 = True Then FeuilleNum = 2
If Me.OptionButton3 = True Then FeuilleNum = 3
Set CellCible = Sheets(FeuilleNum).Range('A3').End(xlDown)
If CellCible.Row = 65536 Then
MsgBox 'Badaboum on est tombé en bas de la Feuille', vbCritical, 'LOL'
Exit Sub
End If
CellCible.Offset(1, 0) = Val(CellCible.Value) + 1
For x = 1 To 10
CellCible.Offset(1, x) = Controls('TextBox' & x).Value
Next
End Sub
Si tu veux vraiment nommer tes Contrôles, alors une méthode classique et conventionelle serait de nommer tes TextBox ainsi
[li]TxbDateReception01[/li]
[li]TxbNomFamille00002[/li]
[li]TxbPrenom000000003[/li]
[li]TxbAdresse00000004[/li]
[li]TxbVille0000000005[/li]
'=============================================================================
'Exemple Un UserForm avec
'
' Cinq TexBox Nommées respectivement :
'
'TxbDateReception01
'TxbNomFamille00002
'TxbPrenom000000003
'TxbAdresse00000004
'TxbVille0000000005
'
' Un CommandButton nommé 'CommandButton1'
'==============================================================================
Private Sub UserForm_Initialize()
Dim x As Byte, i As Byte
For x = 0 To Me.Controls.Count - 1
If TypeOf Me.Controls(x) Is MSForms.TextBox Then
If Left(Me.Controls(x).Name, 3) = 'Txb' Then
i = i + 1
Me.Controls(x).Value = 'Toto ' & i
End If
End If
Next
End Sub
Private Sub CommandButton1_Click()
Dim Col As Byte
Dim CellCible As Range
Dim CTRL As Control
Set CellCible = Sheets('Feuil1').Range('A3').End(xlDown)
If CellCible.Row = 65536 Then
MsgBox 'Badaboum on est tombé en bas de la Feuille', vbCritical, 'LOL'
Exit Sub
End If
CellCible.Offset(1, 0) = Val(CellCible.Value) + 1
For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.TextBox Then
If Left(Me.Controls(x).Name, 3) = 'Txb' Then
Col = Val(Right(CTRL.Name, 2))
CellCible.Offset(1, Col) = CTRL.Value
MsgBox CTRL.Name & ' ' & CTRL.Value
End If
End If
Next
End Sub
Bon Courage
[ol]@+Thierry[/ol]
EDITION !!!
Ah bien oui Hervé, l'astuce des 'Tag' ça me rappelle des UserForms ça
Merci qui...
Merci Ti_ !
Message édité par: _Thierry, à: 18/04/2006 16:07