Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1536 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Convertir des données en VBA vers Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Convertir des données en VBA vers Excel

n°755766
gourdin
Posté le 08-06-2004 à 09:06:39  profilanswer
 

Hello TLM. J'aimerais copier une zone de texte d'une appli VBA et coller le tout dans excel et convertir le tout pour qu'il me mette ce qu'il y a entre les apostrophes dans des colonnes distinctes (cf en dessous)
 
ce que je dois copier : '250'0.35896'0.5478'1523
 
Je dois donc envoyer cette trame vers excel et séparer les chiffres entres les "'". G essayé avec une fonction "texttocolumns" mais ca veut pas.
Si quelqu'un veut bien m'aider je lui en serais vraiment reconnaissant :-)
 
@ + sur le forum.

mood
Publicité
Posté le 08-06-2004 à 09:06:39  profilanswer
 

n°755931
tegu
Posté le 08-06-2004 à 10:34:53  profilanswer
 

je pense qu'il te faut regarder du côté de Split() pour transformer ta chaine en tableau d'éléments
Il te restera à boucler sur ce tableau pour remplir les cellules des colonnes

n°755966
JihemAir
Je sais pas
Posté le 08-06-2004 à 10:57:37  profilanswer
 

Vite fait, à la bourrin...

Code :
  1. Sub Extract_Nb()
  2. Dim strChaine As String, strProv As String
  3. Dim iPos As Integer
  4.    
  5.     strChaine = "'250'0.35896'0.5478'1523"
  6.     ' On vire la 1ere quote
  7.     strChaine = Mid(strChaine, 2, Len(strChaine) - 1)
  8.     ' On cherche la quote suivante
  9.     iPos = InStr(1, strChaine, "'", vbTextCompare)
  10.    
  11.     Do While iPos > 0
  12.         ' On extrait le nombre
  13.         strProv = Mid(strChaine, 1, iPos - 1)
  14.         Debug.Print strProv
  15.         ' On cherche la quote suivante
  16.         iPos = InStr(1, strChaine, "'", vbTextCompare)
  17.         If iPos > 0 Then
  18.             ' On supprime le nb trouvé de dans la chaine
  19.             strChaine = Mid(strChaine, iPos + 1, Len(strChaine) - iPos)
  20.             iPos = InStr(1, strChaine, "'", vbTextCompare)
  21.         End If
  22.     Loop
  23.    
  24.     strProv = strChaine
  25.     Debug.Print strProv
  26. End Sub

n°756041
destynov@
Posté le 08-06-2004 à 11:26:28  profilanswer
 

Salut =)
je viens de tester la fonction Split(), et sérieux c'est gavé + simple!!!

Code :
  1. Sub Extract()
  2.    dim n as string
  3.    dim valeurs
  4.    n='250'0.35896'0.5478'1523
  5.    valeurs=Split(n,"'" )
  6. 'valeurs(0)="" car il ne prend pas entre les "'" mais à chaque fois
  7.    cells(x,y).value = valeurs(1)
  8. '...
  9. End Sub


 
Merci tegu pour cette fonction =)

n°756068
JihemAir
Je sais pas
Posté le 08-06-2004 à 11:37:12  profilanswer
 

Oui, c'est une chouette fonction mais je ne suis pas sûr qu'elle existe en VB Excel

n°756091
destynov@
Posté le 08-06-2004 à 11:43:49  profilanswer
 

si si carrément, je suis sur Excel. de ttes façons je n'utilise jms le VB pr les appli. vive le C++! ;)

n°756119
JihemAir
Je sais pas
Posté le 08-06-2004 à 11:51:30  profilanswer
 

destynov@ a écrit :

si si carrément, je suis sur Excel. de ttes façons je n'utilise jms le VB pr les appli. vive le C++! ;)

Ben mrd alors, ça marche pas chez moi :(  
Faut que je vois ça !!

n°756212
destynov@
Posté le 08-06-2004 à 12:18:06  profilanswer
 

JihemAir a écrit :

Ben mrd alors, ça marche pas chez moi :(  
Faut que je vois ça !!


 
si tu tapes le nom de la fonction puis tu fais "F1", il ne la trouve pas? et en + je travaille sur Office 2000, qui inclut moins de fonctions et fonctionnalités (évidemment =)) que les dernières.

n°756401
JihemAir
Je sais pas
Posté le 08-06-2004 à 13:55:34  profilanswer
 

Je l'ai sous VB6, pas sous Office 97. J'ai un Split, mais c'est pour diviser la fenêtre.

n°756417
destynov@
Posté le 08-06-2004 à 14:01:44  profilanswer
 

c chiant ça! le pire, c'est quand tu développes en VBA sur un office, puis tu mets le document sur une autre version d'office qui n'a pas les fonctions! ça m'était arrivé pour la protection des feuilles où des paramètres n'existait pas sous 97. obligé de passer par une autre méthode. bref c'était pas le but du topic, je pense qu'on quand même répondu à la question =)

mood
Publicité
Posté le 08-06-2004 à 14:01:44  profilanswer
 

n°756429
JihemAir
Je sais pas
Posté le 08-06-2004 à 14:05:08  profilanswer
 

Affirmatif.

n°757523
tegu
Posté le 09-06-2004 à 10:12:29  profilanswer
 

Split() a été introduit avec VB6 et n'est pas disponible sous Office97.
 
Voici une fonction pour reproduire Split() sous Excel97
Je l'ai retrouvé dans mes archives, elle est vieille et peut sans doute être améliorée.
 


Function sSplit(ByVal expression As String, find As String) As Variant
    Dim i As Variant, j As Integer, k As Integer
    Dim result() As Variant
    j = 1
    i = InStr(j, expression, find)
    If i = 0 Then
        ReDim result(0)
        result(0) = expression
        sSplit = result
        Exit Function
    End If
    While i <> 0
        ReDim Preserve result(0 To k + 1)
        result(k) = Mid(expression, j, i - j)
        k = k + 1
        j = i + Len(find)
        i = InStr(j, expression, find)
    Wend
    If k > 0 Then   'le dernier
        ReDim Preserve result(0 To k)
        result(k) = Mid(expression, j, Len(expression) - (j - Len(find)))
    End If
    sSplit = result
End Function


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Convertir des données en VBA vers Excel

 

Sujets relatifs
recuperer les donnees de in dans : ./foo < inASP et Base de données Access avec Front Page
Quelle base de données pour quel usage ?[excel]
[VBA] afficher mes données excel dans une listboxTomcat Définir le chemin d'une src de données sans utiliser server.xml
VBA activeworkbook.sendmail avec netscape comme messageire par defautEquivalent du type FLOAT en vba excel
Plus de sujets relatifs à : Convertir des données en VBA vers Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR