Transformer Formule en Macro

Bonjour,

j'ai besoin de transformer cette formule en macro.

Elle a pour fonction de supprimer un underscore dans un mot si le underscore est en 6ème position dans un mot.

La formule fonctionne parfaitement mais environ 30000 lignes à traiter.

=SI(TROUVE("_";A1)=6;SUBSTITUE(A1;"_";"");A1)

A1 sera à remplacer par colonne A.

Merci pour vos contributions.

Bonsoir,

Il nous faut montrer un petit bout de fichier.

voici capture écran feuille excel

Merci

captureexcel

Bonsoir

Essaie cela :

Sub underscore()
dlig = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To dlig
    pos = InStr(Range("A" & i), "_")
    If pos = 6 Then
        Range("A" & i) = Left(Range("A" & i), pos - 1) & Right(Range("A" & i), Len(Range("A" & i)) - pos)
    End If

Next
End Sub

Bye

Salut Chopin,

Bonsoir l'équipe,

ou ça..., la macro démarrant sur un double-clic en colonne [A].

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tData
Cancel = True
'
If Not Intersect(Target, Range("A:A")) Is Nothing Then
    iRow = Range("A" & Rows.Count).End(xlUp).Row
    tData = Range("A1:A" & iRow).Value
    For x = 1 To UBound(tData)
        If InStr(tData(x, 1), "_") = 6 Then tData(x, 1) = Replace(tData(x, 1), "_", "")
    Next
    Range("A1:A" & iRow) = tData
End If
'
End Sub

A+

Merci Patty5046 et curulis57

Rechercher des sujets similaires à "transformer formule macro"