VBA - TextToColumns - Formules [Résolu]

SupraDolph 196 Messages postés samedi 12 janvier 2002Date d'inscription 1 septembre 2008 Dernière intervention - 14 juin 2006 à 09:20 - Dernière réponse : SupraDolph 196 Messages postés samedi 12 janvier 2002Date d'inscription 1 septembre 2008 Dernière intervention
- 14 juin 2006 à 11:01
Bonjour a tous.


J'espere qu'il y a des professionnel d'Excel parmis vous !
J'ai une chaine de charactere (dans une cellule) que je convertie en colonne (a chaque espace).
Fonction : Cells(1, 1).TextToColumns DataType:=xlDelimited, Other:=True, OtherChar:=" ", ConsecutiveDelimiter:=True


Je ne peu pas connaitre a l'avance le nombre de colonne qui seront generees, je ne peu donc pas utiliser la proprietee fieldinfo qui a ma connaissance demande de creer autant d'array que de colonnes.


Cette chaine de caractere peut etre du style :
blablaba -6565-G6565 545451 -5454-5454


Si je la convertie cela me donne:
Colonne 1: blablabla
Colonne 2: NOMBRE?
Colonne 3: 545451
Colonne 4: 0


En fait, les nombres commencant par le signe moins sont concidere comme une formule (avec un signe egal d'ajoute automatiquement ex : "-6565-G6565" devient "=-6565-G6565" d'ou l'erreur)
Ce que je veux c'est conserver le type "texte" dans chacune de mes colonnes et donc qu'Excel ne m'ajoute pas ce signe =.


Merci d'avance


PS : Je suis desole pour les accents, mon clavier ne me permet pas de les mettres.


SupraDolph.
Afficher la suite 

2 réponses

Répondre au sujet
SupraDolph 196 Messages postés samedi 12 janvier 2002Date d'inscription 1 septembre 2008 Dernière intervention - 14 juin 2006 à 11:01
+3
Utile
Merci pour ta reponse 647037 mortalino
J'y avais pense, mais les valeurs devront surement etres reprises.
J'ai toutefois trouve la solution :

Dim Arr() As Integer
ReDim Arr(mavar, 1) 'mavar represente le nombre de colonnes de mon tableau
Dim i As Integer

For i = 0 To Ubound(Arr,1)
    Arr(i, 0) = i + 1
    Arr(i, 1) = 2
Next
    Cells(1, 1).TextToColumns DataType:=xlDelimited, Other:=True, OtherChar:=" ", ConsecutiveDelimiter:=True, FieldInfo:=Arr, TrailingMinusNumbers:=True

J'ai donc reussi a utiliser le FieldInfo sachant que normalement, il s'ecrit :
FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 2), Array(15, 2))

SupraDolph.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SupraDolph
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 14 juin 2006 à 10:21
0
Utile
Salut,

Et en placant une apostrophe juste devant   =>   '

 Ca fonctionne ?













c'est peut-etre comme les zéro (comme les numéros de tel), si t'en met pas, il disparait, si t'en met un, le zéro reste et le'apostrophe n'est pas dans le string.

@++
<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /?><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>  Mortalino 

Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
Commenter la réponse de mortalino

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.