Récupérer des infos dans des cellules

Récupérer des infos dans des cellules - VB/VBA/VBS - Programmation

Marsh Posté le 01-02-2005 à 20:56:02    

Bonjour,  
 
En fait mon problème est le suivant:
J'ai dans des cellules Excel des informations séparées par des sauts de ligne. Or il faudrait que je récupère ces informations séparemment.
 
Ainsi par exemple, dans une cellule, j'ai:
FR_STOR_0050  
FR_STOR_0051
FR_STOR_0052
FR_STOR_0054  
ce qui apparemment est vu comme cela sous VB:
"FR_STOR_0050 " & Chr(10) & "FR_STOR_0051" & Chr(10) & "FR_STOR_0052"  & Chr(10) & "FR_STOR_0054 "
 
Moi je veux récupérer séparemment FR_STOR_0050, FR_STOR_0051, etc.. pour les placer dans une autre feuille, chacun dans des cellules différentes.
 
Et là, je rame un peu parce que j'ai pas touché VB depuis longtemps.
 
Des idées?  :o  
 
Merci bien en tout cas.  :o  
 
Pinhead

Reply

Marsh Posté le 01-02-2005 à 20:56:02   

Reply

Marsh Posté le 02-02-2005 à 09:20:46    

si l'on reprend ton exemple: on a des informations qui font tjrs 12 caractères et avec 4 info par cellules.
donc en travaillant avec les formules text d'excel tu peux extraire (par exemple=DROITE(GAUCHE(IS7;7);2)) sur 4 colonnes tes informations. Cette démarche sera la même en VBA ainsi que sa rédaction

Reply

Marsh Posté le 02-02-2005 à 11:52:27    

Tu peut aussi prendre toute cette chaine de charactere et rechercher le char(10) (comme délimitateur)
une idée d'algo serais de mémoriser la position du char(10) précédement trouvé et des que tu en rencontre un nouveau tu extrait la chaine concerné.
Voila une ébauche:
 

Citation :

Sub toto()
chaine1 = Cells(1, 1)
ichar10 = 0
j = 1
For i = 1 To Len(chaine1)
If Mid(chaine1, i, 1) = char(10) Then
    Cells(j, 2) = Mid(chaine1, ichar10 + 1, i - 1 - ichar10)
    j = j + 1
    ichar10 = i
End If
Next
Cells(j, 2) = Mid(chaine1, ichar10 + 1, i - 1 - ichar10)
End Sub


PS: modifie le cells(j,2) à ta convenance, dans ton cas l'adresse de la nouvelle feuille. :hello:
 
PS2: on peut faire plus simple et plus propre avec un Do while je pense, mais ça, ça marche. :D


Message édité par MrGant le 02-02-2005 à 12:05:51
Reply

Marsh Posté le 05-03-2005 à 15:46:06    

bah merci pour les réponses  :D  
 
(bon je réponds un peu tard mais j'ai pas pu avant  :o )


---------------
Je ne suis pas sûr de pouvoir manger autant que tu me donnes envie de vomir.
Reply

Marsh Posté le 05-03-2005 à 18:02:52    

bonjour,  
le plus simple c'est peut-être de passer par :
Données / Convertir + Largeur fixe
Pas fatigant, pas besoin de VBA, juste besoin de colonnes vides à droite...
A+


Message édité par galopin01 le 05-03-2005 à 18:04:34
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed