Récupérer valeur cell col 2 d'1 autre onglet d'après une cellule variable

Bonjour,

J'ai beau faire des recherches et me creuser la tête je n'arrive pas à trouver la bonne syntaxe pour obtenir ce que je souhaite.

Mon code ressemble à ça

Sub Bouton1_Cliquer()
Dim c As Variant
For Each c In Sheets("inscrits").Range("d5:j10000")
If c Like "*" & Range("instru").value & "*" Then
Sheets("bilan").Range("a3").End(xlDown).Offset(1, 0) = c(c.Row, 2) 'c'est là que ça bloque comment avoir la valeur de la cellule colonne 2 de la ligne de la variable c
Sheets("bilan").Range("a3").End(xlDown).Offset(0, 1) = c(c.Row, 3) 'valeur colonne 2 de la ligne de c
Next c
End Sub

8exemple-base.xlsm (20.38 Ko)

Je n'arrive pas à récupérer la valeur de la colonne 2 de c qui peut être à différents endroits dans ma base.

Ci-joint le classeur exemple

Merci d'avance pour votre aide précieuse qui me fera gagner beaucoup de temps.

Amicalement.

dsl la cellule à rechercher est nommée : instrument (pas instru)

Sub Bouton1_Cliquer()
Dim c As Variant
For Each c In Sheets("inscrits").Range("d5:j10000")
If c Like "*" & Range("instrument").value & "*" Then
Sheets("bilan").Range("a3").End(xlDown).Offset(1, 0) = c(c.Row, 2) 'c'est là que ça bloque comment avoir la valeur de la cellule colonne 2 de la ligne de la variable c
Sheets("bilan").Range("a3").End(xlDown).Offset(0, 1) = c(c.Row, 3) 'valeur colonne 2 de la ligne de c
Next c
End Sub

Bonjour,

Voici le fichier avec une version modifiée du code:

6exemple-base.xlsm (21.97 Ko)

Je n'ai pas mis de lignes de code pour réinitialiser la feuille BILAN, il faudra supprimer manuellement les résultats avant de cliquer sur le bouton.

Waou. Merci pour la réponse

Rapidité et efficacité, le résultat est parfait.

Mais je pensais que c'était beaucoup plus simple que ton code là

Juste pour info : Il n'y a pas de syntaxe magique et simple pour cette ligne de code ??

Sheets("bilan").Range("a3").End(xlDown).Offset(0, 1) = c(c.Row, 3) ← valeur cell col 3 de c ?

Un grand merci Ausecour

Oui le code n'est pas très simple, surtout comme j'ai fait appel à des tableaux VBA pour que ça soit beaucoup plus rapide à l’exécution.

Je ne vois pas beaucoup d'autres possibilités, à part utiliser Find et FindNext qui ne sont pas forcément bien plus faciles à utiliser:

https://learn.microsoft.com/fr-fr/office/vba/api/excel.range.findnext?f1url=%3FappId%3DDev11IDEF1%26...

Il serait possible de chercher le nom de l'instrument dans la plage D5:J10000 et pour chaque occurrence avoir la ligne et prendre les infos de la ligne, à condition d'enregistrer quelque part la référence de la première cellule pour éviter de boucler à l'infini...

Pour info, voici un exemple utilisant cette fonction pour colorer en gris les cellules dans A1:G100 contenant piano:

5test-findnext.xlsm (14.44 Ko)
Rechercher des sujets similaires à "recuperer valeur col onglet variable"