Musique problème macro

Bonjour à tous,

Je sollicite votre aide pour améliorer ou corriger une macro que j'ai bidouillé pour épurer la musique d’un cheval (musique d’un cheval est les dernières performances places et disciplines).

Actuellement, la macro fonctionne correctement lorsque les places sont comprises entre 1 et 9. Cependant, à partir de 10 jusqu'à 25, elle interprète incorrectement les chiffres, considérant par exemple 10 comme deux valeurs distinctes, et ainsi de suite.

Je vous joins le fichier contenant la macro ainsi que quelques exemples de performances à épurer et des informations sur les disciplines des courses de chevaux. Le fichier est destiné à épurer les performances dans la discipline du Plat.

Merci d'avance pour votre assistance.

Cordialement,

56musique.xlsm (23.05 Ko)

Bonsoir, j’ai essayé une deuxième approche, une macro qui épure toutes les valeurs qui ne sont pas du plat (p) après pour la deuxième macro je sèche

Ci-joint le fichier

19musique2.xlsm (24.83 Ko)

Merci

Bon Week end

Bonjour,

Essayez ceci, cliquez sur le bouton "Musique":

Cdlt

Bonjour à tous,

Merci Arturo83 pour votre réponse et pour la macro, qui fonctionne parfaitement. Cependant, malgré mes efforts pour l'adapter à mon fichier complet, je n'y parviens pas en raison de mes connaissances limitées en VBA. Pourriez-vous modifier votre macro afin qu'elle fonctionne dans mon cas spécifique ? Je joins le fichier complet pour référence.

Merci d'avance.

Cordialement

19musique3.xlsm (46.85 Ko)

Voilà la modif

Si cela vous convient, passez le sujet en "Résolu"

Cdlt

Bonjour starwaso, Arturo83

Via un regex et le pattern suivant, tu peux épurer la chaine de caractères en isolant les éléments désirés :

regex.Pattern = "\b\d+p\b"

la chaine "1p 3p 6s 3p 1p 7p 5p (23) 4p 4p 1p 13c 4p"

devient "1p 3p 3p 1p 7p 5p 4p 4p 1p 4p"

Via une fonction personnalisée et ce pattern, tu peux ainsi transformer la chaine désirée en y adaptant les correspondances.

Si quelqu'un veut s'y atteler

klin89

Bonjour à tous,

Merci Arturo83 pour le correctif mais cela fonctionne que sur un tableau sur deux .

Merci Klin89 pour ta réponse.

Désolé, je n'avais pas vu les autres tableaux, voici le correctif

Merci Arturo83

Bon Week end

Cordialement

Re le forum,

Pour le fun, via un regex, tu peux tester sur le fichier du post #1 :

Option Explicit
Sub test()
    Dim a, i As Long, ii As Long, m As Object
    With Sheets("Feuil1").Range("a1", Range("a" & Rows.Count).End(xlUp)).Resize(, 2)
        a = .Value
        With CreateObject("VBScript.RegExp")
            .Global = True
            .Pattern = "\b\d+p\b"
            For i = 2 To UBound(a, 1)
                a(i, 2) = ""
                If .test(a(i, 1)) Then
                    Set m = .Execute(a(i, 1))
                    For ii = 0 To m.Count - 1
                        Select Case m(ii)
                        Case "9p", "10p", "11p", "12p", "13p", "14p", "15p", "16p", "17p", "18p", "19p", "20p", "21p", "22p", "23p", "24p", "25p"
                            a(i, 2) = a(i, 2) & 1
                        Case "1p": a(i, 2) = a(i, 2) & 9
                        Case "2p": a(i, 2) = a(i, 2) & 8
                        Case "3p": a(i, 2) = a(i, 2) & 7
                        Case "4p": a(i, 2) = a(i, 2) & 6
                        Case "5p": a(i, 2) = a(i, 2) & 5
                        Case "6p": a(i, 2) = a(i, 2) & 4
                        Case "7p": a(i, 2) = a(i, 2) & 3
                        Case "8p": a(i, 2) = a(i, 2) & 2
                        End Select
                    Next
                End If
            Next
        End With
        .Value = a
    End With
End Sub

Au préalable, il faut formater la colonne B en texte.

klin89

Rechercher des sujets similaires à "musique probleme macro"