Autres remplacement en VBA

  • Initiateur de la discussion Initiateur de la discussion eric57
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eric57

XLDnaute Occasionnel
Bonjour

je dois faire un remplacement dans une colonne ( colonne A) des 3 derniers caractères. Mais ces caractères existent aussi dans la chaîne, et du coup je n'arriva pas a mes fins.

exemple :

Constructa - CG3A01U5 -
Constructa - CG3A02J5 -
Constructa - CG3A02V9 -
Constructa - CG4A04J5 -
Constructa - CG4A04V9 -
Constructa - CG4A50J5 -

Doit être remplacé par

Constructa - CG3A01U5|xx -
Constructa - CG3A02J5|xx -
Constructa - CG3A02V9|xx -
Constructa - CG4A04J5|xx -
Constructa - CG4A04V9|xx -
Constructa - CG4A50J5|xx -

Merci de votre aide. Je sèche malgré mes recherches
 
Bonjour Eric,
Au plua simple, un essai en PJ avec :
VB:
Sub Ajoute()
    Dim L%, X$
    Application.ScreenUpdating = False
    For L = 1 To Range("A65500").End(xlUp).Row
        X = Cells(L, "A")
        X = Mid(X, 1, Len(X) - 3) & "|xx -"
        Cells(L, "A") = X
    Next L
End Sub
On prend une chaine moins 3 caractères puis on rajoute la terminaison.
Si la liste est vraiment très longue, il y a plus rapide.
 

Pièces jointes

Bonjour Eric,
Au plua simple, un essai en PJ avec :
VB:
Sub Ajoute()
    Dim L%, X$
    Application.ScreenUpdating = False
    For L = 1 To Range("A65500").End(xlUp).Row
        X = Cells(L, "A")
        X = Mid(X, 1, Len(X) - 3) & "|xx -"
        Cells(L, "A") = X
    Next L
End Sub
On prend une chaine moins 3 caractères puis on rajoute la terminaison.
Si la liste est vraiment très longue, il y a plus rapide.
Merci pour aide, oui effectivement la liste peut atteindre 15 ou 20.000 lignes gloupp
 
Re,
En PJ un essai en passant par un array :
VB:
Sub Ajoute()
    Dim T, i%, T0
    Application.ScreenUpdating = False
    T = Range("A1:A" & Range("A65500").End(xlUp).Row) ' Adapter colonne, ici A.
    For i = 1 To UBound(T)
        T(i, 1) = Mid(T(i, 1), 1, Len(T(i, 1)) - 3) & "|xx -"
    Next i
    Range("A1").Resize(UBound(T), 1).Value = Application.Transpose(T)
End Sub
Sur mon PC 30 000 lignes traitées en 0.2s.
Adapter le N° de colonne en fonction de votre besoin.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour