Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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


Quelle version d'excel utilises-tu ?


Chez moi sur excel 2003 il n'y a aucun problème.

Excuses moi Pierre Jean Bonjour

et j'arrive aux mêmes conclusions que toi.

Message édité par: dg62, à: 17/02/2006 13:25
 
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
 
Merci de votre perceverence... 😉

Mais pour moi cela ne fonctionne pas...
j'ai fait plusieurs tests,
j'ai toujours ce message d'erreur...

N'y aurait il pas une autre méthode?

Merci
 
le message d'erreur est:

Erreur d'execution '5':
Argument ou appel de procédure incorect

et ensuite je clique sur débogage:
j'ai la fleche jaune sur cette ligne:

mot = Left(mot, pos - 1)

Merci...
 
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.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…