XL 2016 VBA Normaliser une description de produits

Vero2782

XLDnaute Nouveau
Bonjour,

J'ai différentes description de produit en colone A et j'aimerais enlever l'information superflue de cette description pour laisser que la description du produit en colone C.

exemple de description de produit : en colone A
Chips 25% moins de sel 141g/6
Savon à main l'orange 500ml/12
Lotion orig. 50ml
etc.

Résultat attentu en colone C
Chips 25% moins de sel
Savon à main l'orange
Lotion orig.

Dans ma feuille excel j'ai fait :
colone B =min(find({1,2,3,4,5,6,7,8,9},A1&"0123456789"))
Colone C = left(A1,B1-1)
(même avec mes formule excel, j'ai décidé d'abandonner pour les chips... tant pis pour le 25% moins de sel mais idéalement, j'aurais aimé le garder dans la description.)

J'aimerais trouver trouver la façon VBA de faire ses opérations. Actuellement, j'ai essayé une Worksheetfunction mais les accolades { } et les guillemets me cause problème.
Range(C1)=application.Worksheetfunction.min(find({1,2,3,4,5,6,7,8,9},A1&"0123456789"))

J'ai aussi essayé avec Formulaarray et ça ne fonctionne pas plus...
Range(C1)=formulaarray=min(find(1,2,3,4,5,6,7,8,9,A1&"0123456789"))

À chaque fois que j'ai des accolades dans mes formules, je galère vraiment plus sur VBA. :(

Merci

Véro
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour Vero2782,

Essayez la fonction personnalisée PRODUITcourt(X) ci-dessous :
VB:
Function PRODUITcourt(X) As String
Dim T

  PRODUITcourt = X
  T = Split(X)
  If T(UBound(T)) Like "#*" And UBound(T) > 0 Then
    ReDim Preserve T(0 To UBound(T) - 1)
    PRODUITcourt = Join(T)
  End If
End Function
 

Pièces jointes

  • Vero2782- ProduitCourt- v1.xlsm
    14.2 KB · Affichages: 39

JHA

XLDnaute Barbatruc
Bonjour à tous,

Peut être en recherchant le dernier espace de la phrase.
A essayer pour le texte en "A2"
Code:
=GAUCHE(A2;MAX(SI(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(A2))))))
Formule à valider en matricielle (Ctrl+Maj+Entrée)

Edit:
Une autre formule (non matricielle) qui recherche le dernier espace de la phrase.
Code:
=GAUCHE(A2;CHERCHE("Ω";SUBSTITUE(A2;" ";"Ω";NBCAR(A2)-NBCAR(SUBSTITUE(A2;" ";"")))))
à valider par entrée

JHA
 
Dernière édition:

Vero2782

XLDnaute Nouveau
Bonjour à vous deux,

Premièrement merci beaucoup de vos réponses.

Ma Pomme : C'était exactement ça que j'avais besoin et ça fonctionne mieux que mes formules originales ça correspond 100% a ce que je cherchais. En plus, j'ai appris a créer un fonction avec ton code ;) c'est un 2 dans 1 pour moi ! Un gros Merci !

JHA : J'ai essayé les deux formules, elle n'ont pas fonctionné pour moi. Peut-être dû à ma traduction français-anglais (même si je crois avoir utiliser les mêmes fonctions).

Encore merci et bonne soirée !

Véro
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87