pb pour creer une reference article

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

A

asz

Guest
Bonjour, j'ai un fichier excel (et oui!!), dans la colonne A j'ai que des libellés d'articles par exemple "routeur modem adsl bewan", je souhaiterai d'apres ce libellé, créer une cellule ou serait générée une référence de l'article (genre les 3 premiers caractères de chaque mot constituant le libellé : roumodadsbew).
Merci par avance
asz
 
merci de réagir si vite. Bien sûr pour compliquer la tâche, les libellés ne sont pas uniformes. C'est pour ça que pour pouvoir apres m'y retrouver dans les ref, je voudrai prendre les 3 premiers caracteres de chaque mot (ou valeur). Il y a des libellés ou figurent plus de 5 mots (8 maxi).
Par avance merci
asz
 
Bonjour Asz

Colle ce code dans un module de VBA, cette une fonction

Public Function ClefComposee(vCell As Range) As String
Dim I As Byte
Dim vclef As String
Dim var As String
var = ""
vclef = vCell
For I = 1 To Len(vclef) - Len(WorksheetFunction.Substitute(vclef, " ", "")) + 1
var = var & Mid(vclef, 1, 3)
vclef = Mid(vclef, InStr(1, vclef, " ") + 1, Len(vclef))
Next I
ClefComposee = var
End Function

Pour utiliser cette fonction dans la feuille active, en imaginant que le texte à codifié ce trouve en A1 = ClefComposee(A1).

Pour info, les function VBA se trouve dans la catégorie "personnalisées" dans la boîte de dialogue d'insertion des formules.

@+Jean-Marie
 
lorsque j'insere la ligne de fonction en remplacement de vclef = vCell , il me met un blanc dans la cellule. Donc j'utilise toujours le premier script envoyé par Jean marie. Le pb c'est que parfois il me double le caractere du 2 eme mot ou 3eme. c'est pas pareil pour chaque reference créée. Certaines sont ok et d'auters erronnées.
Sincères salutations
asz
 
Re...

Excuse j'ai fait une boulette en recopiant le code, je te le redonne en entier

Public Function ClefComposee(vCell As Range) As String
Dim I As Byte
Dim vclef As String
Dim var As String
var = ""
vclef =trim(WorksheetFunction.Substitute(vCell, ",", ""))
For I = 1 To Len(vclef) - Len(WorksheetFunction.Substitute(vclef, " ", "")) + 1
var = var & Mid(vclef, 1, 3)
vclef = Mid(vclef, InStr(1, vclef, " ") + 1, Len(vclef))
Next I
ClefComposee = var
End Function

@+Jean-Marie
 
coucou,

je préfère ma solution

Sub demo()
Dim Donnees

For i = 1 To Range("A1", [A65536].End(xlUp)).Rows.Count
Donnees = Split(Cells(i, 1).Value, " ")
j = 1
For j = 0 To UBound(Donnees)
Cells(i, 2).Value = Cells(i, 2).Value & Mid(Donnees(j), 1, 3)
Next j
Next i

End Sub


bien entendu peut facilement être transformée en fonction personnalisée.


bonne journée
 
- 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