Pour couper une chaine de caractere avec une macro sous VBA Excel
8 réponses
mateo-dev
J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
En fait j'ai une collection qui contient différentes valeurs toutes séparées
par le caractere ":"
Et il me faudrait récupere chaque valeur dans différentes variable sans le
caractere ":"
Ce que contient ma collection est tout le temps différent mais contient
toujours le meme nombre de caractere ":" !
Exemple :
Mycollection contient azerty:5:qsdf4:3::dac
et il me faudrait dans les variables
Myvar1 doit contenir azerty
Myvar2 doit contenir 5
Myvar3 doit contenir qsdf4
Myvar4 doit contenir 3
Myvar5 doit contenir rien
Myvar6 doit contenir dac
Données > Convertir > type : délimité ...etc... Ca le fait tout seul
AV!
Pounet95
Bonsoir, Un exemple :
Sub x() Dim mavar(6) As String For i=1 to 6: mavar(i)="" : Next i c$ = "abcdef:gh:ijkl:m::nopq"
n = 1 For i = 1 To Len(c$) If Mid$(c$, i, 1) <> ":" Then mavar(n) = mavar(n) & Mid$(c$, i, 1) Else n = n + 1 End If Next i For i = 1 To 6: Debug.Print i, mavar(i): Next i End Sub
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"mateo-dev" a écrit dans le message de news:
J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
En fait j'ai une collection qui contient différentes valeurs toutes séparées par le caractere ":" Et il me faudrait récupere chaque valeur dans différentes variable sans le caractere ":" Ce que contient ma collection est tout le temps différent mais contient toujours le meme nombre de caractere ":" !
Exemple : Mycollection contient azerty:5:qsdf4:3::dac et il me faudrait dans les variables Myvar1 doit contenir azerty Myvar2 doit contenir 5 Myvar3 doit contenir qsdf4 Myvar4 doit contenir 3 Myvar5 doit contenir rien Myvar6 doit contenir dac
En espérant avoir été clair... Merci d'avance !
Bonsoir,
Un exemple :
Sub x()
Dim mavar(6) As String
For i=1 to 6: mavar(i)="" : Next i
c$ = "abcdef:gh:ijkl:m::nopq"
n = 1
For i = 1 To Len(c$)
If Mid$(c$, i, 1) <> ":" Then
mavar(n) = mavar(n) & Mid$(c$, i, 1)
Else
n = n + 1
End If
Next i
For i = 1 To 6: Debug.Print i, mavar(i): Next i
End Sub
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"mateo-dev" <mateodev@discussions.microsoft.com> a écrit dans le message de
news: 59636047-D906-4678-98B4-6CFE1ECA80A2@microsoft.com...
J'aimerais pouvoir couper une chaine de caractere contenant le caractere
":"
En fait j'ai une collection qui contient différentes valeurs toutes
séparées
par le caractere ":"
Et il me faudrait récupere chaque valeur dans différentes variable sans le
caractere ":"
Ce que contient ma collection est tout le temps différent mais contient
toujours le meme nombre de caractere ":" !
Exemple :
Mycollection contient azerty:5:qsdf4:3::dac
et il me faudrait dans les variables
Myvar1 doit contenir azerty
Myvar2 doit contenir 5
Myvar3 doit contenir qsdf4
Myvar4 doit contenir 3
Myvar5 doit contenir rien
Myvar6 doit contenir dac
Sub x() Dim mavar(6) As String For i=1 to 6: mavar(i)="" : Next i c$ = "abcdef:gh:ijkl:m::nopq"
n = 1 For i = 1 To Len(c$) If Mid$(c$, i, 1) <> ":" Then mavar(n) = mavar(n) & Mid$(c$, i, 1) Else n = n + 1 End If Next i For i = 1 To 6: Debug.Print i, mavar(i): Next i End Sub
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"mateo-dev" a écrit dans le message de news:
J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
En fait j'ai une collection qui contient différentes valeurs toutes séparées par le caractere ":" Et il me faudrait récupere chaque valeur dans différentes variable sans le caractere ":" Ce que contient ma collection est tout le temps différent mais contient toujours le meme nombre de caractere ":" !
Exemple : Mycollection contient azerty:5:qsdf4:3::dac et il me faudrait dans les variables Myvar1 doit contenir azerty Myvar2 doit contenir 5 Myvar3 doit contenir qsdf4 Myvar4 doit contenir 3 Myvar5 doit contenir rien Myvar6 doit contenir dac
En espérant avoir été clair... Merci d'avance !
JLuc
mateo-dev avait soumis l'idée :
J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
En fait j'ai une collection qui contient différentes valeurs toutes séparées par le caractere ":" Et il me faudrait récupere chaque valeur dans différentes variable sans le caractere ":" Ce que contient ma collection est tout le temps différent mais contient toujours le meme nombre de caractere ":" !
Exemple : Mycollection contient azerty:5:qsdf4:3::dac et il me faudrait dans les variables Myvar1 doit contenir azerty Myvar2 doit contenir 5 Myvar3 doit contenir qsdf4 Myvar4 doit contenir 3 Myvar5 doit contenir rien Myvar6 doit contenir dac
En espérant avoir été clair... Merci d'avance !
Une autre facon de faire :
Sub Test() ' ' Macro2 Macro ' Macro enregistrée le 24/01/2006 par JLL G2P ' Dim Mtvar() Range("A1:A" & Range("A65536").End(xlUp).Row).TextToColumns _ Destination:=Range("A1"), DataType:=xlDelimited, _ Other:=True, OtherChar:=":", _ FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), _ Array(4, 1), Array(5, _ 1), Array(6, 1)) ReDim Myvar(1 To Range("A65536").End(xlUp).Row, 1 To 6) For x = 1 To UBound(Myvar) For y = 1 To 6 Myvar(x, y) = Cells(x, y) Next Next ' Reste du code End Sub
Teste et dis nous
-- JLuc
mateo-dev avait soumis l'idée :
J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
En fait j'ai une collection qui contient différentes valeurs toutes séparées
par le caractere ":"
Et il me faudrait récupere chaque valeur dans différentes variable sans le
caractere ":"
Ce que contient ma collection est tout le temps différent mais contient
toujours le meme nombre de caractere ":" !
Exemple :
Mycollection contient azerty:5:qsdf4:3::dac
et il me faudrait dans les variables
Myvar1 doit contenir azerty
Myvar2 doit contenir 5
Myvar3 doit contenir qsdf4
Myvar4 doit contenir 3
Myvar5 doit contenir rien
Myvar6 doit contenir dac
En espérant avoir été clair... Merci d'avance !
Une autre facon de faire :
Sub Test()
'
' Macro2 Macro
' Macro enregistrée le 24/01/2006 par JLL G2P
'
Dim Mtvar()
Range("A1:A" & Range("A65536").End(xlUp).Row).TextToColumns _
Destination:=Range("A1"), DataType:=xlDelimited, _
Other:=True, OtherChar:=":", _
FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), _
Array(4, 1), Array(5, _
1), Array(6, 1))
ReDim Myvar(1 To Range("A65536").End(xlUp).Row, 1 To 6)
For x = 1 To UBound(Myvar)
For y = 1 To 6
Myvar(x, y) = Cells(x, y)
Next
Next
' Reste du code
End Sub
J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
En fait j'ai une collection qui contient différentes valeurs toutes séparées par le caractere ":" Et il me faudrait récupere chaque valeur dans différentes variable sans le caractere ":" Ce que contient ma collection est tout le temps différent mais contient toujours le meme nombre de caractere ":" !
Exemple : Mycollection contient azerty:5:qsdf4:3::dac et il me faudrait dans les variables Myvar1 doit contenir azerty Myvar2 doit contenir 5 Myvar3 doit contenir qsdf4 Myvar4 doit contenir 3 Myvar5 doit contenir rien Myvar6 doit contenir dac
En espérant avoir été clair... Merci d'avance !
Une autre facon de faire :
Sub Test() ' ' Macro2 Macro ' Macro enregistrée le 24/01/2006 par JLL G2P ' Dim Mtvar() Range("A1:A" & Range("A65536").End(xlUp).Row).TextToColumns _ Destination:=Range("A1"), DataType:=xlDelimited, _ Other:=True, OtherChar:=":", _ FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), _ Array(4, 1), Array(5, _ 1), Array(6, 1)) ReDim Myvar(1 To Range("A65536").End(xlUp).Row, 1 To 6) For x = 1 To UBound(Myvar) For y = 1 To 6 Myvar(x, y) = Cells(x, y) Next Next ' Reste du code End Sub
Teste et dis nous
-- JLuc
JLuc
AV avait soumis l'idée :
Données > Convertir > type : délimité ...etc... Ca le fait tout seul
AV!
Oui, mais il veut recuperer tous les champs dans des variables, c'est pour ca que je lui ai propose une macro. Il faut lire jusqu'au bout... lol Il a des traitement a faire apres... :')
-- JLuc
AV avait soumis l'idée :
Données > Convertir > type : délimité ...etc...
Ca le fait tout seul
AV!
Oui, mais il veut recuperer tous les champs dans des variables, c'est
pour ca que je lui ai propose une macro.
Il faut lire jusqu'au bout... lol
Il a des traitement a faire apres... :')
Données > Convertir > type : délimité ...etc... Ca le fait tout seul
AV!
Oui, mais il veut recuperer tous les champs dans des variables, c'est pour ca que je lui ai propose une macro. Il faut lire jusqu'au bout... lol Il a des traitement a faire apres... :')
-- JLuc
JLuc
J'ai oublier de te prevenir : il faut quand meme 5 colonne vide a droite et tes donnees en colonne A :oÞ
-- JLuc
J'ai oublier de te prevenir : il faut quand meme 5 colonne vide a
droite et tes donnees en colonne A :oÞ
J'ai oublier de te prevenir : il faut quand meme 5 colonne vide a droite et tes donnees en colonne A :oÞ
-- JLuc
AV
| Oui, mais il veut recuperer tous les champs dans des variables, c'est | pour ca que je lui ai propose une macro.
Ben les "variables", il reste plus qu'à les lire... L'important n'est pas vraiment là mais plutôt de connaitre la fonctionnalité "Données > Convertir..." qu'apparemment il ne connait pas... La 1° ligne de la question est : "J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
Mais bon... AV
| Oui, mais il veut recuperer tous les champs dans des variables, c'est
| pour ca que je lui ai propose une macro.
Ben les "variables", il reste plus qu'à les lire...
L'important n'est pas vraiment là mais plutôt de connaitre la fonctionnalité
"Données > Convertir..." qu'apparemment il ne connait pas...
La 1° ligne de la question est :
"J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
| Oui, mais il veut recuperer tous les champs dans des variables, c'est | pour ca que je lui ai propose une macro.
Ben les "variables", il reste plus qu'à les lire... L'important n'est pas vraiment là mais plutôt de connaitre la fonctionnalité "Données > Convertir..." qu'apparemment il ne connait pas... La 1° ligne de la question est : "J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
Mais bon... AV
JLuc
AV avait soumis l'idée :
Oui, mais il veut recuperer tous les champs dans des variables, c'est pour ca que je lui ai propose une macro.
Ben les "variables", il reste plus qu'à les lire... L'important n'est pas vraiment là mais plutôt de connaitre la fonctionnalité "Données > Convertir..." qu'apparemment il ne connait pas... La 1° ligne de la question est : "J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
Mais bon... AV
Tu as raison, c'est pour ca que le decoupage dans la macro est en fait l'enregistrement de Donnees/Convertir pour le bedut ;-)
-- JLuc
AV avait soumis l'idée :
Oui, mais il veut recuperer tous les champs dans des variables, c'est
pour ca que je lui ai propose une macro.
Ben les "variables", il reste plus qu'à les lire...
L'important n'est pas vraiment là mais plutôt de connaitre la fonctionnalité
"Données > Convertir..." qu'apparemment il ne connait pas...
La 1° ligne de la question est :
"J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
Mais bon...
AV
Tu as raison, c'est pour ca que le decoupage dans la macro est en fait
l'enregistrement de Donnees/Convertir pour le bedut ;-)
Oui, mais il veut recuperer tous les champs dans des variables, c'est pour ca que je lui ai propose une macro.
Ben les "variables", il reste plus qu'à les lire... L'important n'est pas vraiment là mais plutôt de connaitre la fonctionnalité "Données > Convertir..." qu'apparemment il ne connait pas... La 1° ligne de la question est : "J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
Mais bon... AV
Tu as raison, c'est pour ca que le decoupage dans la macro est en fait l'enregistrement de Donnees/Convertir pour le bedut ;-)
-- JLuc
mateo-dev
Finalement voici comment j'ai résolu mon soucy ! ref = "azert:4er:985" refl = Len(ref) For i = 1 To refl If InStr(ref, ":") Then a = Left(ref, InStr(ref, ":") - 1) J = InStr(ref, ":") refl = Len(ref) ref = Right(ref, refl - J) Else i=refl End If Next
Merci de votre aide...
J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
En fait j'ai une collection qui contient différentes valeurs toutes séparées par le caractere ":" Et il me faudrait récupere chaque valeur dans différentes variable sans le caractere ":" Ce que contient ma collection est tout le temps différent mais contient toujours le meme nombre de caractere ":" !
Exemple : Mycollection contient azerty:5:qsdf4:3::dac et il me faudrait dans les variables Myvar1 doit contenir azerty Myvar2 doit contenir 5 Myvar3 doit contenir qsdf4 Myvar4 doit contenir 3 Myvar5 doit contenir rien Myvar6 doit contenir dac
En espérant avoir été clair... Merci d'avance !
Finalement voici comment j'ai résolu mon soucy !
ref = "azert:4er:985"
refl = Len(ref)
For i = 1 To refl
If InStr(ref, ":") Then
a = Left(ref, InStr(ref, ":") - 1)
J = InStr(ref, ":")
refl = Len(ref)
ref = Right(ref, refl - J)
Else
i=refl
End If
Next
Merci de votre aide...
J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
En fait j'ai une collection qui contient différentes valeurs toutes séparées
par le caractere ":"
Et il me faudrait récupere chaque valeur dans différentes variable sans le
caractere ":"
Ce que contient ma collection est tout le temps différent mais contient
toujours le meme nombre de caractere ":" !
Exemple :
Mycollection contient azerty:5:qsdf4:3::dac
et il me faudrait dans les variables
Myvar1 doit contenir azerty
Myvar2 doit contenir 5
Myvar3 doit contenir qsdf4
Myvar4 doit contenir 3
Myvar5 doit contenir rien
Myvar6 doit contenir dac
Finalement voici comment j'ai résolu mon soucy ! ref = "azert:4er:985" refl = Len(ref) For i = 1 To refl If InStr(ref, ":") Then a = Left(ref, InStr(ref, ":") - 1) J = InStr(ref, ":") refl = Len(ref) ref = Right(ref, refl - J) Else i=refl End If Next
Merci de votre aide...
J'aimerais pouvoir couper une chaine de caractere contenant le caractere ":"
En fait j'ai une collection qui contient différentes valeurs toutes séparées par le caractere ":" Et il me faudrait récupere chaque valeur dans différentes variable sans le caractere ":" Ce que contient ma collection est tout le temps différent mais contient toujours le meme nombre de caractere ":" !
Exemple : Mycollection contient azerty:5:qsdf4:3::dac et il me faudrait dans les variables Myvar1 doit contenir azerty Myvar2 doit contenir 5 Myvar3 doit contenir qsdf4 Myvar4 doit contenir 3 Myvar5 doit contenir rien Myvar6 doit contenir dac