formatage de text dans un fichier text depuis un array

Y compris Power BI, Power Query et toute autre question en lien avec Excel
x
xlsh
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 15 avril 2014
Version d'Excel : 2007

Message par xlsh » 15 avril 2014, 16:07

Bonjour tt le monde,


soit un tableau à une dimension de n éléments
comment récupérer tous ces éléments dans une boucle afin de pouvoir écrire,la ligne ci-dessous plusieurs fois dans un fichier.
car en utilisant cette méthode mes indices sont écrasés.
si quelqu'un pouvait m'éclairer je lui serai reconnaissante
For i = 1 To UBound(tab)
FileContent = FileContent & "<clefP Index='" & tab[i] & "' authorisation='" & tab[i+1] & "' Num='" & tab[i+2] & "' Type='" & tab[i+3] & "'/>" & vbCr
Next i
merci d'avance
B
Benead
Membre fidèle
Membre fidèle
Messages : 455
Inscrit le : 15 octobre 2011
Version d'Excel : 2007 FR 32bits- 2013 FR 64bits

Message par Benead » 16 avril 2014, 02:01

Bonsoir,

Ce qui faut faire pour ne pas écraser les données c'est de faire une boucle qui avance de 4
For i = 1 To UBound(xtab) Step 4
Je n'ai pas testé, mais ton code me parait bizarre, pour écrire dans un fichier texte, je procède de cette façon :
Open "D:\Temp\Test.txt" For Append As #1
   For i = 1 To UBound(xtab)
      Print #1, "<clefP Index='" & xtab(i) & "' authorisation='" & xtab(i + 1) & "' Num='" & xtab(i + 2) & "' Type='" & xtab(i + 3) & "'/>"
   Next i
Close #1
J'ai remplacé tab par xtab car Tab est une fonction d'Excel. J'ai aussi remplacé les [ ] par des ( ) pour que cela fonctionne.
Si ton code fonctionne, je me demande dans quel environnement il est exécuté.

Espérant avoir répondu à ta question.
A+
Benoît Marchand
[Benead]
x
xlsh
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 15 avril 2014
Version d'Excel : 2007

Message par xlsh » 16 avril 2014, 15:04

Salut Benead,

Merci pour la modification et les infos.
en testant j'ai maintenant le message d'erreur l'indice n’appartient pas à la plage uniquement sur la dernière valeur
Type='" & xtab(i + 3) & "'/>"

sur les valeurs précédentes j'ai bien les infos au bon endroit pourtant g bien mis option base 1

au fait quand tu mets
mavariable.write(FileContent)
cela écrit le contenue de la variable dans le fichier qu'on a ouvert avant.

par contre pour le step de 4 je vois pas le fonctionnement on est d'accord c'est une boucle imbriqué que tu fais ?
x
xlsh
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 15 avril 2014
Version d'Excel : 2007

Message par xlsh » 16 avril 2014, 15:38

pour le message d'erreur l'indice... je viens de voir pourquoi c'est parce que quand j'arrive au max du tbl je rajoute 3 ce qui génère l'erreur puisse qu'on ne peut pas aller au delà du max
du coup quand je mets -3 sur le Ubound(xtbl) toute mes valeurs sont décalé dans mon formatage.
B
Benead
Membre fidèle
Membre fidèle
Messages : 455
Inscrit le : 15 octobre 2011
Version d'Excel : 2007 FR 32bits- 2013 FR 64bits

Message par Benead » 16 avril 2014, 21:26

Bonsoir Xlsh,

Merci pour l'info pour mavariable.write(), mais tu ouvres le fichier avec FileSystemObject alors ?

Pour la boucle, soit tu divise par 4 le nb d'éléments de ton tableau et tu prends uniquement l'entier inférieur, soit tu teste dans la boucle si (i+3) est supérieur aux nb d'éléments de ton tableau et dans ce cas tu sors de la boucle avec Exit Do.
A+
Benoît Marchand
[Benead]
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message