Bouton modifier aide

Bonjour,

j'ai eu beau lire les sujets à ce propos je ne réussis pas à faire fonctionner mon bouton ''modifier'' de mon formulaire

Mes enregistrements doivent se faire sur plusieurs feuilles différentes selon la localisation des commandes.

J'aimerais pouvoir modifier sans bouton recherche si possible,

sinon, comment faire ?

Je met en pièce jointe mon Excel.

Merci beaucoup de votre aide

Bonjour,

Déjà, pour faire une modification, il te faut faire une recherche dans tes feuilles pour trouver les valeurs à modifier. Pour commencer, voici une piste, tu poses une ListBox sur ta Form nommée "ListBox1" et tu colles le code ci-dessous dans le module du formulaire :

Private Sub Rechercher_Click()

    Dim Fe As Worksheet
    Dim Plage As Range
    Dim Cel As Range
    Dim Adr As String
    Dim I As Integer

    With ListBox1

        .Clear
        .ColumnCount = 4
        .ColumnWidths = "95;95;95;0"

        For Each Fe In Worksheets

            With Fe: Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With

            Set Cel = Plage.Find(txtProjet.Text, , xlValues, xlWhole)

            If Not Cel Is Nothing Then

                Adr = Cel.Address

                Do

                    I = I + 1

                    .AddItem Fe.Name
                    .Column(1, I - 1) = Cel.Offset(, 1).Value
                    .Column(2, I - 1) = Cel.Offset(, 2).Value
                    .Column(3, I - 1) = Cel.Row

                    Set Cel = Plage.FindNext(Cel)

                Loop While Cel.Address <> Adr

            End If

        Next Fe

    End With

End Sub

Private Sub ListBox1_Click()

    With ListBox1

        MsgBox "Feuille : " & .List(.ListIndex, 0) & vbCrLf & _
               "Divison : " & .List(.ListIndex, 1) & vbCrLf & _
               "Date : " & .List(.ListIndex, 2) & vbCrLf & _
               "Numéro de ligne (cachée) : " & .List(.ListIndex, 3)

    End With

End Sub

Pour tester, tu sélectionnes un projet dans ta ComboBox et tu cliques sur le bouton "Rechercher", si trouvé, la ListBox se remplie, tu cliques sur un des éléments de cette dernière, un message s'affiche avec les valeurs de la ligne. Une colonne est cachée (largeur 0) dans la ListBox afin de mémoriser le numéro de la ligne, c'est à partir de ce numéro de ligne qu'il sera possible de faire les modification puisque le nom de la feuille correspondante es connue.

En attendant plus de précisions sur ce que tu veux !

Merci beaucoup pour ton aide, à voir le code je n'étais vraiment pas là

Un projet comprend plusieurs divisions.

Est-ce possible de faire une recherche par division plutôt que par projet, et ensuite modifier cette même division

(dans le cas où elle aurait été mal rentrée) ?

Par division :

Private Sub Rechercher_Click()

    Dim Fe As Worksheet
    Dim Plage As Range
    Dim Cel As Range
    Dim Adr As String
    Dim I As Integer

    With ListBox1

        .Clear
        .ColumnCount = 4
        .ColumnWidths = "95;95;95;0"

        For Each Fe In Worksheets

            With Fe: Set Plage = .Range(.Cells(1, 2), .Cells(.Rows.Count, 2).End(xlUp)): End With

            Set Cel = Plage.Find(txtDivision.Text, , xlValues, xlWhole)

            If Not Cel Is Nothing Then

                Adr = Cel.Address

                Do

                    I = I + 1

                    .AddItem Fe.Name
                    .Column(1, I - 1) = Cel.Offset(, -1).Value 'code du projet (-1 car colonne de gauche)
                    .Column(2, I - 1) = Cel.Offset(, 1).Value 'date
                    .Column(3, I - 1) = Cel.Row 'numéro de ligne

                    Set Cel = Plage.FindNext(Cel)

                Loop While Cel.Address <> Adr

            End If

        Next Fe

    End With

End Sub

Private Sub ListBox1_Click()

    With ListBox1

        MsgBox "Feuille : " & .List(.ListIndex, 0) & vbCrLf & _
               "Projet : " & .List(.ListIndex, 1) & vbCrLf & _
               "Date : " & .List(.ListIndex, 2) & vbCrLf & _
               "Numéro de ligne (cachée) : " & .List(.ListIndex, 3)

    End With

End Sub

Je suppose que tu commences à programmer, si j'ai un conseil à te donner, dans le VBE, tu cliques sur "Outils" --> "Options..." onglet "Editeur", coches la case "Déclaration des variables obligatoire" ce qui aura pour effet d'ajouter à tous les modules quels qu'ils soient "Option Explicit" ce qui va rendre obligatoire de déclarer toutes le variables que tu vas utiliser, c'est pour préserver ton cuir chevelu !

Rechercher des sujets similaires à "bouton modifier aide"