Rechercher valeur dans colonne et affecter son n° de ligne à une variable

Bonjour à tous

je souhaite chercher dans la colonne 2 de la feuille 3 la valeur écrite dans la cellule "A1" de la feuille 2 et affecter le numéro de ligne de la cellule trouvé dans la feuille 3 à une variable nommée "Ligne"

j'ai essayé la fonction "cellsSearch" mais excel m'indique sur cette fonction :

image

voici le code que j'ai écrit :

image

Merci d'avance de vos réponse

Bonjour, cette fonction ne semble pas adaptéé pour trouver 1 ligne puisque justement cells-search peut renvoyer plusieurs réponses.

https://www.excel-pratique.com/fr/fonctions-complementaires/cells-search

Voyez plutôt du coté de "Find" pour retourner un seul numéro de ligne.

( l'enregistreur macro peu vous retourner une bonne partie du code à adapter. )

Je viens d'essayer et IDEM j'ai toujours la même erreur

merci de ta réponse

Bonjour à tous,

Un exemple ci-joint,

142find.xlsm (20.20 Ko)

Cordialement,

merci de ta réponse j'essaie de l'adapter à ce classeur,

le but est de completer les dates sur la feuille "délai" avec les dates rentrées sur la feuille "jalon" en recherchant la bonne ligne grace au nom du client qui de situe dans la cellule "A1" de la feuille "jalon"

merci d'avance je cherche la solution mais je ne comprend pa tout en VBA c'est une première

16classeur1.xlsm (31.93 Ko)

Salut,

Ligne = r = evaluate("match(" & worksheets("Feuil2").range("A1").value & "," & worksheets("Feuil3").range("B:B").Address & ",0)")

Re,

merci de ta réponse j'essaie de l'adapter à ce classeur,

A tester...

Sub export_jalon_délai()
 Dim c As Range, rg As Range, cel
 Dim derlig As Integer, lig As Integer

' Exporte les données de la feuille "Jalon" vers la feuille "délai"
    ' Actif au clic du bouton sur la feuille "Jalon"

        cel = Sheets("jalon").Range("A1").Value '......................valeur à chercher

     Application.ScreenUpdating = False

        With Sheets("délai")
         derlig = .Range("B" & Rows.Count).End(xlUp).Row  'dernière ligne de la colonne B
         Set rg = .Range("B2:B" & derlig) '.................plage de recherche
          Set c = rg.Find(cel, lookat:=xlWhole) '...........recherche valeur dans la plage
           If Not c Is Nothing Then '.......................si valeur trouvée
            lig = c.Row '...................................on récupère le N° de la ligne
            'réalisation devis '............................on écrit les données
            .Cells(lig, 7) = Sheets("jalon").Range("F5")
            'signature devis
            .Cells(lig, 8) = Sheets("jalon").Range("F7")
            'réception convention
            .Cells(lig, 9) = Sheets("jalon").Range("F10")
            'réception Permis d'Urbanisme
            .Cells(lig, 10) = Sheets("jalon").Range("F12")
            'paiement de l'étude préliminaire
            .Cells(lig, 11) = Sheets("jalon").Range("F14")
            'Réunion technique
            .Cells(lig, 12) = Sheets("jalon").Range("F17")
            '
            'Voir pour la modification
            '
            'Réception des informations complémentaires
            .Cells(lig, 14) = Sheets("jalon").Range("F21")
            'signature du BDC
            .Cells(lig, 15) = Sheets("jalon").Range("E24")
            'mesurage de dalle
            .Cells(lig, 16) = Sheets("jalon").Range("E26")
            'réunion 3D
            .Cells(lig, 17) = Sheets("jalon").Range("F32")
            'proposition plan pour accord
            .Cells(lig, 18) = Sheets("jalon").Range("F34")
            'validation plan pour accord
            .Cells(lig, 19) = Sheets("jalon").Range("F36")
            'mise en production
            .Cells(lig, 19) = Sheets("jalon").Range("E41")
            'date début chantier
            .Cells(lig, 6) = Sheets("jalon").Range("F49")

            MsgBox "Données enregistrées" '....................message(Facultatif)
           End If
         End With
End Sub
'

J'ai supprimé les cellules fusionnées....

21classeur1.xlsm (35.48 Ko)

Cordialement,

Re,

J'ai testé, et personnellement sur le classeur la feuille "jalon" ne se remplit pas j'ai contrôlé les correspondances et je ne vois pas de problème

merci

A tester.

Re bonjour. c'était presque çà votre "Find" pour trouver le numéro de la ligne.

Sub recherche_valeur()
Application.ScreenUpdating = False
Dim plage As range, c As range, rg As range, cel
Dim derlig As Integer
Dim MALIGNE As Long

     derlig = sheets("délai").range("B" & Rows.Count).End(xlUp).Row
     Set rg = sheets("délai").range("B1:B" & derlig)
        cel = sheets("jalon").range("A1").Value

On Error Resume Next

'Message box pour vérifier ligne trouvée peu être supprimée ensuite.
MsgBox rg.Cells.Find(cel, lookat:=xlWhole).Row
MALIGNE = rg.Cells.Find(cel, lookat:=xlWhole).Row
Application.ScreenUpdating = True

End Sub

Re,

J'ai testé, et personnellement sur le classeur la feuille "jalon" ne se remplit pas j'ai contrôlé les correspondances et je ne vois pas de problème

Arrrrggghhhh !!! C'est normal, j'ai fait l'inverse j'écris sur la feuille délai en fonction de la feuille jalon,

36classeur1.xlsm (33.96 Ko)

effectivement maintenant les deux formules fonctionnent

je remercie ceux qui ont contribué à la réponse c'est sympa d'aider les débutants

Salut

Vous aurez bien compris que j'ai glisser une erreur dans le code avec ces tests....

Ligne =  evaluate("match(" & worksheets("Feuil2").range("A1").value & "," & worksheets("Feuil3").range("B:B").Address & ",0)")

Rechercher des sujets similaires à "rechercher valeur colonne affecter ligne variable"