Separer du texte par rapport à un tiret

Bonsoir j'aimerai faire une décomposition en differente colonne d'une chaine de texte

exemple: 07007-SOCIETE-LIEU

colonne A 07007

Colonne B SOCIETE

Colonne C LIEU

Ceci dans cette macro qui me fais la liste des dossiers dans un dossier

Private Sub CommandButton1_Click()

'Permet de fournir la liste des sous dossier dans un dossier

a = InputBox("Collez ici l'adresse du dossier considéré", "Optimisation", "F:\@ Intranet")

If a = "" Then

Exit Sub

End If

MsgBox ("Adresse du dossier considéré?" & a)

Dim fs, f, f1, s, sf

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.GetFolder(a)

Set sf = f.SubFolders

For Each f1 In sf

s = f1.Name

Sheets("Feuil1").Select

Cells(6 + i, 2).Select

ActiveCell.FormulaR1C1 = s

'MsgBox (a & "\" & s)

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=a & "\" & s, _

TextToDisplay:=s

i = i + 1

Next

MsgBox ("Rapide et efficace")

End Sub

Ce qui me permettrait de faire la liste de mes affaires et de pouvoir bien les filtrer par la suite gràce au filtre dynamique.

J'aimerai que le lien hypertexte soit actif que sur le numéro d'affaires.

Voilà je travaille dessus en // mais de l'aide serait bienvenue

MErci

Bonjour,

j'ai progressé sur mon projet je vous joint un fichier

https://www.excel-pratique.com/~files/doc/Q1MHwessai.xls

A)Donc mon projet consiste à récupérer la liste des dossiers dans 1 seul dossier sur un serveur(je ne prends pas les sous dossier d'un dossier etc), pour le noter dans une feuille excel.

B)Ensuite de séparer le nom du dossier par rapport à des tirets

J'ai trouvé une fonction adapté de SPLIT qui me le fais bien.

Actuellement çà marche mais en plusieurs étapes, j'aimerai tout faire en cliquant sur mon bouton.

C) J'aimerai garder le lien hypertexte que sur le numéro d'affaire.

Voilà si une personne à une idée, je vais travailler encore dessus en parallèle

Voilà le code de la fonction qui me permet de séparer une chaine de caractères

Public Function SpAmeliore(Chaine As String, PosN1 As Integer, PosN2 As Integer)

'Function split a 1 ou 2 niveaux

'1- a un niveau lorsque PosN2 = 0

'2- a 2 niveaux lorque PosN2 >= 1

'ex :

'si chaine = "a1$b1#a2$b2#a3$b3"

'spameliore(chaine,1,1) rend "a1"

'spameliore(chaine,1,0) rend "a1$b1"

'spameliore(chaine,2,2) rend "b2"

Dim DataP1

Dim Tableau1() As String

Tableau1() = Split(Chaine, "#", -1)

DataP1 = Tableau1(PosN1 - 1)

If PosN2 = 0 Then SpAmeliore = DataP1: Exit Function

Dim Tableau2() As String

Tableau2() = Split(DataP1, "$", -1)

SpAmeliore = Tableau2(PosN2 - 1)

End Function

Pour instant j'arrive a réaliser ce que je souhaitais mais en plusieurs etapes, j'ai pas reussi a tout automatiser

Excelnovice,

J'ai rien contre ton pseudo, il témoigne de ton humilité...

Mais si toi tu es novice, alors que suis-je ? Car pour un novice, je trouve que tu en sais déjà pas mal...

Bon, je sais ce que je vais faire... m'en tenir aux initiales de mon nom de famille, LB.

Elbie

Bonjour V.elbie

Eu en fait je parcours beaucoup de forum. La macro split n'est pas de moi. Et j'ai pris mon pseudo un peu au hasard et les reponses souvent des autres menbres sont generalement pointues.

Rechercher des sujets similaires à "separer texte rapport tiret"