VBA- cherche un nom dans une colonne a entête

bonsoir

la fatigue semble venir a bout de moi

je ne trouve pas ma solution

je cherche le mot maison dans ma page active excel , cela va me donner une colonne

ensuite dans cette colonne je fais uen nouvelle recherhcre pour trouver un "nom de famille "

si je trouve ce "nom de famille" ( identique a une variable predefni avant ) alors je dois mettre en variable le contenu de la cellule de gauche au nom de famille

( attention un même "nom de famille" peut être présent plusieurs fois dans la colonne " maison ")

qui a pas compris ????

voici ce que j'ai commencé

dim  nom  ' nom de famille 
dim Colonne_Voulue
dim cel2  ' objectif final 

Set Cel = Cells.Find(what:="Maison", LookIn:=xlValue, lookat:=xlWhole)

     If Not Cel Is Nothing Then
    Colonne_Voulue = Cel. Column
     Else   
       Exit Sub
     End If

  ' je cherche le mot " maison '" dans ma page et je trouve la colonne qui est concerné 

 Colonne_Voulue.Find(Nom, LookIn:=xlValues) ' moui mouiui   c'est louche par ici -- cherche le nom " nom de famille" dans la colonne maison

            cel2 = Selection.Offset(1, 0).Select   ' ( je prend la cellule de gauche a la cellule active et je lui affecte la variable cel2  , oui pas ideal 

    if cel2=nom then 

        MsgBox cel2   ' mode verif ce que je fais 

  end if 

End With

Bonjour,

pas très clair ce sujet.

Une première proposition.

Cdlt.

47pas-tres-clair.xlsm (23.89 Ko)
Public Sub DEMO()
Dim ws As Worksheet
Dim nm As String, nm2 As String, firstAddress As String
Dim rCell As Range
Dim lCol As Long

    Set ws = ActiveSheet
    nm = "Maison": nm2 = "xxx"
    With ws.UsedRange
        Set rCell = .Find(what:=nm, LookIn:=xlValues, lookat:=xlWhole)
        If rCell Is Nothing Then Exit Sub
        lCol = rCell.Column
    End With
    With ws.Columns(lCol)
        Set rCell = .Find(what:=nm2, LookIn:=xlValues, lookat:=xlWhole)
        If Not rCell Is Nothing Then
            firstAddress = rCell.Address
            Do
                MsgBox rCell.Offset(, -1)
                Set rCell = .FindNext(rCell)
            Loop While Not rCell Is Nothing And rCell.Address <> firstAddress
        End If
    End With

End Sub

bonjour

oui oui je me doute que mon post n'est pas tres clair , ,

mais avec la fatigue j'etais un peu hs j'ai un peu remanier tt cela pour que cela soit plus clair

bon je joint a nouveau le fichier modifier ( pour compréhension ) attention 2 feuilles

souvent pour faire mon code ( vu que j 'ia pas un super niveau je décompose toutes les étapes mais parfois je me perds )

c'est ce que je voulais faire hier mais du coup mon explications + ma fatigue = texte assez incohérent

je suis reparti sur le fichier d'eric

mon resultat final souhaite >

je cherche a obtenir le loyer de la personne ou des personnes qui habite dans la ville prédéfini

on peux afficher le ou les resultats euh je sais pas trop ou ... peu importe ...

c'est pour cela que je cherchais a allez sur la colonne maison et ensuite trouver le nom de la personne de la ville ( mais bon .... passons ....... )

ublic Sub DEMO()
Dim ws As Worksheet
Dim nm As String, nm2 As String, firstAddress As String
Dim rCell As Range
Dim lCol As Long
Dim aleatoire

'' variable nom aleatoire  ( c'est juste pour le besoin de cette macro )

aleatoire = Int((10 * Rnd) + 1)

  If aleatoire < 3 Then
     nm2 = "rennes"
       ElseIf aleatoire > 3 And aleatoire < 7 Then
     nm2 = "Londres"
       Else
     nm2 = "Paris"
 End If

 '''

    Set ws = ActiveSheet
    nm = "Maison": 'nm2 = "rennes"    ' rennes
    With ws.UsedRange
        Set rCell = .Find(what:=nm, LookIn:=xlValues, lookat:=xlWhole)
        If rCell Is Nothing Then Exit Sub
        lCol = rCell.Column
    End With
    With ws.Columns(lCol)
        Set rCell = .Find(what:=nm2, LookIn:=xlValues, lookat:=xlWhole)
        If Not rCell Is Nothing Then
            firstAddress = rCell.Address
            Do
                MsgBox rCell.Offset(, -1)
                Set rCell = .FindNext(rCell)
            Loop While Not rCell Is Nothing And rCell.Address <> firstAddress
        End If
    End With

End Sub

Bonjour,

et pour si peu de ligne, la macro est obligatoire/indispensable ?

de simples formules ou un TCD ferait tout aussi bien le travail

P.

est ce que une macro est obligatoire

je dirai oui tt de même

la il s'agit d'un fichier special pour le forum qui est bcp plus simple que le reel ( mais le but final est le meme )

peut etre je me suis encore une fois mal expliqué lol ( cela ne m’entonnerais que a moite )

les données avec lesquels je travaille sont transitoires ( cette macro va Etre utilisé environ 100 fois par cycle / pour 1 journee )

elles ne font que passes et ne sont jamais les memes , et sont ensuite calcules et enregistres dans excel un peu comme une BDD

une recherche via formule ( avec index equiv ) ne me parait pas simple vu le fait que les données ne sont que de passage


au passage je tiens a remercier jean eric pour son code

qui réponds bien a ma première demande

Rechercher des sujets similaires à "vba cherche nom colonne entete"