OVH Cloud OVH Cloud

Récuperer 1 partie de texte dans des cellules

3 réponses
Avatar
Christele
Dans des cellules, j'ai des groupes de chiffres s=E9par=E9s=20
par des points-virgules ou par des tirets : 123;45-718 =20
etc ...
J'aimerais pouvoir r=E9cuper chaque groupe de chiffres pour=20
les ins=E9rer dans des cellules s=E9par=E9es.=20

Existe-t-il une proc=E9dure vba capable de s=E9lectionner tous=20
les chiffres =E0 gauche du points virgules/du tiret, de=20
couper ces chiffres et de les coller dans une cellule=20
vierge ?
A moins qu'une autre proc=E9dure plus simple existe ?

3 réponses

Avatar
jerrykhann
Bonjour Christele,
oui il y a "plus simple" que par VBA...
tu sélectionnes tes données, tu passe par le menu "données-convertir" tu
coches "délimité" et clique sur le bouton suivant, ensuite tu coches tes
différents délimiteurs (ici c'est "point-virgule" et "autre" et tu mets un -
dans la case) tu valides...
ça le fait ?

--
jerrykhann ( virez jerry c'est un bon à rien :-)
--

"Christele" a écrit dans le message de
news:0d8b01c39a33$c632e660$
Dans des cellules, j'ai des groupes de chiffres séparés
par des points-virgules ou par des tirets : 123;45-718
etc ...
J'aimerais pouvoir récuper chaque groupe de chiffres pour
les insérer dans des cellules séparées.

Existe-t-il une procédure vba capable de sélectionner tous
les chiffres à gauche du points virgules/du tiret, de
couper ces chiffres et de les coller dans une cellule
vierge ?
A moins qu'une autre procédure plus simple existe ?
Avatar
Maryse
Ça pourrait ressembler à ceci.

With ActiveSheet.QueryTables.Add
(Connection:="TEXT;G:fichier.txt", _
Destination:=Range("A1"))
.Name = "fichier"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "-"
.TextFileColumnDataTypes = Array(1, 1, 1)
.Refresh BackgroundQuery:úlse
End With

Maryse


-----Message d'origine-----
Dans des cellules, j'ai des groupes de chiffres séparés
par des points-virgules ou par des tirets : 123;45-718
etc ...
J'aimerais pouvoir récuper chaque groupe de chiffres pour
les insérer dans des cellules séparées.

Existe-t-il une procédure vba capable de sélectionner
tous

les chiffres à gauche du points virgules/du tiret, de
couper ces chiffres et de les coller dans une cellule
vierge ?
A moins qu'une autre procédure plus simple existe ?
.



Avatar
AV
Avec des formules ça suffirait pas ?

Ta valeur (123;45-718) en A1

En B1 : =GAUCHE(A1;TROUVE(";";A1)-1)
En C1 :
=GAUCHE(STXT(A1;TROUVE(";";A1)+1;9^9);TROUVE("-";STXT(A1;TROUVE(";";A1)+1;9^9))-
1)
En D1 : =STXT(A1;TROUVE("-";A1)+1;9^9)

AV