EXCEL FONCTION RECHERCHE AVEC RENVOI A CETTE LIGNE

Fmaigix Messages postés 2 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. Fmagix
       
      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
      0
  2. FMAIGIX
     
    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
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    0
  4. Fmagix
     
    bonjour

    le code marche pas
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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'
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Fmaigix Messages postés 2 Statut Membre
     
    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)
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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
      
      0