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 ")
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.
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 ...
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