Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fichier texte : nombre en texte

4 réponses
Avatar
Ritalou
Bonsoir à vous tous
Dans un fichier "RubFam.txt" j'ai les données sous la forme
1010_Famille Brut
1011_Famille Ceramique
Etc ..
Si je lance la macro si dessous alors MeVal = 1010
Ce que j'aimerais avoir, MeVal = 1010_Famille Brut
Existe t-il une solution autre que la mienne qui consiste a ajouter
un texte devant (cad ---> x1010_Famille Brut)
J'ai bien compris que c'est a cause du nombre 1010
mais je prefere garder cette forme (1010_Famille Brut)
P'tite precision, cette macro me sert aussi a mettre ce fichier texte comme
liste d'une combobox
et dans ma combobox c'est la meme chose et donc ca ne me vas pas
Merci d'avance pour vos reponses
Ritalou
Excel2000-Win2000

Sub AjoutVal()
Dim MeVal
Dim MeFich: MeFich = "C:\Rubriques\RubFam.txt"
Open MeFich For Input As #1 'Ouvrir le fichier en lecture.
Do While Not EOF(1) 'Boucle sur chaque elements
Input #1, MeVal ' Lit les données
Combobox1.AddItem MeVal 'Ajouter les données dans la ComboBox
Loop 'Fin de boucle
Close #1 'Fermer le fichier
End Sub

4 réponses

Avatar
YannX
Bnsr,

Juste avant d'aller dormir......
regarde du coté des formats personnalisés
Cet outil permet d'inserer un nombre au sein d'un masque
textuel, voire dans plusieurs selon que le nombre est positif;nul;
négatif;non-numérique.

Mais je n'ai pas essayé de le gérer par macro (ou je ne m'en souviens plus
!)
@+

PS attends, excuse, j'ai peut-etre repondu complètement a-coté !
Ton problème est de lire le ficheir texte :
Dans un post de ce soi, on explicitait comment importer
un fichier csv avec Convertir (et bien sur passer par l'enrregistreur de
macros)
Fichier / ouvrir

Voila ce que me donne un exemple :
Workbooks.OpenText Filename:= _
"DriveIconsXP.txt", Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlFixedWidth,
FieldInfo:=Array(Array(0, 2) _
, Array(14, 2), Array(34, 1)), TrailingMinusNumbers:=True
En forcant les zones en mode texte
------------------------------------------------------------ci-dessous
résultat de l'aide excel ....
Bonne Nuit
OpenText, méthode
Voir aussiS'applique àExempleDétails
Cette méthode ouvre et redistribue un fichier texte sous la forme d'un
nouveau classeur ne comportant qu'une seule feuille dans laquelle se
trouvent les données du fichier texte distribuées.

expression.OpenText(FileName, Origin, StartRow, DataType, TextQualifier,
ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar,
FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator,
TrailingMinusNumbers, Local)

expression Obligatoire. Expression qui renvoie un des objets
répertoriés dans la liste S'applique à.

FileName Argument de type String obligatoire. Indique le nom du fichier
texte à ouvrir et à distribuer.

Origin Argument de type Variant facultatif. Indique l'origine du
fichier texte. Il peut s'agir de l'une des constantes XlPlatform suivantes :
xlMacintosh, xlWindows ou xlMSDOS. Il pourrait aussi s'agir d'un entier
représentant le numéro de page de code du page de code souhaité. Par
exemple, « 1256 » attribue au fichier texte source le codage Arabe
(Windows). Si vous ne spécifiez pas cet argument, la méthode utilise les
paramètres en cours de l'option File Origin dans le Text Import Wizard.

StartRow Argument de type Variant facultatif. Numéro de la ligne à
laquelle commencer la distribution du texte. La valeur par défaut est 1.

DataType Argument de type Variant facultatif. Indique le format de la
colonne des données dans le fichier. Il peut s'agir de l'une des constantes
XlTextParsingType suivantes : xlDelimited ou xlFixedWidth. Si vous ne
spécifiez pas cet argument, Microsoft Excel tente de déterminer le format de
colonne à l'ouverture du fichier.

TextQualifier Argument XlTextQualifier facultatif. Spécifie le
qualificateur de texte.

XlTextQualifier peut être l'une de ces constantes XlTextQualifier.
xlTextQualifierDoubleQuote par défaut
xlTextQualifierNone
xlTextQualifierSingleQuote

ConsecutiveDelimiter Argument de type Variant facultatif. Affectez-lui
la valeur True pour que plusieurs séparateurs consécutifs soient considérés
comme un seul séparateur. La valeur par défaut est False.

Tab Argument de type Variant facultatif. Affectez-lui la valeur True
pour que le séparateur soit le caractère de tabulation (DataType doit avoir
la valeur xlDelimited). La valeur par défaut est False.

Semicolon Argument de type Variant facultatif. Affectez-lui la valeur
True pour que le séparateur soit le caractère deux-points (DataType doit
avoir la valeur xlDelimited). La valeur par défaut est False.

Comma Argument de type Variant facultatif. Affectez-lui la valeur True
pour que le séparateur soit la virgule (DataType doit avoir la valeur
xlDelimited). La valeur par défaut est False.

Space Argument de type Variant facultatif. Affectez-lui la valeur True
pour que le séparateur soit un espace (DataType doit avoir la valeur
xlDelimited). La valeur par défaut est False.

Other Argument de type Variant facultatif. Affectez-lui la valeur True
pour que le séparateur soit le caractère spécifié par l'argument OtherChar
(DataType doit avoir la valeur xlDelimited). La valeur par défaut est False.

OtherChar Argument de type Variant facultatif (obligatoire si Other a la
valeur True). Indique le caractère séparateur lorsque l'argument Other a la
valeur True. Si plusieurs caractères sont spécifiés, seul le premier
caractère de la chaîne est utilisé ; les autres caractères sont ignorés.

FieldInfo Argument xlColumnDataType facultatif. Tableau contenant des
informations de distribution pour des colonnes de données individuelles.
L'interprétation dépend de la valeur de DataType. Lorsque les données sont
séparées, cet argument est un tableau de tableaux à deux éléments, qui
indiquent les options de conversion pour une colonne particulière. Le
premier élément est le numéro de la colonne (base 1) et le deuxième élément
est l'une des constantes XlColumnDataType indiquant comment la colonne est
distribuée.

XlColumnDataType peut être l'une de ces constantes XlColumnDataType.
xlGeneralFormat Général
xlTextFormat Texte
xlMDYFormat Format de date Mois-Jour-Année

xlDMYFormat Format de date Jour-Mois-Année

xlYMDFormat Format de date Année-Mois-Jour

xlMYDFormat Format de date Mois-Année-Jour

xlDYMFormat Format de date Jour-Année-Mois

xlYDMFormat Format de date Année-Jour-Mois

xlEMDFormat Date EMD

xlSkipColumn Non distribuée


Vous pouvez utiliser la constante xlEMDFormat uniquement si vous avez
installé et sélectionné la prise en charge du chinois (Taïwan). La constante
xlEMDFormat spécifie que les dates d'ères chinoises (Taïwan) sont utilisées.

L'ordre des éléments de colonne peut être quelconque. S'il manque un élément
pour une colonne donnée dans les données d'entrée, la colonne est
redistribuée sur la base du paramètre Standard.

Remarques

a.. Si vous spécifiez qu'une colonne doit être passée, vous devez déclarer
de manière explicite le type de toutes les autres colonnes, sinon les
données ne seront pas redistribuées correctement.
b.. Si les données contiennent une date reconnaissable, la cellule sera
mise en forme comme une date dans la feuille de calcul même si le paramètre
défini pour la colonne est General. De plus, si vous spécifiez un des
formats de date susmentionnés pour une colonne et que les données de
celle-ci ne contiennent aucune date reconnue, le format de cellule dans la
feuille de calcul sera défini sur General.
L'exemple suivant montre comment redistribuer la troisième colonne sous le
format MJA (par exemple 01/10/1970), comment redistribuer la première
colonne sous la forme de texte et les autres colonnes de données sources sur
la base du paramètre Standard.

Array(Array(3, 3), Array(1, 2))
Si les données sources possèdent des colonnes de largeur fixe, le premier
élément de chaque tableau à deux éléments spécifie la position du premier
caractère dans la colonne (sous la forme d'un nombre entier, le caractère
zéro étant le premier caractère). Le deuxième élément du tableau à deux
éléments spécifie l'option de redistribution pour la colonne sous la forme
d'un nombre compris entre 0 et 9, comme indiqué dans le tableau précédent.

TextVisualLayout Argument de type Variant facultatif. Mise en page
visuelle du texte.

DecimalSeparator Argument de type Variant facultatif. Séparateur
décimal que Microsoft Excel utilise lorsqu'il reconnaît des nombres. Les
paramètres par défaut sont les paramètres système.

ThousandsSeparator Argument de type Variant facultatif. Séparateur de
milliers qu'Excel utilise lorsqu'il reconnaît des nombres. Les paramètres
par défaut sont les paramètres système.

Le tableau suivant contient les résultats de l'importation de texte dans
Excel pour divers paramètres d'importation. Les résultats numériques sont
affichés dans la colonne la plus à droite.

Séparateur décimal du système Séparateur des milliers du système
Valeur de séparateur décimal Valeur de séparateur des milliers Texte importé
Valeur de la cellule (type de données)
Point Virgule Virgule Point 123.123,45 123,123.45 (numérique)
Point Virgule Virgule Virgule 123.123,45 123.123,45 (texte)
Virgule Point Point Virgule 123.123,45 123,123.45 (numérique)
Point Virgule Point Virgule 123.123,45 123 123.45 (texte)
Point Virgule Point Espace 123.123,45 123,123.45 (numérique)

TrailingMinusNumbers Argument de type Variant facultatif.

Local Argument de type Variant facultatif.

Exemple
Cet exemple montre comment ouvrir le fichier Data.txt et utiliser les
tabulations comme séparateurs pour redistribuer ce fichier texte dans une
feuille de calcul.

Workbooks.OpenText filename:="DATA.TXT", _
dataType:=xlDelimited, tab:=True

"Ritalou" a écrit dans le message de
news:
Bonsoir à vous tous
Dans un fichier "RubFam.txt" j'ai les données sous la forme
1010_Famille Brut
1011_Famille Ceramique
Etc ..
Si je lance la macro si dessous alors MeVal = 1010
Ce que j'aimerais avoir, MeVal = 1010_Famille Brut
Existe t-il une solution autre que la mienne qui consiste a ajouter
un texte devant (cad ---> x1010_Famille Brut)
J'ai bien compris que c'est a cause du nombre 1010
mais je prefere garder cette forme (1010_Famille Brut)
P'tite precision, cette macro me sert aussi a mettre ce fichier texte
comme

liste d'une combobox
et dans ma combobox c'est la meme chose et donc ca ne me vas pas
Merci d'avance pour vos reponses
Ritalou
Excel2000-Win2000

Sub AjoutVal()
Dim MeVal
Dim MeFich: MeFich = "C:RubriquesRubFam.txt"
Open MeFich For Input As #1 'Ouvrir le fichier en lecture.
Do While Not EOF(1) 'Boucle sur chaque elements
Input #1, MeVal ' Lit les données
Combobox1.AddItem MeVal 'Ajouter les données dans la ComboBox
Loop 'Fin de boucle
Close #1 'Fermer le fichier
End Sub





Avatar
michdenis
Bonsoir Ritalou,

Essaie ceci :

J'ai pris pour acquis que ton combobox était situé dans la Feuil3 de ton classeur. à adapter !

'----------------------------
Sub AjoutVal()

Dim Fs As Object, F As Object
Dim Fichier As String

Fichier = "C:RubriquesRubFam.txt"

If Dir(Fichier) <> "" Then
Set Fs = CreateObject("Scripting.FileSystemObject")
Set F = Fs.OpenTextFile(Fichier)
Feuil3.ComboBox1.Clear
While Not F.AtEndOfStream
Feuil3.ComboBox1.AddItem F.ReadLine
Wend
F.Close
Else
MsgBox "Fichier introuvable"
End If
End Sub
'----------------------------


Salutations!



"Ritalou" a écrit dans le message de news:
Bonsoir à vous tous
Dans un fichier "RubFam.txt" j'ai les données sous la forme
1010_Famille Brut
1011_Famille Ceramique
Etc ..
Si je lance la macro si dessous alors MeVal = 1010
Ce que j'aimerais avoir, MeVal = 1010_Famille Brut
Existe t-il une solution autre que la mienne qui consiste a ajouter
un texte devant (cad ---> x1010_Famille Brut)
J'ai bien compris que c'est a cause du nombre 1010
mais je prefere garder cette forme (1010_Famille Brut)
P'tite precision, cette macro me sert aussi a mettre ce fichier texte comme
liste d'une combobox
et dans ma combobox c'est la meme chose et donc ca ne me vas pas
Merci d'avance pour vos reponses
Ritalou
Excel2000-Win2000

Sub AjoutVal()
Dim MeVal
Dim MeFich: MeFich = "C:RubriquesRubFam.txt"
Open MeFich For Input As #1 'Ouvrir le fichier en lecture.
Do While Not EOF(1) 'Boucle sur chaque elements
Input #1, MeVal ' Lit les données
Combobox1.AddItem MeVal 'Ajouter les données dans la ComboBox
Loop 'Fin de boucle
Close #1 'Fermer le fichier
End Sub
Avatar
Ritalou
YanX, michdenis
Merci pour vos reponses
desolé YanX mais ce que je cherche est exactement la reponse de michdenis
à+ Ritalou


"Ritalou" a écrit dans le message news:

Bonsoir à vous tous
Dans un fichier "RubFam.txt" j'ai les données sous la forme
1010_Famille Brut
1011_Famille Ceramique
Etc ..
Si je lance la macro si dessous alors MeVal = 1010
Ce que j'aimerais avoir, MeVal = 1010_Famille Brut
Existe t-il une solution autre que la mienne qui consiste a ajouter
un texte devant (cad ---> x1010_Famille Brut)
J'ai bien compris que c'est a cause du nombre 1010
mais je prefere garder cette forme (1010_Famille Brut)
P'tite precision, cette macro me sert aussi a mettre ce fichier texte
comme

liste d'une combobox
et dans ma combobox c'est la meme chose et donc ca ne me vas pas
Merci d'avance pour vos reponses
Ritalou
Excel2000-Win2000

Sub AjoutVal()
Dim MeVal
Dim MeFich: MeFich = "C:RubriquesRubFam.txt"
Open MeFich For Input As #1 'Ouvrir le fichier en lecture.
Do While Not EOF(1) 'Boucle sur chaque elements
Input #1, MeVal ' Lit les données
Combobox1.AddItem MeVal 'Ajouter les données dans la ComboBox
Loop 'Fin de boucle
Close #1 'Fermer le fichier
End Sub





Avatar
YannX
Bonjour Ritalou,

Merci d'avoir confirmé au groupe [résolu]
et je suis particulièrement sensible à ton message personnalisé !
j'apprends tout autant en lisant les autres reponses que la mienne !
je sais que je ne sais pas.....

@+ avec plaisir
YannX

"Ritalou" a écrit dans le message de
news:%
YanX, michdenis
Merci pour vos reponses
desolé YanX mais ce que je cherche est exactement la reponse de michdenis
à+ Ritalou


"Ritalou" a écrit dans le message news:

Bonsoir à vous tous
Dans un fichier "RubFam.txt" j'ai les données sous la forme
1010_Famille Brut
1011_Famille Ceramique
Etc ..
Si je lance la macro si dessous alors MeVal = 1010
Ce que j'aimerais avoir, MeVal = 1010_Famille Brut
Existe t-il une solution autre que la mienne qui consiste a ajouter
un texte devant (cad ---> x1010_Famille Brut)
J'ai bien compris que c'est a cause du nombre 1010
mais je prefere garder cette forme (1010_Famille Brut)
P'tite precision, cette macro me sert aussi a mettre ce fichier texte
comme

liste d'une combobox
et dans ma combobox c'est la meme chose et donc ca ne me vas pas
Merci d'avance pour vos reponses
Ritalou
Excel2000-Win2000

Sub AjoutVal()
Dim MeVal
Dim MeFich: MeFich = "C:RubriquesRubFam.txt"
Open MeFich For Input As #1 'Ouvrir le fichier en lecture.
Do While Not EOF(1) 'Boucle sur chaque elements
Input #1, MeVal ' Lit les données
Combobox1.AddItem MeVal 'Ajouter les données dans la ComboBox
Loop 'Fin de boucle
Close #1 'Fermer le fichier
End Sub