Apliquer cette macro à plusieur ligne [Résolu/Fermé]

Signaler
-
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
-
Bonjour,

Je ne sais pas comment éditer un titre qui correspond exactement à ma demande , alors je me justifie ici ..

Dans cette macro je fais une conversion à l'aide d'un tableau présent sur la feuille et je reporte la conversion sur la ligne correspondante.

Actuellement ce code permet , en découpant la chaine de caractère, de convertir à partir du code hexadécimal en cellule (2,25) et de recopier la valeure de la cellule de conversion (en AU) sur la ligne correspondante au code hexa

Je voudrais qu'il fasse exactement la même chose pour les ligne suivante ( boucle )
sachant que le numéro de ligne est aléatoire ( 1 , 2 , 3 ... n ligne)

Je ne sais pas si cela est claire , ci -joint un extrait de mon fichier ..

HELP ME PLEASE :)

http://www.cjoint.com/c/FBzo4cFxYcp

1 réponse

Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 607
Bonjour,

Ton code modifié : (tu n'as plus qu'à appeler la Boucle plutôt que ta Conversion_HEXA)
Sub Boucle()
    Dim DLig As Long, Lign As Long
        DLig = Sheets("Feuil1").Columns(25).Find("*", , , , , xlPrevious).Row
        For Lign = 2 To DLig
            Conversion_HEXA Lign
        Next
End Sub

Sub Conversion_HEXA(maLign As Long)
    ' Ce programme permet de convertir dans un tableau  la première ligne hexadécimal en valeur exploitable pour ensuite
    ' recopier les valeurs sur la ligne correspondante
    ' (Attention la ligne ou sera copier les chaines hexa doit être de format "TEXTE"
    ' pour éviter que " E8 "  ne soit traduit en E puissance ) .
    j = 11     ' J prend la valeur 11
    X = 1      ' x prend la valeur 1
    k = 26     ' k prend la valeur 26
    'Cells(maLign, 25).Select         ' Selection de la celule (2,25) qui correpond à la première ligne héxadécimale
    n = Len(Cells(maLign, 25))         ' La variable n prend la valeur du nombre de caractère dans la cellule
    If n = 102 Then             ' Si n = 102 , alors , ( Si le code à plus de 15 chaines de caractère , marquer " Unknow")
        While j <= 25 And X <= 102    ' Tant que j <= 25 et que x <= 2 102 alors ,
            Cells(j, 45).Value = Mid(Cells(maLign, 25).Value, X, 4)            ' La cellule (j,45) prend la valeur de la chaine de caractère correspondante
                                                                          ' x pour le numéro du caractère ou débute l'extraction est 4 pour le nombre de caractèreà extraire
            Cells(maLign, k).Value = Cells(j, 47)                              ' La cellule (j,47) prend la valeur de la cellule (2,k ) ( Transposition de la contenance du tableau en ligne
            X = X + 7           ' x s'incrémente de 7 ( pour arriver à la prochaine chaine de caractère
            j = j + 1           ' j s'incrémente de 1 (pour passer à la ligne suivant ou sera copié la chaine hexa )
            k = k + 1
        Wend                ' Fin de la boucle
    Else        ' Sinon
        While j <= 25 And X <= 102    ' Tant que j <= 25 et que x <= 2 102 alors ,
            Cells(j, 45).Value = "Unknow"        ' La cellule (j,45) prend la valeur "Unknow" ( Chaine de caractères différents de 15)
            Cells(maLign, k).Value = "-"     ' La cellule (2,k) prend la valeur " - " pour indiquer un paramètre inconnu
            X = X + 7           ' x s'incrémente de 7 ( pour arriver à la prochaine chaine de caractère)
            j = j + 1           ' j s'incrémente de 1 (pour passer à la ligne suivante ou sera copié la chaine hexa )
            k = k + 1           ' k s'incrémente de 1 ( Pour passer à la colonne suivante)
        Wend            ' Fin de la boucle
    End If          ' Fin de la boucle
End Sub

Salut pijaku,

Clap Clap Clap !!!! Le code marche parfaitement je te remercie énormément et te souhaite un bon weekend un peu en avance :D


A bientôt peut-être :)
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 607 > julien
Pas de souci.
Merci et bon week end à toi également.