Option Explicit Dim Ctrl As Control Dim DerniereLigneUtilisee As Long Dim x As Integer Private Sub afficher(ByVal ligne As Integer) For Each Ctrl In Controls If TypeName(Ctrl) = "TextBox" Then Ctrl.Object.Value = Cells(ligne, Ctrl.TabIndex + 1) Ctrl.ControlTipText = Cells(1, Ctrl.TabIndex + 1) End If Next Ctrl End Sub 'premier de la liste Private Sub CommandButton1_Click() Cells(2, 1).Select afficher (ActiveCell.Row) CommandButton4.Enabled = True CommandButton2.Enabled = True End Sub 'dernier de la liste Private Sub CommandButton2_Click() Selection.End(xlDown).Select afficher (ActiveCell.Row) CommandButton3.Enabled = True CommandButton2.Enabled = False End Sub 'précédent Private Sub CommandButton3_Click() If ActiveCell.Row = 2 Then CommandButton3.Enabled = False Exit Sub Else Application.ScreenUpdating = False If Selection.Row > 1 Then Selection.Offset(-1).Select End If afficher (ActiveCell.Row) CommandButton3.Enabled = True CommandButton2.Enabled = True End If End Sub 'Suivant Private Sub CommandButton4_Click() If ActiveCell.Offset(1, 1).Value = "" Then CommandButton4.Enabled = False Exit Sub Else Application.ScreenUpdating = False Selection.Offset(1).Select afficher (ActiveCell.Row) CommandButton3.Enabled = True End If End Sub 'ajouter une ligne Private Sub CommandButton5_Click() Application.ScreenUpdating = False Sheets("Customer").Activate 'adapter le nom de la feuille DerniereLigneUtilisee = Range("A" & Rows.Count).End(xlUp).Row + 1 For Each Ctrl In Controls If TypeName(Ctrl) = "TextBox" Then Cells(DerniereLigneUtilisee, Ctrl.TabIndex + 1) = Ctrl.Object.Value End If Next Ctrl For x = 1 To ActiveSheet.UsedRange.Columns.Count 'redimensionne les colonnes Columns(x).EntireColumn.AutoFit Next x End Sub 'supprimer une ligne Private Sub CommandButton6_Click() If ActiveCell.Value = "" Then Exit Sub Rows(ActiveCell.Row & ":" & ActiveCell.Row).Delete Shift:=xlUp End Sub 'modifier une ligne Private Sub CommandButton7_Click() If ActiveCell.Value = "" Then Exit Sub Application.ScreenUpdating = False Sheets("Customer").Activate 'adapter le nom de la feuille DerniereLigneUtilisee = Range("A" & Rows.Count).End(xlUp).Row + 1 For Each Ctrl In Controls If TypeName(Ctrl) = "TextBox" Then Cells(ActiveCell.Row, Ctrl.TabIndex + 1) = Ctrl.Object.Value End If Next Ctrl For x = 1 To ActiveSheet.UsedRange.Columns.Count 'redimensionne les colonnes Columns(x).EntireColumn.AutoFit Next x End Sub 'enregistrer dans le feuille SaveData Private Sub CommandButton8_Click() If ActiveCell.Value = "" Then Exit Sub Application.ScreenUpdating = False Sheets("SaveData").Activate 'adapter le nom de la feuille DerniereLigneUtilisee = Range("A" & Rows.Count).End(xlUp).Row + 1 For Each Ctrl In Controls If TypeName(Ctrl) = "TextBox" Then Cells(DerniereLigneUtilisee, Ctrl.TabIndex + 1) = Ctrl.Object.Value End If Next Ctrl For x = 1 To ActiveSheet.UsedRange.Columns.Count 'redimensionne les colonnes Columns(x).EntireColumn.AutoFit Next x Sheets("Customer").Activate 'adapter le nom de la feuille End Sub Private Sub UserForm_Initialize() Sheets("Customer").Activate 'adapter le nom de la feuille Range("A2").Select afficher (2) CommandButton1.Caption = "Premier" CommandButton2.Caption = "Dernier" CommandButton3.Caption = "Précédent" CommandButton4.Caption = "Suivant" CommandButton5.Caption = "Ajouter" CommandButton6.Caption = "Supprimer" CommandButton7.Caption = "Modifier" CommandButton8.Caption = "Enregistrer" End Sub
Publié par cs_Le Pivert. Dernière mise à jour le par cs_Le Pivert.
Ce document intitulé « Associer un formulaire(UserForm) à une base de données » issu de CodeS-SourceS (https://codes-sources.commentcamarche.net/) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Actualités, Avis de décès, Carte de voeux, Bricolage, Coloriages, Cinéma, Coiffure, Cuisine, Déco, Dictionnaire, Horoscope, Jeux en ligne, Programme TV, Recettes, Restaurant, SMIC, Test débit, Voyage, Signification prénom