Formule de transfert de texbox vers cellules à simplier

jlp035

XLDnaute Occasionnel
Bonjour,
j'ai créer des lignes de programmes qui me servent à transferer les lignes selectionnées par une checkbox.
Mais comme j'ai 20 lignes à transferer est il possible de simplifier ces lignes via une bouble ?

Merci d'avance pour vos reponses

Code:
Private Sub b_Validation_Click()
  'Validations des choix
 Dim Derligne As String
  
  If CheckBox1 Then
    With Sheets("Selection_Recherche")
    
     Derligne = .Range("B65536").End(xlUp).Row + 1
    .Range("A" & Derligne) = Me.TextBox11
    .Range("B" & Derligne) = Me.TextBox12
    .Range("C" & Derligne) = Me.TextBox13
    .Range("D" & Derligne) = Me.TextBox14
    .Range("E" & Derligne) = Me.TextBox15
    .Range("F" & Derligne) = Me.TextBox16
    .Range("G" & Derligne) = Me.TextBox17
    .Range("H" & Derligne) = Me.TextBox18
             
   End With
  End If
 If CheckBox2 Then
    With Sheets("Selection_Recherche")
    
     Derligne = .Range("B65536").End(xlUp).Row + 1
    .Range("A" & Derligne) = Me.TextBox21
    .Range("B" & Derligne) = Me.TextBox22
    .Range("C" & Derligne) = Me.TextBox23
    .Range("D" & Derligne) = Me.TextBox24
    .Range("E" & Derligne) = Me.TextBox25
    .Range("F" & Derligne) = Me.TextBox26
    .Range("G" & Derligne) = Me.TextBox27
    .Range("H" & Derligne) = Me.TextBox28
             
   End With
  End If
If CheckBox3 Then
    With Sheets("Selection_Recherche")
    
     Derligne = .Range("B65536").End(xlUp).Row + 1
    .Range("A" & Derligne) = Me.TextBox31
    .Range("B" & Derligne) = Me.TextBox32
    .Range("C" & Derligne) = Me.TextBox33
    .Range("D" & Derligne) = Me.TextBox34
    .Range("E" & Derligne) = Me.TextBox35
    .Range("F" & Derligne) = Me.TextBox36
    .Range("G" & Derligne) = Me.TextBox37
    .Range("H" & Derligne) = Me.TextBox38
             
   End With

' fin d'une partie du programme

End Sub
 

jp14

XLDnaute Barbatruc
Re : Formule de transfert de texbox vers cellules à simplier

Bonsoir

Ci dessous un exemple pour le premier groupe
for i = 1 to 8
.cells(Derligne,i)=me.controls("Textbox1" & i)
next i

Pour optimiser cette technique il faut jouer avec la numérotation des contrôles par exemple donner au textbox le numéro de la colonne, on peut aussi indiquer dans la propriété "Tag" le nom de la colonne.

Ci dessous un exemple pour remplir des combobox ou textbox, le numéro du contrôle correspond à la colonne

Code:
For Each £Ctrl In Me.Controls
    Select Case TypeName(£Ctrl)
    
        Case "TextBox"
            £coln = Val(Replace(£Ctrl.Name, TypeName(£Ctrl), ""))' on récupère le numéro du textbox pour déterminer
'la colonne à utiliser
             Me.Controls(£Ctrl.Name).Value = .Cells(£ligne1, £coln)
           
        Case "ComboBox"
            £coln = Val(Replace(£Ctrl.Name, TypeName(£Ctrl), ""))
            Me.Controls(£Ctrl.Name).Value = .Cells(£ligne1, £coln)
    End Select
    
Next £Ctrl

JP
 
Dernière édition:

Statistiques des forums

Discussions
312 198
Messages
2 086 124
Membres
103 126
dernier inscrit
Vuagno27