Urgent!!

Résolu
inge68
Messages postés
42
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 février 2011
- 23 avril 2008 à 11:44
lolokun
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
- 23 avril 2008 à 17:02
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

zavier666
Messages postés
266
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
30 avril 2009
1
23 avril 2008 à 12:39
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
3
lolokun
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
23 avril 2008 à 15:58
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..
3
inge68
Messages postés
42
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 février 2011

23 avril 2008 à 16:57
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!!
3
lolokun
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
23 avril 2008 à 17:02
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..
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
inge68
Messages postés
42
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 février 2011

23 avril 2008 à 14:28
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
0
inge68
Messages postés
42
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 février 2011

23 avril 2008 à 15:20
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
0