Urgent!! [Résolu]

Signaler
Messages postés
42
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 février 2011
-
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
-
Bonjour tout le monde
Je suis encore debutant en VBA et j'arrive pas a trouvé la solution aidez moi SVP, c'est assez urgent. 
ma cellule est la suivante:





<colgroup>
<col style=\"WIDTH: 60pt\" width=\"80\" />
</colgroup>

----

A80  X24.70,

----

A85 X24.33,

----

A90    X23.69,

----

A95 X22.73,

----

A100   X22.40,

----

A105  X21.99,

----

A110   X21.83,

----

A115X22.63,

----

A120   X23.28


Je voudrais separer les A.. avec les X.. et les mettre chacune dans une colonne comme suite:
 A                  B

<colgroup><col style=\"WIDTH: 60pt\" span=\"2\" width=\"80\" /></colgroup>----
A80  , X24.70, ----
A85 , X24.33, ----
A90    , X23.69, ----
A95, X22.73, ----
A100    , X22.40, ----
A105  , X21.99, ----
A110      , X21.83, ----
A115, X22.63, ----
A120   
, X23.28
Je pense que c'est un probleme relativement simple pour vous!
Merci d'avance.

6 réponses

Messages postés
266
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
30 avril 2009
1
globalement, je procéderai ainsi

=> placer le contenu de la cellule dans une chaine de caractère
=> utiliser split sur le caractère X pour séparer la chaine en deux
=> utiliser la fonction trim pour supprimer les espaces qui servent pas
=> remplir ls deux colonnes

--------------------------------------------------
Toujours + de VB et d'API => APi @ le Loupe
http://apialaloupe.free.fr
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
Bonjour,


Voici une petite aide concernant le foncitonnement de la fonction
split(tu aurais pu trouvé par toi-même en cherchant un peu sur goole) :

Découper une chaîne de caractères :Il arrive que vous deviez traiter une ligne d'un fichier ou
autre source de données, en la découpant en fonction d'un séparateur. Une
fonction VB vous permet de faire cela : Split. Cette fonction s'utilise de
la manière suivante : monTab = Split(maChaine,monSéparateur).

Comme vous pouvez le voir, la fonction Split retroune un tableau
( de base 0 ) qui contient dans chaque case les différents champs de
votre châine.

Un petit exemple pour eclaicir tout ça :

Dim monTab() As String

monTab = Split("Champ1@@@Champ2@@@Champ3","@@@")
Comme résultat vous obtiendrez un tableau à 3 cases (de 0 à
2) avec monTab(0) = "Champ1", monTab(1)="Champ2", monTab(2)="Champ3". Le séparateur
peut être aussi long que vous le souhaitez.

L'expérience, c'est une connerie par jour, mais jamais la même..
Messages postés
42
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 février 2011

Merci lolokun, je comprends mon erreur, mais quand j'ai corrigé j'ai quand meme eu une ptite erreur de compilation : tableau attendu et il me souligne tableau(0)

Dim expression1 As String, expression2 As String, tableau As string
expression1 = Cells(1, 1).Value 'placer le contenu de la cellule ds une variable
expression2 = Trim(expression) 'enlever les espaces
tableau = Split(expression2, "X") 'permet de prendre tt ce qui est avt X
Cells(1, 1).value = tableau(0)
Cells(2, 1).value = tableau(1)

en attendant j'ai reussi bidouiller pour avoir qualque chose qui marche

Dim expression1 As String, expression2 As String
'expression = Cells(83, 1).Value
'lui = Trim(expression)
'Cells(83, 1).Value = Split(lui, "X", -1)
'Cells(83, 2).Value = Right(lui, 6) ' j'utilse Right pour prendre les 6 derniers caracteres donc (X--.--)

Merci pour votre aide, mais j'aimerai bien savoir pourquoi le code avec les tableau ne marche pas!!
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
Ta délaration de tableau n'est pas bonne, il faut mettre les () :
Dim Tab()As String

L'expérience, c'est une connerie par jour, mais jamais la même..
Messages postés
42
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 février 2011

j'ai essaié la fonction split comme suite
expression = Cells(1, 1).Value
Cells(1, 2).Value = Split(expression, "X")
donc j'ai ttou ce qui est avant X qui par dans la cellule 2 par contre comment faire pour recuperer tout ce qui est apres le X
Messages postés
42
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 février 2011

j'ai encore essaié ça

Dim expression1 As String, expression2 As String, no As Long
expression1 = Cells(1, 1).Value 'placer le contenu de la cellule ds une variable
expression2 = Trim(expression) 'enlever les espaces
Cells(1, 1).Value = Split(expression2, "X") 'permet de prendre tt ce qui est avt X

j'ai rajouter c'est 2 lignes mais ca marche pas il connait pas les fonctions cherche et remplacer:
no = cherche(expression2, "X") 'permet d'avoir la position du caractere de X
Cells(1, 2).Value = REMPLACER(expression2, 1, no-1, "") 'remplace les caracteres 1 à "no-1" par ""

aidez moi svp j'ai passez une bonne partie de ma journée la dessus sans solution merci