begin process at 2010 02 10 11:01:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

Parser avec Split pour Excel 97


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Parser avec Split pour Excel 97

lundi 12 septembre 2005 à 18:49:21 | Parser avec Split pour Excel 97

Eldros

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.

lundi 12 septembre 2005 à 19:47:12 | Re : Parser avec Split pour Excel 97

Zlub

Membre Club
Réponse acceptée !



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 StringAs 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 ???", " ") 

  For i = 1 To UBound(A) 
    MsgBox A(i) 
  Next i 
End Sub


++

Zlub
lundi 12 septembre 2005 à 23:31:16 | Re : Parser avec Split pour Excel 97

jpleroisse

Bonsoir,
Que veux-tu que fasse ta Macro ???

jpleroisse
lundi 12 septembre 2005 à 23:35:22 | Re : Parser avec Split pour Excel 97

Zlub

Membre Club


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 ...

Voilà, tout simplement,

++

Zlub
mardi 13 septembre 2005 à 10:16:04 | Re : Parser avec Split pour Excel 97

Eldros

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.

Merci beaucoup.



Cette discussion est classée dans : value, cells, parser, split, worksheets


Répondre à ce message

Sujets en rapport avec ce message

Probleme transfert listview vers Excel... [ par florian37 ] Bonjour à tous amis dévelopeur,voici mon prbleme,j'ai une listview qui contiens plusieurs lignes (ca peu varier), je la transfert vers ecxel mais elle Listview vers Excel, petit probleme... URGENT !!! SVP<<<<< [ par florian37 ] Bonjour à tous amis dévelopeur,voici mon prbleme,j'ai une listview qui contiens plusieurs lignes (ca peu varier), je la transfert vers ecxel mais elle Copy/Paste VB en excel - Gros débutant que je suis!!! [ par Gritche ] Bonjour,Je débute en VB sur excel et j'ai un gros problème avec le script qui suit :Public Sub CommandButton1_Click()Dim Resultats As WorksheetDim Tes problème avec .findnext sous VBA [ par jordinette ] REvoici mon code, lorske je le lance au premier find il trouve une seule foi la valeur "composan" ce ki correspond a ce ke jai ds ma colonne. Lors du Graph ss excel via VB6 [ par liliesma ] J'ai fais une appli sous VB6, afin de la compléter et d'enfin la terminée, il ne me reste plus qu'une seule chose à faire.Cette chose c'est faire un h [vb6] excel et vb6 message d'erreur [ par tof008 ] Hello! Petit probleme : j'ouvre excel à partir de vb pour y faire des stats, et en fait, j'utilise le meme procédé en changeant juste ma requete... mo cde combobox [ par vincezo ] Bonjour, voici mon code :Private Sub creation_feuille_Click() Dim Client As StringDim Compte As StringDim Emetteur As StringDim anc_num As StringDim n [vb6 excel] [ par tof008 ] Bonjour à tous! J'espere trouver une âme charitable qui pourra m'aider à résoudre mon problême... A partir de vb6, j'envoie des infos sous excel puis Besoin d'aide d'un expert en optimisation de boucle [ par pier0 ] Bonjour, Voici une bout de code qu'il faut que j'optimise en terme de rapidité: en pratique: la variable lgne_max_OHS sera de l'odre de 1500 et lgne_ Optimisation de code : Accélerer du code [ par pier0 ] Slt, Je viens de terminer un programme (de gestion d'un planning excel) sur VBA composé de plusieurs modules je cherche à l'optimiser (de manière simp


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales