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

Microsoft 365 Recherche de valeurs

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 !

Stéfane

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à simplifier et à rendre plus rapide une macro qui me permet de réaliser une recherche avec condition.
Elle se présente comme cela :
VB:
For Each c In ActiveSheet.[J2:J2000]
If c.Value = [U7].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V7]
If c.Value = [U8].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V8]
If c.Value = [U9].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V9]
If c.Value = [U10].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V10]
If c.Value = [U11].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V11]
If c.Value = [U12].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V12]
If c.Value = [U13].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V13]
If c.Value = [U14].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V14]
If c.Value = [U15].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V15]
If c.Value = [U16].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V16]
If c.Value = [U17].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V17]
If c.Value = [U18].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V18]
If c.Value = [U19].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V19]
If c.Value = [U20].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V20]
If c.Value = [U21].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V21]

Cette macro fonctionne mais long à l'exécution du au nombre de lignes.
Je recherche une valeur correspondante à la valeur des cellules U7 à U21 dans une feuille qui à des valeurs x et xx très récurrente afin d'extraire le % 3 colonnes plus loin.
Peut-être avec une boucle ?

Merci pour votre aide.


Pour vous donner une idée ce que je cherche je vous joint un fichier.
 

Pièces jointes

Bonsoir Stéphane,
Vous auriez pu intégrer votre macro à votre PJ, on aurait eu une idée de l'attendu.
Car ex abrupto c'est "un peu flou".
Alors un peu au pif, ceci en PJ :
VB:
Sub Test()
    tablo1 = [J2:J2000]
    tablo2 = [P2:P2000]
    tablo3 = [U7:U21]
    tablo4 = [M2:M2000]
    Dim Resultat(1 To 15)
    For i = 1 To UBound(tablo1)
        For j = 1 To UBound(tablo3)
            'If c.Value = [U7].Value And c.Offset(0, 6).Value = "XX" Then c.Offset(0, 3).Copy Destination:=[V7]
            If tablo1(i, 1) = tablo3(j, 1) And tablo2(i, 1) = "CHAUSSURE" Then _
                Resultat(j) = tablo4(i, 1)
        Next j
    Next i
    [V7].Resize(UBound(Resultat), 1).Value = Application.Transpose(Resultat)
End Sub
Comme le résultat doit être probablement erroné, donnez un attendu, ou mieux une PJ complète.
 

Pièces jointes

Bonjour Sylvanu,

Merci pour votre aide.
Comme demandé j'ai intégré ma macro dans mon fichier.
Lorsque je test la votre j'ai une erreur qui m'indique "Tableau attendu"" sur cette ligne For i = 1 To UBound(tablo1)
Je ne voit pas d'où cela vient.
 

Pièces jointes

Bonsoir,
Je ne comprends pas puisqu'on a au dessus tablo1 = [J2:J2000] donc le tableau est défini.
Sur mon PC il n'y a aucun problème :

... et cerise sur le gâteau les résultats sont corrects.
 
- 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

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
Réponses
4
Affichages
549
Réponses
4
Affichages
458
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…