Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Recherche correspondance pour chaque cellule d'une plage

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 !

Vingolato

XLDnaute Nouveau
Bonjour à tous,

En annexe une copie de la macro avec laquelle je suis occupé.
Ell est assez simple.
C'est en fait une recherche, qui certes fonctionne très bien mais que je souhaite automatiser sur toutes les cellules d'une plage donnée (ex: A1:a1000)
De sorte à ce qu'elle s'exécute pour chaque cellule.
tant que maintenant je la recopie x fois à la suite, mais pour une plage de plus de 1000 valeurs la macro va être extrêmemnt longue ...

Je voudrais en fait faire une boucle comme ceci, avec ma macro dedans :
Range("A1:A1000") = selection
'For Each Cell In Selection
'macro
recherche'Next Cell

Et le résultat viendrait en B1, B2, B3 et suivantes ...

Merci à tout qui pourrai m'éclairer !
 

Pièces jointes

Re : VBA - Recherche correspondance pour chaque cellule d'une plage

Bonjour Vingolato

Et bienvenue sur XLD

A tester:

Code:
Sub Chercher_cat_statbleue_pour_hierarchie()
Range ("A1:A10")
For Each cell In Range("A1:A10")
Nom = cell.Value
 With Sheets("KE36")
     Set c = .Columns("A:AKX").Find(Nom)
     If Not c Is Nothing Then
         Sheets("Listing").Range("B" & cell.Row).Value = c.Value
     Else
         MsgBox "cette hiérarchie-produit n'a pas été trouvée"
     End If
 End With
 Next cell
 
Re : VBA - Recherche correspondance pour chaque cellule d'une plage

Bonjour,

Bonjour PierreJean 😀

D'après ce que j'ai compris....

Code:
Sub Chercher_cat_statbleue_pour_hierarchie()
Dim Cel As Range, C As Range, Plg As Range
Dim DerLig As Long, DerCol As Long
With Sheets("KE36")
    DerLig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
    DerCol = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
    Set Plg = .Range("A1", .Cells(DerLig, DerCol))
End With
For Each Cel In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    Set C = Plg.Find(Cel.Value, LookAt:=xlWhole)
    If Not C Is Nothing Then
        Cel.Offset(, 1) = Plg(1, C.Column)
    Else
        Cel.Offset(, 1) = "cette hiérarchie-produit n'a pas été trouvée"
    End If
Next Cel
End Sub

J'ai compris qu'il voulait le titre de la recherche....

Mais peut-être me trompais-je...

Bonne soirée
 
Dernière édition:
Re : VBA - Recherche correspondance pour chaque cellule d'une plage

Bonjour et grand merci pour vos réponses,

J'ai d'abord testé les différents codes,
Effectivement c'est la seconde solution (bhbh) qui correspond le mieux à mon travail, car je veux effecivement reporter comme résultat la valeur de l'entête de colonne (première cellule) d'ou mon XlUp.

Cela fonctionne très bien, et me fait naturellement gagner un temps précieux,
Merci encore !
 
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…