XL 2010 Créer des séries en utilisant la fonction "match" vba

chvalet

XLDnaute Junior
Bonjour le forum

dans le fichier joint, je souhaiterais en cliquant sur le bouton macro de la feuille listing, créer des séries dans la feuille qualification(s) grâce à la colonne G (toss) de la feuille listing qui correspond à la colonne A (dossard) de la feuille qualification.

je n'arrive pas à utiliser la fonction index/equiv soit match en vba

quelqu'un aurait il une idée ?

je vous remercie d'avance pour votre temps passé

Chvalet
 

Pièces jointes

  • BIATHLON-v1.xlsm
    81.9 KB · Affichages: 27

vgendron

XLDnaute Barbatruc
Euh..
pas sur d'avoir compris.. mais si l'idée est d'aller chercher les info dans la feuille Listing pour les mettre dans la feuille Qualif, pourquoi utiliser une macro ?
une formule peut faire l'affaire..
voir PJ
 

Pièces jointes

  • BIATHLON-v1.xlsm
    80.6 KB · Affichages: 17

chvalet

XLDnaute Junior
Bonjour

oui j'utilise d'habitude des formules mais je voudrais faire évoluer le fichier car quand on utilise des formules (puis des tris dives et variés) , on peut faire des mauvaises manip alors que si on clic sur le bouton on est sûr du résultat et on peut effacer des cellules ça ne gênera pas le résultat final. C'est pour cela que je souhaite passer en macro.

merci
Chvalet
 

vgendron

XLDnaute Barbatruc
Hello
Donc.. avec un code que voici
VB:
Sub Maj()
Dim Dossards() As Variant

TabDossards = Range("A3:F48").Value

For i = LBound(TabDossards, 1) To UBound(TabDossards, 1)
    NumDossard = TabDossards(i, 1)
    If NumDossard <> "" And Not (NumDossard Like "Dossard*") Then
        With Sheets("Listing As")
            Set trouve = .Range("TabListing").Find(NumDossard, LookIn:=xlValues, lookat:=xlWhole)
            If Not trouve Is Nothing Then
                TabDossards(i, 2) = trouve.Offset(0, -5)
                TabDossards(i, 3) = trouve.Offset(0, -4)
                TabDossards(i, 4) = trouve.Offset(0, -2)
                TabDossards(i, 5) = trouve.Offset(0, -3)
                TabDossards(i, 6) = trouve.Offset(0, -1)
            End If
        End With
    End If
Next i
Range("A3").Resize(UBound(TabDossards, 1), UBound(TabDossards, 2)) = TabDossards
End Sub
 

vgendron

XLDnaute Barbatruc
non, c'est un problème de feuille à partir de laquelle tu lances le code
avec la correction, plus de souci
VB:
Sub Maj()
Dim Dossards() As Variant

TabDossards = Sheets("Qualification(s)").Range("A3:F48").Value

For i = LBound(TabDossards, 1) To UBound(TabDossards, 1)
    NumDossard = TabDossards(i, 1)
    If NumDossard <> "" And Not (NumDossard Like "Dossard*") Then
        With Sheets("Listing As")
            Set trouve = .Range("TabListing").Find(NumDossard, LookIn:=xlValues, lookat:=xlWhole)
            If Not trouve Is Nothing Then
                TabDossards(i, 2) = trouve.Offset(0, -5)
                TabDossards(i, 3) = trouve.Offset(0, -4)
                TabDossards(i, 4) = trouve.Offset(0, -2)
                TabDossards(i, 5) = trouve.Offset(0, -3)
                TabDossards(i, 6) = trouve.Offset(0, -1)
            End If
        End With
    End If
Next i
Sheets("Qualification(s)").Range("A3").Resize(UBound(TabDossards, 1), UBound(TabDossards, 2)) = TabDossards
End Sub
'En savoir plus sur https://www.excel-downloads.com/threads/cr%C3%A9er-des-s%C3%A9ries-en-utilisant-la-fonction-match-vba.20023375/#vTq9ejvwSOFoYIO4.99
 

Discussions similaires

Réponses
17
Affichages
747

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83