Recherche d'une valeur dans un tableau

Bonjour à tous.

Sans doute que ce sujet a déjà été traité mais je ne trouve pas mon bonheur...

Voilà la situation. J'ai un tableau dans les colonnes A, B et C (pour info A=n° de facture, B=montant TTC de la facture et C=montant HT de la facture.

Ce tableau évolue à chaque fois que je crée une nouvelle facture (une macro me permet d'insérer des lignes au fur et à mesure).

En D1, j'inscris le numéro d'une facture (pour faire une recherche par exemple).

J'aimerai grâce à vos talents pouvoir me positionner sur la ligne qui correspond à la facture dont j'ai inscris le numéro en D1 et si possible sélectionner les deux autres cellules à droite.

Je vous remercie d'avance pour vos réponses.

bonjour et bienvenue

un fichier comme exemple de départ serais le bienvenue

a vous relire

Voici un petit fichier.

Merci

15classeur1.xlsx (12.77 Ko)

Bonjour, Salut iliyes,

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [AD1]) Is Nothing Then
        On Error Resume Next
        lig = WorksheetFunction.Match(Range("AD1"), Range("A:A"), 0)
        Range(Cells(lig, 1), Cells(lig, 24)).Select
    End If
End Sub

Les cellules fusionnées ne facilitent pas la compréhension de ta demande.

Bonjour Raja et merci pour ta réponse.

Ton code ne marche pas. Je l'ai mis à ma sauce mais cela ne fonctionne pas.

Re,

Revois mon message précédent, reprends le code à nouveau qui est adapté à ton fichier qui est joint après coup, et surtout lis ce que j'ai écrit à la fin. On ne sait pas si tu as mis tous les ingrédients dans ta sauce. Teste et dis-nous.

Je l'ai bien repris avec le fichier que j'ai joints : erreur d'exécutiion, objet requis

Re,

Vois dans le fichier en retour et surtout met un numéro de facture existant pour rechercher

NB: le code se trouve dans le module de l'onglet.

Bonjour tout le monde, Raja,

ton code fonctionne magnifiquement bien, en plus d'être super compact.

Je vais le mettre bien au chaud dans ma mémoire!

Le mien était plutôt plan-plan!

If Not Application.Intersect(Target, Range("AD1")) Is Nothing Then
    iRow = Range("A" & Rows.Count).End(xlUp).Row - 1
    Range("A6:T" & iRow).Interior.ColorIndex = 2
    For x = 6 To iRow
        If [AD1] = Cells(x, 1) Then
            Range("A" & x & ":T" & x).Interior.ColorIndex = 15
            Exit For
        End If
    Next
End If

A+

Je suis vraiment désolé mais pour moi, ça ne marche pas. Petite précision : je ne suis absolument pas un expert en vba.

Je joins un autre fichier plus proche de mon fichier au final.

Je souhaite trouver la valeur qui est en BP1 dans les cellules de AR7:AR16 en sachant que j'insère automatiquement des lignes au fur et à mesure.

Je souhaiterai que toute la ligne du tableau (AR7 : BK16) qui contient la valeur BP1 soit sélectionnée.

Merci beaucoup.

15classeur1.xlsx (17.63 Ko)

Bonjour RAJA

je ne fait que reprendre le code de RAJA

a vous relire

SALUT

Essayez ca

ajouter le code dans la bonne feuille dans ton fichier joint etait "Feuil1"

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim c, x As Integer
  If Target.Address = "$F$3" Then

    With Worksheets(ActiveSheet.Name)

      For x = 7 To .Range("AR" & Rows.Count).End(xlUp).Row
      '.Range("AR" & x).Interior.ColorIndex = 2
       .Range("AR" & x & ":BK" & x).Interior.ColorIndex = 2
        If .Range("F3") = .Range("AR" & x).Value Then
          ' .Range("AR" & x).Interior.ColorIndex = 4
           .Range("AR" & x & ":BK" & x).Interior.ColorIndex = 4

          ' garder seulement un choix , garder les deux c'est pour rien

          '1 //////////////////////////////////////////////////////////////
           'vous pouver modifier ce code pour ajuster la position de la ligne.....
           'vous aussi suprimer le code!
           'Application.Goto Reference:=.Range("AR" & x), Scroll:=True ' pour une seulle cellule ou :
           Application.Goto Reference:=.Range("AR" & x & ":BK" & x), Scroll:=True 'pour une range
          '//////////////////////////////////////////////////////////////

          ' 2 //////////////////////////////////////////////////////////////
          ' et pour selectioner seulement sans scroll :
          .Range("AR" & x & ":BK" & x).Select
          '//////////////////////////////////////////////////////////////

        End If
       Next

   End With
  End If
End Sub

 

Bonjour,

Une autre proposition encore basée sur la fonction EQUIV.

ALT F8, puis exéuter la procédure DEMO.

Cdlt.

11classeur1.xlsm (23.91 Ko)
Option Explicit

Public Sub DEMO()
Dim v
Dim rng As Range
Dim lRow As Long, x As Long

    With ActiveSheet
        v = .Cells(1, "BP").Value
        lRow = .Cells(.Rows.Count, "AR").End(xlUp).Row
        Set rng = .Cells(1, "AR").Resize(lRow)
        On Error GoTo err_Handler
        x = Application.Match(v, rng, 0)
        .Range(.Cells(x, "AR"), .Cells(x, "BO")).Select
    End With

exit_Handler:
    Set rng = Nothing
    Exit Sub

err_Handler:
    MsgBox "La valeur " & v & " est inconnue.", vbInformation
    Resume exit_Handler

End Sub

bonjour à tous,

c'est çà que tu veux des fois.

a+

Fronck

Salut jean-Éric.

ton code marche très bien et je t'en remercie

Pour le cas où la valeur de recherche se trouve par exemple sur la feuille 1 (en H33) et que le tableau de résultats est sur la feuille 2 (qui est une feuille masquée), comment dois-je modifier le code pour que :

1 - si la recherche est infructueuse le message d'erreur apparait sur le feuille 1 sans ouvrir la feuille 2

2 - si la recherche est positive, la page 2 s'ouvre

En te remerciant - Cdlt

Bonjour,

Merci de joindre un fichier en adéquation avec ta nouvelle demande.

Cdlt.

Merci J-Éric

Fichier ci-joint

11classeur1.xlsx (19.49 Ko)

Bonjour,

Je réponds à la question mais je ne comprends pas tout.

Quelle va être la prochaine question ?

Cdlt.

12xlp-fab3838.xlsm (26.71 Ko)

Salut Jean-Éric

J'ai mis ton code à ma sauce (ça m'a pris un peu de temps vu mon niveau vba...) et tout marche très bien.

Je ne t’embête plus avec mes questions et je te remercie encore pour tout le temps que tu y as consacré.

Cdlt - Fab

Bonjour,

Tu ne m'embêtes pas, mais j'ai du mal à comprendre la logique de la chose.

Cdlt.

Rechercher des sujets similaires à "recherche valeur tableau"