Utilisation de VBA

Bonjour ,

Voilà mon sujet :

Faire un programme en utilisant le VBA qui transforme la norme Afnor en norme ISO et inversement ( de la liste en pièces jointes )

Le passage (en gros) d'une norme à l'autre se fait en changeant les lettres des éléments qui composent les nuances de l'acier.

Les changements à faire sont :

XC en C

C en Cr

D en Mo

G en Mg

N en Ni

M en Mm

Z en X

Conseil : utiliser les macros par enregistrement...

J'ai de petite base sur VBA . Je ne sais pas comment faire , pouvez-vous me donner une piste ?

Merci d'avance

16classeur1.xlsx (11.12 Ko)

bonjour,

en faisant un rechercher/remplacer ça pourrais pas le faire????

Sub Macro1()
'
' Macro1 Macro
'    Cells.Replace What:="XC", Replacement:="C", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

bonjour,

une proposition

Sub Afnor_Iso()
    With Range("B4:B" & Cells(Rows.Count, 2).End(xlUp).Row)
        .Replace What:="XC", Replacement:="#", LookAt:=xlPart
        .Replace What:="C", Replacement:="Cr", LookAt:=xlPart
        .Replace What:="N", Replacement:="Ni", LookAt:=xlPart
        .Replace What:="M", Replacement:="Mm", LookAt:=xlPart
        .Replace What:="D", Replacement:="Mo", LookAt:=xlPart
        .Replace What:="G", Replacement:="Mg", LookAt:=xlPart
        .Replace What:="Z", Replacement:="X", LookAt:=xlPart
        .Replace What:="#", Replacement:="C", LookAt:=xlPart
    End With
End Sub

Merci d'avoir répondu .

Pouvais-vous m'expliquer le programme ? une ligne par exemple .

J'ai réussi à faire marché la proposition de h2so4 . A-t--il un moyen pour évité d'avoir le l"#" ?

Jumeau a écrit :

Pouvez-vous m'expliquer le programme ? une ligne par exemple .

J'ai réussi à faire marcher la proposition de h2so4 . A-t-il un moyen pour éviter d'avoir le l"#" ?

Sub Afnor_Iso()
    With Range("B4:B" & Cells(Rows.Count, 2).End(xlUp).Row) 'on détermine la plage sur laquelle faire les changements
        .Replace What:="XC", Replacement:="#", LookAt:=xlPart ' on y remplace XC par #
        .Replace What:="C", Replacement:="Cr", LookAt:=xlPart ' on y remplace C par Cr
        .Replace What:="N", Replacement:="Ni", LookAt:=xlPart etc ...
        .Replace What:="M", Replacement:="Mm", LookAt:=xlPart
        .Replace What:="D", Replacement:="Mo", LookAt:=xlPart
        .Replace What:="G", Replacement:="Mg", LookAt:=xlPart
        .Replace What:="Z", Replacement:="X", LookAt:=xlPart
        .Replace What:="#", Replacement:="C", LookAt:=xlPart
    End With
End Sub

pourquoi le #

si tu remplaces XC par C puis C par Cr tes XC seront remplacés par Cr (ce n'est pas le but)

si tu remplaces d'abord C par Cr, puis tes XC par C, tes XC seront remplacés par Cr( ce qui n'est toujours pas le but)

d'où l'idée de passer par un caractère qui ne se trouve pas dans ta liste.

D'accord . Merci beaucoup de m'avoir accordé de votre temps .

Est-ce que il est possible d'eviter ce problème en utilisant les macros par enregistrement ?

Jumeau a écrit :

Est-ce que il est possible d'eviter ce problème en utilisant les macros par enregistrement ?

non, tu as d'ailleurs le même problème si tu utilises l'option "remplacer" (ctrl-H). Il y a un ordre à respecter pour certains remplacements (D et G doivent venir après M par exemple) et pour C, il faut passer par une valeur intermédiaire. Essaie, tu verras.

D'accord. Merci beaucoup. Bonne continuation

Rechercher des sujets similaires à "utilisation vba"