inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 février 2011
-
23 avril 2008 à 11:44
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 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:
zavier666
Messages postés266Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention30 avril 20091 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
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 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..
inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 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!!
inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 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
inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 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