SOSOrdi.net
Identification
Pas encore inscrit(e) ? Cliquez-ici
Bandeaux anti-publicités informatifs dans une question donnée sur SOSOrdi.net pour désactiver les bloqueurs : qu'en pensez-vous ?
  • SOSMania : c'est comprehensible pour une association, bonne idée !
      33%
  • SOSPub(s) : peut-être un peu trop gros ou intrusif (j'en rêve la nuit !)
      17%
  • néoSOS : je ne les vois pas, j'ai désactivé mon bloqueur !
      0%
  • Ne sait pas / pas d'opinion
      50%
Voir les derniers sondages

Comment supprimer en VBA une partie des informations d'une cellule

BOnjour,

J'ai une macro d'effectuer avec des données qui remontent dans certaines colonnes, et dans ma colonne "F", voici un exemple de ce qui remonte:

"ORIGIN <10000000000030> / 20190000969 / 44274 / DJ-844-JL"

Savez-vous comment je pourrais supprimer ou remplacer par un vide la valeur suivante : <10000000000030> sachant que le mot ORIGIN change sur chaque ligne et n'est pas de longueur fixe?

Merci pour votre retour,
posté le 7 Juin dans la catégorie VB/VBA par Senate

3 Réponses

Salut,

Quand tu indiques que le mot ORIGIN change sur chaque ligne, tu veux dire que c'est le mot complet qui est différent sur chaque ligne ?

Les caractères < et > sont toujours présent ?

Je verrais bien un truc du genre :

Dep_caractere = WorksheetFunction.Search("<", Range("F3").Value, 1)
Fin_caractere = WorksheetFunction.Search(">", Range("F3").Value, 1)
Range("F4").Value = Mid(Range("F3").Value, 1, Dep_caractere-1) & Mid(Range("F3").Value, Fin_caractere+1, Len(Range("F3").Value))

Search récupère la position du caractère dans la cellule
Mid extrait une partie de la cellule.
L'idée ici est de récupérer les infos avant le < et aprés le > est les regrouper tel que.

Le texte a traiter etant en F3 et le resultat en F4
répondu le 7 Juin par yoyoww
Salut Yoyoww,

Oui le mot "Origin" change à chaque fois, cela correspond au nom des client, et ce libellé est toujours formaté de la ma même manière, après le nom du client, nous retrouverons toujours les "<...>".

Je vais tester ce que tu m'as donné.

Merci pour ton retour,

++
répondu le 11 Juin par Senate
 
Solution
Bon finalement, j'ai effectuer une expression reguilere

Private Function CleanStr(strIn As String)
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Pattern = "\<[^>]*\>"
.Global = True
CleanStr = .Replace(strIn, vbNullString)
End With
End Function

et ca fonctionne

Merci
répondu le 25 Juin par Senate
élue le 25 Juin par bird
Aidez SOSOrdi.net !

Actualités / Articles / Astuces associés :

Questions associées:

3 réponses 542 vues
posté le 11 Mai 2004 dans la catégorie VB/VBA par tims
11 réponses 188 vues
posté le 17 Jan 2007 dans la catégorie Programmation par psi343
3 réponses 785 vues
posté le 28 Déc 2006 dans la catégorie Programmation par psi343
4 réponses 411 vues
posté le 19 Oct 2004 dans la catégorie VB/VBA par pipiche
3 réponses 2,323 vues
Retour en haut
...