Bonjour,
en inscrivant dans une variable tableau qui tu écris en une fois tu gagneras beaucoup de temps :
'Correspond au programme du bouton ENREGISTRER
Private Sub CommandButton2_Click()
Dim Ligne As Long, result(1 To 1, 1 To 118)
Dim i As Integer
If MsgBox("Etes-vous certain de vouloir enregistrer ce Profil ?", vbYesNo, "Demande de confirmation") = vbYes Then
If Me.ComboBox1.ListIndex = -1 Then Exit Sub 'On sort si pas de sélection
Ligne = Me.ComboBox1.ListIndex + 2
For i = 1 To 118
If Me.Controls("TextBox" & i).Visible = True Then
' Ws.Cells(Ligne, i) = Me.Controls("TextBox" & i)
result(1, i) = Me.Controls("TextBox" & i)
End If 'fin de la condition
Next i
Ws.Cells(Ligne, 1).Resize(, UBound(result, 2)) = result
End If
Unload Me
End Sub
pas pu tester faute de fichier fourni. Peut-être des adaptations à faire.
Et si des valeurs à conserver sont déjà sur feuille, lire la plage dans result avant...
eric