salut Banzai, je viens de realiser qu'on traine une toute petite erreur depuis qu'on a passe de la version Capucin EQUIV017 a EQUIV018. Tu as remplacer le code que j'ai mis en bleu par le code en rouge et depuis ce temps lorsque dans une cellule la donnee commence par zero et qu'elle n'est pas suivi d'une lettre, exemple "02", seul le "2" aparait. Le code est dans le module "compilation" si je ne me trompe pas.
Je t'envoi le fichier EQUIV019. tu peux aussi corriger directement dans cette envoi.
Le probleme est sur la feuille "traitement". Regarde les cellule que j'ai mis en vert. Je t'ai mis un bouton pour essayer la macro "traitement"
Sub Traitement()
' On est dans la feuille Traitements
Dim J As Long
Dim Cel As Range
Dim Depart As String
Dim Kase
Dim Lg As Long
Dim Tablo
Dim I As Integer
Dim Reference As Integer
Lg = Range("I" & Rows.Count).End(xlUp).Row
Range("B2:G" & Lg).ClearContents
With Application
.ScreenUpdating = False
Reference = .ReferenceStyle ' Sauvegarde l'ancien type de référence sous le nom "reference"
.ReferenceStyle = xlA1 ' Pour les formules il faut Référence style A1
End With
ReDim Tablo(1 To Lg, 1 To 5) ' Prépare un tableau qui va contenir le résulat des "traductions"
For Each Kase In [Cat] ' Pour chaque élément de la zone des mnémoniques
Set Cel = Range("I3:I" & Lg).Find(what:=Kase, LookIn:=xlValues, lookat:=xlWhole) ' On vérifie si on le trouve dans la colonne I
If Not Cel Is Nothing Then ' Au moins une occurence
Depart = Cel.Address ' Méthode classique de Find (voir aide)
Do
J = Cel.Row - 2 ' Décalage entre la première ligne testée de la colonne I et le 1er élément du tableau (Tablo)
If Tablo(J, 5) = "" Then ' Tablo pas encore initialisé (par une autre mnémonique)
For I = 1 To 4 ' On recopie dans le tableau les 4 éléments associés à la mnémonique
Tablo(J, I) = Kase.Offset(0, I) ' Nouvelle formule que l'on peut inscrire directement
Next I
Tablo(J, 5) = "X" ' On note ligne initialisée
End If
Set Cel = Range("I3:I" & Lg).FindNext(Cel) ' On va voir si un autre élément de la colonne I est concerné
Loop While Not Cel Is Nothing And Cel.Address <> Depart
End If
Next Kase
Range("C3").Resize(Lg, 4) = Tablo ' On écrit le tableau
With Application
.ReferenceStyle = Reference ' On remet comme avant
End With
'desactivation des formules
[color=#4000FF] 'Range("C2:F" & Lg).Select
'Selection.Copy
' Selection.PasteSpecial Paste:=xlPasteValues, OPERATION:=xlNone, skipBlanks:=False, Transpose:=False[/color]
[color=#BF0000]With Range("C2:F" & Lg)
.Value = .Value
End With[/color]
End Sub
les couleurs bleu et rouge ne semblent pas avoir marche dans ce que je viens de t'envoyer , alors regarde le code au bas de la macro "desactiver les formules" le mien est en commentaire suivi du tien.