J'ai créé un formulaire utilisateur qui a plusieurs textboxes
et j'utilise le foundcell
pour renvoyer les valeurs d'une ligne en fonction d'un numéro de référence. Ce que je veux faire est cependant rechercher une référence qui est basée dans le searchrange
ci-dessous qui est dedans et si .Range("AK")
est vide pour retourner. Sinon, un msgbox indique que le critère n'est pas valide.Fonction de recherche dans un formulaire utilisateur basé sur plusieurs critères
S'il vous plaît voir le code me tentais
Private Sub CommandButton1_Click()
Dim searchRange As Range
Dim foundCell As Range
Dim mysearch As String
mysearch = Ref.Value
With Sheets("X")
Set searchRange = Sheets("X").Range("AB2", .Range("AB" & .Rows.Count).End(xlUp))
End With
Set foundCell = searchRange.Find(what:=mysearch, Lookat:=xlWhole, MatchCase:=False, SearchFormat:=False)
If Not foundCell And foundCell.Offset(0, 9) Is Nothing Then
Me.C.Value = foundCell.Offset(0, -12).Value
Me.DD.Value = foundCell.Offset(0, -10).Value
Me.RD.Value = foundCell.Offset(0, -16).Value
Me.BN.Value = foundCell.Offset(0, -9).Value
Me.FN.Value = foundCell.Offset(0, -8).Value
Me.SHARP.Value = foundCell.Offset(0, -1).Value
Me.PGP.Value = foundCell.Offset(0, -7).Value
Me.ISS.Value = foundCell.Offset(0, -6).Value
Me.DE.Value = foundCell.Offset(0, -2).Value
Me.UN.Value = foundCell.Offset(0, -5).Value
Me.W.Value = foundCell.Offset(0, -4).Value
Me.IN.Value = foundCell.Offset(0, -3).Value
Me.CVAL.Value = foundCell.Offset(0, -20).Value
Me.ADD.Value = foundCell.Offset(0, -11).Value
Me.RESPONSE.Value = foundCell.Offset(0, 1).Value
Me.NRESPONSE.Value = foundCell.Offset(0, 2).Value
Me.MAREC.Value = foundCell.Offset(0, 4).Value
Me.MORET.Value = foundCell.Offset(0, 5).Value
Me.CNREC.Value = foundCell.Offset(0, 8).Value
Me.CNREF.Value = foundCell.Offset(0, 6).Value
Me.NVALUE.Value = foundCell.Offset(0, 7).Value
Me.CBY.Value = foundCell.Offset(0, 10).Value
Me.CDAT.Value = foundCell.Offset(0, 11).Value
Else
MsgBox "The Reference you have entered does not qualify and cannot be located. Please try another reference!"
End If
End Sub
Cela soulèvera erreur d'exécution 91 chaque fois que 'foundCell est Nothing'. Les expressions conditionnelles ne court-circuitent pas dans VBA, elles sont complètement évaluées indépendamment de la première partie évaluant à False. De plus, '<>" "" "' signifie que vous vérifiez que la cellule ne contient pas * deux doubles guillemets, ce qui donne un coup d'oeil à "True" quand 'foundCell' n'est pas' ' Rien » –