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

XL 2010 VBA pour supprimer une partie d'une chaine de caractères

anbar

XLDnaute Junior
Bonsoir

Je vous sollicite pour m'aider à trouver une solution pour supprimer une partie des chaines de caractères Colonnes A du tableau ci-joint
je voudrais garder que CBM1, D31, D38, MUS, MUS3, PA4, PL4, PL4A, PR4, RA4, RO4 et RO4A.

Merci à vous.
 

Pièces jointes

  • organise.xlsm
    30.8 KB · Affichages: 14

anbar

XLDnaute Junior
re
et ou le résultat doit aller ??????????
dans tout les cas dans ce contexte en vba c'est split(valeur a couper,"-")(0)
Merci pour votre réponse, le problème c'est que la valeur à copier correspond à (-10/03/2020-M1) et ca change tous les jours au niveau de la date cad qu'au lendemain on aura -11/03/2020-M1).
peu n'importe la destination du résultat que ce soit sur la même feuille ou sur la feuille 3.
merci
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir,

Essayez la macro:
VB:
Sub prefixe()
Dim t, i&
   With Sheets("tableau")
      t = .Range("a1").Resize(.Cells(Rows.Count, "a").End(xlUp).Row)
      For i = 2 To UBound(t): t(i, 1) = Split(t(i, 1), "-")(0): Next
      .Range("a1").Resize(UBound(t)) = t
   End With
End Sub
 

anbar

XLDnaute Junior
Je crois que j'ai pas bien expliquer le problème, en fait pour CBM1, D31, D38, MUS, MUS3, PA4, PL4, PL4A, PR4, RA4, RO4 et RO4A. ne
Bonsoir le fil

anbar
Pas besoin de macro
Utilises simplement la fonctionnalité Données/Convertir
avec comme séparateur le tiret
Merci de votre aide
sauf que à droite de A il y a plusieurs données.
 

Staple1600

XLDnaute Barbatruc
Re

Oui et alors?
Il suffit d'utiliser correctement les options offertes par Données/Convertir
Comme par exemple: Colonnes non distribuées.

EDITION: Alors si même mapomme sort l’artillerie lourde
Je retourne m'abrutir devant la TV
 

Staple1600

XLDnaute Barbatruc
Re

anbar
Tu as du zappé ma réponse à ton questionnement
Cf le message#9

Essaies et tu verras que Données/Convertir fonctionne
(et que c'est plus rapide que de devoir insérer un module standard puis y faire un copier/coller d'un code VBA)
 

Staple1600

XLDnaute Barbatruc
Re

C'est parce que tu n'as pas utilisé (en la cochant ) l'option:
Colonne non distribuée

Le ridicule ne tuant pas (je parle pour moi), voici du code VBA pour te convaincre ne pas en utiliser
Fais le test sur une feuille vierge
1) Tu lances d'abord la macro Datas_pour_test
2) Puis la macro test
VB:
Sub Datas_pour_test()
With Application
For i = 1 To 30
Cells(i, 1) = Chr(.RandBetween(65, 90)) & Chr(.RandBetween(65, 90)) & Chr(.RandBetween(65, 90)) & i & "-01/01/2020-" & 1601 - i
Next
End With
End Sub

Sub test_Données_Convertir()
Dim WTF
WTF = Array(Array(1, 1), Array(2, 9), Array(3, 9))
Columns(1).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, Other:=True, OtherChar:="-", FieldInfo:=WTF
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Explications d'utilisation de Données/Convertir
(Quand tu es à l'étape 3 de l'Assistant
Tu cliques sur les intitulés de colonnes (en dessous de Aperçu de données) -> Là où c'est écrit: Standard
Donc tu fais cela sur les colonnes que tu veux pas et coche pour celles-ci Colonnes non distribuées.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…