Extraction/distribution de nombres

axemanjc

XLDnaute Nouveau
Bonjour,

j'ai cette chaîne de caractére suivant dans la cellue A1
12;27;xy;35;42;1;2;3;4;5;6;7;555;333;5;888;777;444

il y a une chaîne par ligne
je souhaite extraire certain nombres de cette chaîne pour envoyer chaque nombre extrait vers une cellule spécifique dans une la même ligne.

un exemple pour être plus précis:
-soit une chaîne de caractéres dans A1:
12;27;xy;35;42;1;2;3;4;5;6;7;555;333;5;888;777;444

-les nombres à extraire sont:
35;42;1;2;3;4;5;6;7

- extraire chaque nombre vers une cellule particuliére:
35 va dans B1
42 va dans C1
1 va dans D1
etc...

Y'a t-il une programmation pour y parvenir?
Merci beaucoup ;) ;)
axemanjc

Message édité par: axemanjc, à: 12/07/2005 10:53
 

Hervé

XLDnaute Barbatruc
Bonjour jepi, axemanjc; le forum

Le code ci-dessous 'segmente' la valeur de A1 et renvoi chaque tronçonen ligne 1 :

Sub Bouton1_QuandClic()
Dim tablo As Variant
Dim i As Integer

'crée un tableau des valeurs de A1 délimité par un ;
tablo = Split(Range('a1'), ';')
'pour i de 0 jusqu'a la borne supérieure du tablo
For i = 0 To UBound(tablo)
'sur la ligne 1 de b à ??? place l'élément i du tablo
Cells(1, i + 2) = tablo(i)
Next i

End Sub


La méthode split ne fonctionne pas avec xl 97.

Tu nous dis pas comment son choisis les segments à renvoyer ?

salut
 

DDalmont

XLDnaute Junior
Bonjour axemanjc

Une autre façon de faire

les données sont extraites feuil2

Cordialement [file name=trii.zip size=10692]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/trii.zip[/file]
 

Pièces jointes

  • trii.zip
    10.4 KB · Affichages: 21

axemanjc

XLDnaute Nouveau
Bonjour à tous :)
Tout d'abord, merci pour vos réponses!
As-tu fait une recherche sur le mot \\'Extraire\\' ? il y a une quantité importante de fils qui traitent ton sujet.
je sais, mais je ne sais absolument pas comment adapter ça à mon cas particulier...(je suis débutant)

Merci RV! comment inclure ton code? dans une cellule?....

Ddalmont:
c'est pas mal...mais l'extraction se fait sur une même colonne.je souhaite que àa se fasse sur une même ligne (j'ai peut être pas été assez précis dans message-pardon)

je reprend mon exemple:
1-soit une chaîne de caractéres dans A1:
12;27;xy;35;42;1;2;3;4;5;6;7;555;333;5;888;777;444

2-les nombres à extraire sont:
35;42;1;2;3;4;5;6;7 (il y a toujours trois caractéres et 3 points-virgule avant les nombres à extraire - ici dans mon exemple il s'agit de 12 27 xy et les 3 points-virgule))

3- extraire chaque nombre vers une cellule particuliére sur une même ligne (sans les points-virgules):
35 va dans B1 de la ligne 1
42 va dans C1 de la ligne 1
1 va dans D1 de la ligne 1
etc...

Voila ;)

en attendant n'hésitez pas à apporter d'autres conseils
Merci ;)

Message édité par: axemanjc, à: 12/07/2005 18:31

Message édité par: axemanjc, à: 12/07/2005 18:33
 

axemanjc

XLDnaute Nouveau
SLT
j'ai trouvé la solution exacte à mon cas. je vous la donne si vous en avez besoin un jour:
Code:
Sub nombre_dans_chaine()
Dim TabExpr As Variant
Dim Ligne As Long, Mot As Long
      For Ligne = 1 To Range('A65536').End(xlUp).Row              'Pour chaque ligne
      TabExpr = Split(Cells(Ligne, 1).Value, ';', -1)             'Sépare les mots
            For Mot = 3 To 11                                     'Pour chaque mot
                  Cells(Ligne, Mot - 1).Value = TabExpr(Mot)      'MAJ colonne B
            Next Mot
      Next Ligne
End Sub
Merci bc p pour votre aide ;)
 

Tibo

XLDnaute Barbatruc
Salut axemanjc,

Il em semble que la fonction Convertir (menu Données) correspond à ta demande.

Sélectionne ta ou tes cellules (en colonne), Données / Convertir / Délimité /Suivant / cocher Point-virgule /

tu peux alors indiquer Non distribué si tu ne veux pas de certaines colonnes

et enfin, clique sur Terminer.

Bonne journée.
 

Tibo

XLDnaute Barbatruc
Salut axemanjc,

Il em semble que la fonction Convertir (menu Données) correspond à ta demande.

Sélectionne ta ou tes cellules (en colonne), Données / Convertir / Délimité /Suivant / cocher Point-virgule /

tu peux alors indiquer Non distribué si tu ne veux pas de certaines colonnes

et enfin, clique sur Terminer.

Bonne journée.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz