Useform fonction Modifier/Recherche avec 2 critères

nolld -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je travail actuellement sur un fichier Excel qui me permettrait de rentrer les heures postés des salariés d'une entreprise. J'ai donc une base et un formulaire. Cependant je souhaite créer un bouton de modification afin de permettre à l'utilisateur de modifier des données via ce bouton plutôt que d'aller dans la base.
.
Voici mon fichier : http://cjoint.com/?3ADjPabyYV6
Actuellement, j'ai réussi à créer deux userforms, l'un me permettant de rentrer les données que je souhaite rechercher puis lorsque celles-ci sont validée, le deuxième userform affiche les données trouvées dans la base.
.
Pour le moment je n'ai réussi qu'à transférer les deux données de recherche d'un userform à l'autre. Cependant, j'ai eu beau essayer d'intégrer une fonction de recherche, je n'y suis pas arrivée. J'avais utilisée une fonction If sous différents angles néanmoins celle-ci ne marchait pas.
.
Si vous pouviez m'indiquer quel peut être le code adéquat, je vous en remercie d'avance.

1 réponse

  1. nolld
     
    Pour faire suite à mon message,

    J'ai rentré cette formule qui me permet d'afficher les données en fonction du nom.
    For d = 4 To 20000
           If ComboBox1 = Sheets("Base de données").Cells(d, 1) Then
                TextBox2 = Sheets("Base de données").Cells(d, 3).Value
                TextBox3 = Sheets("Base de données").Cells(d, 4).Value
                TextBox4 = Sheets("Base de données").Cells(d, 5).Value
                TextBox5 = Sheets("Base de données").Cells(d, 6).Value
                TextBox6 = Sheets("Base de données").Cells(d, 7).Value
                TextBox7 = Sheets("Base de données").Cells(d, 8).Value
                ComboBox2 = Sheets("Base de données").Cells(d, 9).Value
                ComboBox3 = Sheets("Base de données").Cells(d, 10).Value
            End If
        Next d

    .
    Cependant, j'ai voulu rajouter un second critère en inscrivant ainsi :
    If ComboBox1 = Sheets("Base de données").Cells(d, 1) And _
     TextBox1.Value = Sheets("Base de données").Cells(d, 2) Then

    Mais les données ne sont plus affichées.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,

      Un exemple, tiré de l'aide en ligne crocrosoft, qui :
      Dans la feuille 1, plage A1:A500
      Cherche la valeur 2
      Si elle l'a trouve et que la cellule voisine = z
      te dis à qu'elle ligne elle le trouve
      Sinon, recherche après la valeur 2 en boucle :

      'Déclaration des variables
      Dim Trouve As Range, firstaddress As String
      
      'Dans la feuille 1, plage A1:A500
      With Worksheets(1).Range("A1:A500")
          Set Trouve = .Find(2, LookIn:=xlValues, lookat:=xlWhole)
          If Not Trouve Is Nothing Then
              firstaddress = Trouve.Address
              If Trouve.Offset(0, 1) = "z" Then
                  MsgBox "trouvé à la ligne " & Trouve.Row
              Else
                  Do
                      Set Trouve = .FindNext(Trouve)
                      If Trouve.Offset(0, 1) = "z" Then
                          MsgBox "trouvé à la ligne " & Trouve.Row
                          Exit Do
                      End If
                  Loop While Not Trouve Is Nothing And Trouve.Address <> firstaddress
              End If
          End If
      End With
      0