Supprimer texte entre deux caractères plusieurs fois ds une

Bonjour,

J'ai une fichier Excel dans lequel en colonne J'ai des informations du type :

62%GAU.GAUCHE 34%DROI.DROITE 2%DE.DEVANT 2%DER.DERRIERE

je souhaiterai obtenir en colonne M

62%GAUCHE 34%DROITE 2%DEVANT 2%DERRIERE

J'ai trouvé une fonction

Function parenthese(cellule)

Application.Volatile

pos1 = InStr(cellule, "%")

pos2 = InStr(cellule, ".")

If pos1 > 1 Then

tmp = Left(cellule, pos1 - 1)

End If

If pos2 > 0 Then

tmp = tmp & Mid(cellule, pos2 + 1)

End If

If pos1 + pos2 = 0 Then tmp = cellule

parenthese = Trim(tmp)

End Function

mais elle me supprime le % alors que je souhaiterai le garder et surtout, la fonction ne marche que sur le premier % ***. qu'elle trouve.

Je n'arrive pas à bien l'adapter, est-ce que quelqu'un aurait une idée ?

Merci beaucoup de votre aide !

bonjour,

proposition de correction

Function parenthese(cellule)
Application.Volatile
temp = cellule
pos1 = InStr(temp, "%")
pos2 = InStr(temp, ".")
While pos1 <> 0 And pos2 <> 0
If pos1 > 1 Then
tmp = Left(temp, pos1)
End If
If pos2 > 0 Then
tmp = tmp & Mid(temp, pos2 + 1)
End If
If pos1 + pos2 = 0 Then tmp = temp
temp = tmp
pos1 = InStr(pos1 + 1, temp, "%")
pos2 = InStr(pos1 + 1, temp, ".")
Wend
parenthese = Trim(tmp)
End Function

ça marche très bien !

Merci beaucoup !

J'aurais une autre petite question :

ma colonne J provient d'une extraction d'un progiciel qui met 0.1% (dès que le chiffre est inférieur à 1)automatiquement sous la forme .1% comment pourrais-je faire pour ajouter le 0 dans ma colonne M ?

Bonjour,

mets-nous un extrait de ton fichier qui montre ce problème (le résultat que tu as et le résultat que tu veux obtenir).

Bonjour,

J'ai :

EN J 62%GAU.GAUCHE 34%DROI.DROITE 2%DE.DEVANT .2%DER.DERRIERE

EN M 62%GAUCHE 34%DROITE 2%DEVANT .2%DERRIERE

et je voudrais:

EN M 62%GAUCHE 34%DROITE 2%DEVANT 0.2%DERRIERE

Je demande ça car je ne peux pas agir sur l'extraction elle même..!

Merci encore !

bonsoir,

une proposition

Function parenthese(cellule)
    Application.Volatile
    temp = " " & cellule
    temp = Replace(temp, " .", " 0.")
    pos1 = InStr(temp, "%")
    pos2 = InStr(pos1, temp, ".")
    While pos1 <> 0 And pos2 <> 0
        If pos1 > 1 Then
            tmp = Left(temp, pos1)
        End If
        If pos2 > 0 Then
            tmp = tmp & Mid(temp, pos2 + 1)
        End If
        If pos1 + pos2 = 0 Then tmp = temp
        temp = tmp
        pos1 = InStr(pos1 + 1, temp, "%")
        pos2 = InStr(pos1 + 1, temp, ".")
    Wend
    parenthese = Trim(tmp)
End Function

Bonjour,

Merci beaucoup, ça marche très bien !!

Rechercher des sujets similaires à "supprimer texte entre deux caracteres fois"