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

  • Initiateur de la discussion Initiateur de la discussion chvalet
  • 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 !

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

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

Réponses
15
Affichages
1 K
Compte Supprimé 979
C
Retour