Useform fonction Modifier/Recherche avec 2 critères

Fermé
nolld - Modifié par nolld le 29/01/2013 à 09:48
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 29 janv. 2013 à 11:13
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.

A voir également:

1 réponse

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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
29 janv. 2013 à 11:13
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