Séparer texte selon le nombre d'éspace avant le texte
20 réponses
Zorojunior
Bonjour,
pourriez vous SVP m'aider sur ce sujet ?
j'ai une colonne qui contient des données en texte mais pas le même type de données, (Classe thérapeutique / produit / fournisseurs / dosage) et pour distinguer chaque type il y a un nombre d’espace avant le texte Ex:
_infectiologie
__Amlodapine
___Sanofi
____comprimé
_____50 mg
"_" = espace
maintenant je veux renvoyer chaque types vers une colonne donc :
le texte après un espace vers la colonne B
le texte après deux espaces vers la colonne C
le texte apres trois espaces vers la colonne D
Bonjour, Ce que j'ai compris de ta question, A ) Dans la même colonne, une liste regroupée par 5 items espacés d'une ligne vide. B ) Tu veux mettre ces données (5 items) sur une même ligne. Adapte le nom de la feuille "Feuil1" et l'adresse de la plage où sont les données. '----------------------------------------------------------- Sub test() Dim Rg As Range, A As Long, Compteur As Long Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("Feuil1") Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With Compteur = 1 For A = 1 To Rg.Rows.Count Step 6 Rg(Compteur).Offset(, 1) = Trim(Rg(A)) Rg(Compteur).Offset(, 2) = Trim(Rg(A).Offset(1)) Rg(Compteur).Offset(, 3) = Trim(Rg(A).Offset(2)) Rg(Compteur).Offset(, 4) = Trim(Rg(A).Offset(3)) Rg(Compteur).Offset(, 5) = Trim(Rg(A).Offset(4)) Compteur = Compteur + 1 Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '----------------------------------------------------------- MichD
Bonjour,
Ce que j'ai compris de ta question,
A ) Dans la même colonne, une liste regroupée par 5 items espacés d'une ligne vide.
B ) Tu veux mettre ces données (5 items) sur une même ligne.
Adapte le nom de la feuille "Feuil1" et l'adresse de la plage où sont les données.
'-----------------------------------------------------------
Sub test()
Dim Rg As Range, A As Long, Compteur As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With
Compteur = 1
For A = 1 To Rg.Rows.Count Step 6
Rg(Compteur).Offset(, 1) = Trim(Rg(A))
Rg(Compteur).Offset(, 2) = Trim(Rg(A).Offset(1))
Rg(Compteur).Offset(, 3) = Trim(Rg(A).Offset(2))
Rg(Compteur).Offset(, 4) = Trim(Rg(A).Offset(3))
Rg(Compteur).Offset(, 5) = Trim(Rg(A).Offset(4))
Compteur = Compteur + 1
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'-----------------------------------------------------------
Bonjour, Ce que j'ai compris de ta question, A ) Dans la même colonne, une liste regroupée par 5 items espacés d'une ligne vide. B ) Tu veux mettre ces données (5 items) sur une même ligne. Adapte le nom de la feuille "Feuil1" et l'adresse de la plage où sont les données. '----------------------------------------------------------- Sub test() Dim Rg As Range, A As Long, Compteur As Long Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("Feuil1") Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With Compteur = 1 For A = 1 To Rg.Rows.Count Step 6 Rg(Compteur).Offset(, 1) = Trim(Rg(A)) Rg(Compteur).Offset(, 2) = Trim(Rg(A).Offset(1)) Rg(Compteur).Offset(, 3) = Trim(Rg(A).Offset(2)) Rg(Compteur).Offset(, 4) = Trim(Rg(A).Offset(3)) Rg(Compteur).Offset(, 5) = Trim(Rg(A).Offset(4)) Compteur = Compteur + 1 Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '----------------------------------------------------------- MichD
zorojunior
Le dimanche 20 Mai 2018 à 15:16 par Zorojunior :
Bonjour, pourriez vous SVP m'aider sur ce sujet ? j'ai une colonne qui contient des données en texte mais pas le même type de données, (Classe thérapeutique / produit / fournisseurs / dosage) et pour distinguer chaque type il y a un nombre d’espace avant le texte Ex: _infectiologie __Amlodapine ___Sanofi ____comprimé _____50 mg "_" = espace maintenant je veux renvoyer chaque types vers une colonne donc : le texte après un espace vers la colonne B le texte après deux espaces vers la colonne C le texte apres trois espaces vers la colonne D d'avance merci
Merci MichD es ce possible que les items gardent la même ligne initiale ?
Le dimanche 20 Mai 2018 à 15:16 par Zorojunior :
> Bonjour,
>
> pourriez vous SVP m'aider sur ce sujet ?
> j'ai une colonne qui contient des données en texte mais pas le
> même type de données, (Classe thérapeutique / produit /
> fournisseurs / dosage) et pour distinguer chaque type il y a un nombre
> d’espace avant le texte Ex:
> _infectiologie
> __Amlodapine
> ___Sanofi
> ____comprimé
> _____50 mg
> "_" = espace
>
> maintenant je veux renvoyer chaque types vers une colonne donc :
> le texte après un espace vers la colonne B
> le texte après deux espaces vers la colonne C
> le texte apres trois espaces vers la colonne D
>
>
> d'avance merci
Merci MichD
es ce possible que les items gardent la même ligne initiale ?
Bonjour, pourriez vous SVP m'aider sur ce sujet ? j'ai une colonne qui contient des données en texte mais pas le même type de données, (Classe thérapeutique / produit / fournisseurs / dosage) et pour distinguer chaque type il y a un nombre d’espace avant le texte Ex: _infectiologie __Amlodapine ___Sanofi ____comprimé _____50 mg "_" = espace maintenant je veux renvoyer chaque types vers une colonne donc : le texte après un espace vers la colonne B le texte après deux espaces vers la colonne C le texte apres trois espaces vers la colonne D d'avance merci
Merci MichD es ce possible que les items gardent la même ligne initiale ?
Michd
Comme ceci : '------------------------------------------ Sub test() Dim Rg As Range, A As Long Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("Feuil1") Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With Compteur = 1 For A = 1 To Rg.Rows.Count Step 6 Rg(A).Offset(, 1) = Trim(Rg(A)) Rg(A).Offset(, 2) = Trim(Rg(A).Offset(1)) Rg(A).Offset(, 3) = Trim(Rg(A).Offset(2)) Rg(A).Offset(, 4) = Trim(Rg(A).Offset(3)) Rg(A).Offset(, 5) = Trim(Rg(A).Offset(4)) Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------
Comme ceci :
'------------------------------------------
Sub test()
Dim Rg As Range, A As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With
Compteur = 1
For A = 1 To Rg.Rows.Count Step 6
Rg(A).Offset(, 1) = Trim(Rg(A))
Rg(A).Offset(, 2) = Trim(Rg(A).Offset(1))
Rg(A).Offset(, 3) = Trim(Rg(A).Offset(2))
Rg(A).Offset(, 4) = Trim(Rg(A).Offset(3))
Rg(A).Offset(, 5) = Trim(Rg(A).Offset(4))
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'------------------------------------------
Comme ceci : '------------------------------------------ Sub test() Dim Rg As Range, A As Long Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("Feuil1") Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With Compteur = 1 For A = 1 To Rg.Rows.Count Step 6 Rg(A).Offset(, 1) = Trim(Rg(A)) Rg(A).Offset(, 2) = Trim(Rg(A).Offset(1)) Rg(A).Offset(, 3) = Trim(Rg(A).Offset(2)) Rg(A).Offset(, 4) = Trim(Rg(A).Offset(3)) Rg(A).Offset(, 5) = Trim(Rg(A).Offset(4)) Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------
zorojunior
Le lundi 21 Mai 2018 à 12:25 par Michd :
Comme ceci : '------------------------------------------ Sub test() Dim Rg As Range, A As Long Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("Feuil1") Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With Compteur = 1 For A = 1 To Rg.Rows.Count Step 6 Rg(A).Offset(, 1) = Trim(Rg(A)) Rg(A).Offset(, 2) = Trim(Rg(A).Offset(1)) Rg(A).Offset(, 3) = Trim(Rg(A).Offset(2)) Rg(A).Offset(, 4) = Trim(Rg(A).Offset(3)) Rg(A).Offset(, 5) = Trim(Rg(A).Offset(4)) Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------
Ainsi la macro met les 06 items dans la même ligne, comment je peut joindre un fichier excel example pour bien expliquer le but d'avance merci
Le lundi 21 Mai 2018 à 12:25 par Michd :
> Comme ceci :
>
> '------------------------------------------
> Sub test()
> Dim Rg As Range, A As Long
>
> Application.ScreenUpdating = False
> Application.EnableEvents = False
> With Worksheets("Feuil1")
> Set Rg = .Range("A1:A" & .Range("A" &
> .Rows.Count).End(xlUp).Row)
> End With
> Compteur = 1
> For A = 1 To Rg.Rows.Count Step 6
> Rg(A).Offset(, 1) = Trim(Rg(A))
> Rg(A).Offset(, 2) = Trim(Rg(A).Offset(1))
> Rg(A).Offset(, 3) = Trim(Rg(A).Offset(2))
> Rg(A).Offset(, 4) = Trim(Rg(A).Offset(3))
> Rg(A).Offset(, 5) = Trim(Rg(A).Offset(4))
> Next
> Application.ScreenUpdating = True
> Application.EnableEvents = True
>
> End Sub
> '------------------------------------------
Ainsi la macro met les 06 items dans la même ligne,
comment je peut joindre un fichier excel example pour bien expliquer le but
d'avance merci
Comme ceci : '------------------------------------------ Sub test() Dim Rg As Range, A As Long Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("Feuil1") Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row) End With Compteur = 1 For A = 1 To Rg.Rows.Count Step 6 Rg(A).Offset(, 1) = Trim(Rg(A)) Rg(A).Offset(, 2) = Trim(Rg(A).Offset(1)) Rg(A).Offset(, 3) = Trim(Rg(A).Offset(2)) Rg(A).Offset(, 4) = Trim(Rg(A).Offset(3)) Rg(A).Offset(, 5) = Trim(Rg(A).Offset(4)) Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------
Ainsi la macro met les 06 items dans la même ligne, comment je peut joindre un fichier excel example pour bien expliquer le but d'avance merci
Michd
Utilise le cite web "Cjoint.com". Tu vas obtenir une adresse que tu nous retournes ici. MichD
Utilise le cite web "Cjoint.com". Tu vas obtenir une adresse que tu nous retournes ici.
Utilise le cite web "Cjoint.com". Tu vas obtenir une adresse que tu nous retournes ici. MichD
zorojunior
Le lundi 21 Mai 2018 à 13:13 par Michd :
Utilise le cite web "Cjoint.com". Tu vas obtenir une adresse que tu nous retournes ici. MichD
https://www.cjoint.com/c/HEvmwjAjOFE j'espére que l'objectif est réalisable great thank to you MichD
Le lundi 21 Mai 2018 à 13:13 par Michd :
> Utilise le cite web "Cjoint.com". Tu vas obtenir une adresse que tu
> nous retournes ici.
>
> MichD
https://www.cjoint.com/c/HEvmwjAjOFE
j'espére que l'objectif est réalisable
great thank to you MichD
Utilise le cite web "Cjoint.com". Tu vas obtenir une adresse que tu nous retournes ici. MichD
https://www.cjoint.com/c/HEvmwjAjOFE j'espére que l'objectif est réalisable great thank to you MichD
Michd
Qu'est ce que tu veux, passer de la feuille "Initial" au résultat "Objectif final" ? Est-ce suffisant? As-tu besoin des feuilles "objectif 1-2", "Objectif 2-2" ? MichD
Qu'est ce que tu veux, passer de la feuille "Initial" au résultat "Objectif final" ? Est-ce
suffisant?
As-tu besoin des feuilles "objectif 1-2", "Objectif 2-2" ?
Qu'est ce que tu veux, passer de la feuille "Initial" au résultat "Objectif final" ? Est-ce suffisant? As-tu besoin des feuilles "objectif 1-2", "Objectif 2-2" ? MichD
zorojunior
Le lundi 21 Mai 2018 à 15:42 par Michd :
Qu'est ce que tu veux, passer de la feuille "Initial" au résultat "Objectif final" ? Est-ce suffisant? As-tu besoin des feuilles "objectif 1-2", "Objectif 2-2" ? MichD
Oui passer de l'initial vers l'objectif finale, objectif 1 et 2 c'était juste pour expliquer comment j'ai attérri, le fichier de base contient 31 000 ligne, l'objectif de cette exercice est d'exploiter le fichier en croisé dynamique. Great thank to you for your precious help
Le lundi 21 Mai 2018 à 15:42 par Michd :
> Qu'est ce que tu veux, passer de la feuille "Initial" au
> résultat "Objectif final" ? Est-ce
> suffisant?
>
> As-tu besoin des feuilles "objectif 1-2", "Objectif 2-2" ?
>
> MichD
Oui passer de l'initial vers l'objectif finale,
objectif 1 et 2 c'était juste pour expliquer comment j'ai attérri,
le fichier de base contient 31 000 ligne,
l'objectif de cette exercice est d'exploiter le fichier en croisé dynamique.
Great thank to you for your precious help
Qu'est ce que tu veux, passer de la feuille "Initial" au résultat "Objectif final" ? Est-ce suffisant? As-tu besoin des feuilles "objectif 1-2", "Objectif 2-2" ? MichD
Oui passer de l'initial vers l'objectif finale, objectif 1 et 2 c'était juste pour expliquer comment j'ai attérri, le fichier de base contient 31 000 ligne, l'objectif de cette exercice est d'exploiter le fichier en croisé dynamique. Great thank to you for your precious help
Michd
Même fichier au format .xls https://www.cjoint.com/c/HEvtugSx81i MichD
Même fichier au format .xls
https://www.cjoint.com/c/HEvtugSx81i
Même fichier au format .xls https://www.cjoint.com/c/HEvtugSx81i MichD
Michd
Bonjour, J'ai fait un petit fichier à partir du tien à titre d'exemple, format xlsm https://www.cjoint.com/c/HEvtnfbQGoi Attention, dans mon application, la feuille de "Résultat" s'appelle "Résultat" et non "objectif final". En fait, tu peux lui donner le nom que tu désires... mais il faudra faire quelques substitutions dans le code. J'espère que les 31000 lignes respectent scrupuleusement la présentation de fichier exemple. MichD
Bonjour,
J'ai fait un petit fichier à partir du tien à titre d'exemple, format xlsm
https://www.cjoint.com/c/HEvtnfbQGoi
Attention, dans mon application, la feuille de "Résultat" s'appelle "Résultat" et non "objectif
final". En fait, tu peux lui donner le nom que tu désires... mais il faudra faire quelques
substitutions dans le code.
J'espère que les 31000 lignes respectent scrupuleusement la présentation de fichier exemple.
Bonjour, J'ai fait un petit fichier à partir du tien à titre d'exemple, format xlsm https://www.cjoint.com/c/HEvtnfbQGoi Attention, dans mon application, la feuille de "Résultat" s'appelle "Résultat" et non "objectif final". En fait, tu peux lui donner le nom que tu désires... mais il faudra faire quelques substitutions dans le code. J'espère que les 31000 lignes respectent scrupuleusement la présentation de fichier exemple. MichD