Bonjour,
á l'aide d'une fonction, je cherche dans une plage de cellule la valeur "Toto", elle se trouve par exemple en $C$5, avec quelle commande puis je lire la valeur de la cellule á droite de toto ($D$5) ?
Merci.
Re : VBA: Trouver la valeur d'une cellule par rapport á la position d'une autre
Bonjour,
je reviens vers toi apres un week-end bien mérité
J'ai réussi á me servir de "range", mais je ne pense pas que c'est ce qui est adapté á mon pb.
J'avais utilisé cette fonction:
Function typevisite(MaPlage As Range, MaCellRef As Range)
Dim c As Range
Dim mavisite As String
Application.Volatile True
For Each c In MaPlage
If c.Value = MaCellRef.Value Then
mavisite = c.Address
End If
Next
typevisite = Range(mavisite).Offset(0, 1)
End Function
Dans ma cellule, je saisie =typevisite(feuille2!A2:I16;feuille1!B3). Mais cela ne fonctionne que si je valide une cellule dans mon tableau de la feuille2.
Je joins un exemple de mon fichier pour une meilleure compréhension.
Re : VBA: Trouver la valeur d'une cellule par rapport á la position d'une autre
Bonjour,
- Tu ne précises pas qu'il faut qu'il s'adresse à la feuille PM.
typevisite = Range("PM!" & mavisite).Offset(0, 1)
Sinon ta fonction est bien appelée, le fait de valider avec PM activé fait que la valeur de la bonne feuille est du coup ramenée.
- .volatile est inutile dans ton cas, je suppose que tu l'as ajouté pour essayer de résoudre ton pb mais là tu consommes des ressources pour rien.
- une fois Vehicle trouvé, tu peux sortir de la boucle par exit for, inutile de continuer.
Sinon tu peux chercher Vehicle dans la plage avec .find :
Code:
Function typevisite(MaPlage As Range, MaCellRef As Range) as String
Dim c As Range
typevisite = "inconnu"
Set c = MaPlage.Find(MaCellRef, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then typevisite = c.Offset(0, 1)
End Function