Eldros
Messages postés4Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention13 septembre 2005
-
12 sept. 2005 à 18:49
Eldros
Messages postés4Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention13 septembre 2005
-
13 sept. 2005 à 10:16
J'ai un tableau Excel qui contient une colonnes avec des cellules ayant un contenu sur plusieurs ligne (donc saut à la ligne). Le problème c'est qu'elle ne fait rien, malgré les différent Code Source de la fonction Split adapté pour Office 97 que j'ai essayer, alors je me demande si cela ne viens pas d'ailleurs. Voici le code :
Sub Parser()
Dim i, j, k As Long
j = 0
k = 0
i = 1
While (Worksheets(1).Cells(i, 3).Value <> "")
While (UBound(Split(Worksheets(1).Cells(i, 3), vbCrLf)) <> j)
Worksheets(2).Cells(k, 1).Value = Worksheets(1).Cells(i, 1).Value
Worksheets(2).Cells(k, 2).Value = Worksheets(1).Cells(i, 2).Value
Worksheets(2).Cells(k, 3).Value = Split(Worksheets(1).Cells(i, 3), vbCrLf)(j)
j = j + 1
k = k + 1
Wend
j = 0
i = i + 1
Wend
End Sub
Je suis plus que novice avec VB (et donc VBA), donc soyez indulgent.
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 12 sept. 2005 à 19:47
Salut,
Sauf erreur, il me semble que sous Excel 97, split déconne... Tu peux essayer le code suivant :
Option Explicit
Public Function Parse(sIn As String, sDel As String) As Variant
Dim i As Integer, x As Integer, s As Integer, t As Integer i 1: s 1: t = 1: x = 1
ReDim tArr(1 To x) As Variant
If InStr (1, sIn, sDel) <> 0 Then
Do
ReDim Preserve tArr(1 To x) As Variant
tArr(i) = Mid(sIn, t, InStr(s, sIn, sDel) - t)
t = InStr (s, sIn, sDel) + Len(sDel)
s = t
If tArr(i) <> "" Then i = i + 1
x = x + 1
Loop Until InStr (s, sIn, sDel) = 0
ReDim Preserve tArr(1 To x) As Variant
tArr(i) = Mid (sIn, t, Len(sIn) - t + 1)
Else
tArr(1) = sIn
End If
Parse = tArr
End Function
' Exemple d'utilisation
Private Sub Command1_Click()
Dim A As Variant
Dim i As Integer
i = 1
A = Parse("Salut, comment vas-tu ???", " ")
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 12 sept. 2005 à 23:35
Salut JP Leroise,
B'hein qu'il voit si à la place de split ça fonctionne ou
pas... vu qu'en début de mon dernier post, j'indiquais qu'il me semble
que split a un fonctionnement étrange sous Office 97 ... sauf erreur de
ma part ...
Eldros
Messages postés4Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention13 septembre 2005 13 sept. 2005 à 10:16
Comme je l'ai dit, j'étais au courant que la fonction Split ne fonctionnait pas (elle est inexistante pour ainsi dire) avec Excel 97. Cependant j'ai trouvé des sources sur ce site qui proposais des fonctions similaire à Split. Et malheureusement ça ne donnait rien.
Mais grace à ton code et quelque remaniement sur le mien. Cela marche du tonnerre.