EXCEL FONCTION RECHERCHE AVEC RENVOI A CETTE LIGNE

[Fermé]
Signaler
Messages postés
2
Date d'inscription
vendredi 11 novembre 2016
Statut
Membre
Dernière intervention
24 novembre 2016
-
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
-
Bonjour,

J'aimerai faire un bouton VBA ou dans une cellule une fonction qui recherche des noms ou des numeros qui son pret inscris sur ma feuille.

Exemple si dans la cellule ou dans le vba je mais "dupond"
il me renvoi a l'endroit ou il et ecris.

d'avance merci


5 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 539
Bonjour,

Avec un double clic n'importe où et cette macro dans ta feuille :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rep As Variant, cel As Range
    Cancel = True
    rep = Application.InputBox("Mot recherché ?", "Recherche")
    If Not rep = "Faux" Then
        Set cel = Cells.Find(rep, , , xlPart)
        If cel Is Nothing Then MsgBox "Mot absent" Else cel.Select
    End If
End Sub
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

merci à toi
cela me donne une ambiguïté avec le code déjà sur ma page

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("C3:D174,G3:H174,I3:J174")) Is Nothing Then
Cancel = True
Target.Font.Name = "arial"

If Target = "" Then
Target.Value = Now
Target.NumberFormat = "hh:mm"
Else
Target = ""
End If
End If

End Sub
Gbinforme

Peut tu me rajouter un code .
Quand le mots chercher va a la ligne il se mais en subrillance dune couleurs rouge ou autre stp
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 539
Bonjour,

cela me donne une ambiguïté avec le code déjà sur ma page
Dans ce cas il vaut mieux utiliser une procédure dans un module que tu appelles par un raccourci comme ctrl+p par exemple

il se mais en subrillance dune couleurs rouge ou autre stp
Là ce n'est pas une bonne pioche car si je te mets du rouge, il va rester ;-)
Je te fais clignoter la cellule, cela devrait être plus judicieux.
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub position()
Dim rep As Variant, cel As Range, cpt As Integer, anc As Variant
    rep = Application.InputBox("Mot recherché ?", "Recherche")
    If Not rep = "Faux" Then
        Set cel = Cells.Find(rep, , , xlPart)
        If cel Is Nothing Then
            MsgBox "Mot absent"
        Else
            cel.Activate
            With cel.Interior
                anc = .ColorIndex
                For cpt = 1 To 30
                    .ColorIndex = IIf(cpt Mod 2 = 0, anc, 3)
                    Sleep 150
                Next cpt
            End With
        End If
    End If
End Sub
bonjour

le code marche pas
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 539
Bonjour,

le code marche pas
C'est sûr qu'il ne 'marche' pas car il n'a pas de pieds mais il fonctionne lorsqu'on l'installe correctement et tu en as la preuve dans le classeur joint :

https://mon-partage.fr/f/3CreCIEy/

Clique sur "Position" et saisi un mot, par exemple 'marche'
Messages postés
2
Date d'inscription
vendredi 11 novembre 2016
Statut
Membre
Dernière intervention
24 novembre 2016

Merci pour tous genial.

dernier question

j'ai une ambiguite avec ca

code pour verrouille certaine cellule

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1,A2,B2,D2,G2,H2,I2,J2,K2,L2,M2,N2,C1"), Target) Is Nothing Then
Target.Offset(0, 1).Select
End If


End Sub


code afficher une croix

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Not Application.Intersect(Target, Range("J3:M70")) Is Nothing Then 'modifie ton tableau
If Target.Value = "" Then
Target.Value = "X"
Else
Target.Value = ""
End If
End If
End Sub


comment je peux faire pour enlever cette ambiguite au niveau de cette ligne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 539
Bonjour,

comment je peux faire pour enlever cette ambiguite au niveau de cette ligne
Il te faut les regrouper car les macro événementielles sont obligatoirement uniques.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1,A2,B2,D2,G2:N2,C1"), Target) Is Nothing Then
    Target.Offset(0, 1).Select
ElseIf Not Application.Intersect(Target, Range("J3:M70")) Is Nothing Then 'modifie ton tableau
    On Error Resume Next
    If Target.Value = "" Then
        Target.Value = "X"
    Else
        Target.Value = ""
    End If
    On Error GoTo 0
End If
End Sub