Supprimer caracteres apres repère

  • Initiateur de la discussion Initiateur de la discussion Maximom
  • 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 !

M

Maximom

Guest
Bonjour le forum,

Dans mon tableau de 10000 lignes, dans la collone C, je souhaite supprimer tous les caracteres qui se trouvent aprés '- ABC' y compris ce '-ABC'
par exemple:
X3 : Reunion - PC - ABC non conf. (ref RYS:7l:371231179)
pour avoir
X3 : Reunion - PC

Voila, si vous pouvez me donner la solution pour une macro...
J'espere avoir été assez clair...
Merci 😉
 
Bonjour Maximom

Code:
Sub Tronque()
Dim balise As String
Dim mot As String
Dim pos As Integer
Dim I As Integer
balise = '- ABC'
    For i = 2 To 10000

        mot = Range('C' & i).Value
        pos = InStr(1, mot, balise)
        mot = Left(mot, pos - 1)
        Range('C' & i).Value = mot

    Next i
End Sub

Message édité par: dg62, à: 17/02/2006 12:35
 
bonjour Maximom

je te suggere fortement de creer un petit fichier avec quelques lignes parmi les 10000
il sera ainsi plus facile de debugger (s'il y a lieu, ce dont je doute fort)
il est plus que probable que l'énoncé de ton probleme souffre de lacune(s)
 
re


Apres essai sur ton fichier, 1 problème décelé.

des références n'ont pas la fameuse chaîne ABC et de ce fait la fonction left renvoyait une erreur.

Message édité par: dg62, à: 17/02/2006 14:48

Message édité par: dg62, à: 17/02/2006 15:12
 
re


petite correction

Code:
Sub trouve()
Dim balise As String
Dim mot As String
Dim pos As Integer
balise = 'ABC'
    For i = 2 To 10000

        mot = Range('C' & i).Value
        pos = InStr(1, mot, balise)
        
       If pos > 0 Then
        mot = Left(mot, pos - 3)
        Range('C' & i).Value = mot
        End If
    Next i
End Sub

Tu peux débuter la boucle à 1 si tu n'as pas de ligne d'entête.
Le bug venait de l'absence de repère pour certaines références.

Message édité par: dg62, à: 17/02/2006 14:42

Message édité par: dg62, à: 17/02/2006 14:54
 
re

il faut prendre mon nouveau code corrigé et la normalement plus de problème.
Code:
Sub trouve()
Dim balise As String
Dim mot As String
Dim pos As Integer
Dim I As Integer
balise = 'ABC'
    For i = 2 To 10000

        mot = Range('C' & i).Value
        pos = InStr(1, mot, balise)
        
       If pos > 0 Then
        mot = Left(mot, pos - 3)
        Range('C' & i).Value = mot
        End If
    Next i
End Sub

Message édité par: dg62, à: 17/02/2006 15:06

Message édité par: dg62, à: 17/02/2006 15:17
 
bonjour Maximom bonjour dg62

peut-etre Maximom as-tu executé la macro sur ton fichier test
dans ce cas il faut adapter (C devient A)
ci-dessous ton fichier avec la macro de dg62 adaptée ET QUI FONCTIONNE

desolé pour le fichier :il suit

Message édité par: pierrejean, à: 17/02/2006 15:22
 

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour