VBA: Trouver la valeur d'une cellule par rapport á la position d'une autre

  • Initiateur de la discussion Initiateur de la discussion doomaster66
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

doomaster66

Guest
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.

Merci.
 

Pièces jointes

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
eric
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour