Gestion fichier .txt

Résolu
MastJager Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
MastJager Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je veux créer un fichier .txt qui inscrit mes valeurs de sorte à ajouter une tabulation entre chaque données de chaque colonnes mais à la colonne numéro 7 je voudrai faire une saut de ligne.

C'est sur ce dernier point que je suis bloqué.

Voici le code que j'ai réalisé, je pense que ma condition du If n'est pas la bonne.
    'Création du fichier
Open "D:\Users" & NomFichier & ".txt" For Output As #numfich

For Each c In Range("A2:G" & nbeVariable)

If Feuil6.Columns.Count < 7 Then
Print #numfich, c.Value & vtab
Else
Print #numfich, c.Value & vbCrLf;

End If
i = i + 1
Next c

Close #numfich


Merci d'avance
A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

nbeVariable
est egal a combien?????????????????
1
MastJager Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Nbevariable est configurer avec un Userform au lancement de la maccro, pour l'instant j'ai 76 lignes de données. Il peut donc varier de 1 à 76 actuellement
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Peut pas etre egal a 1, mini 2:
For Each c In Range("A2:G" & nbeVariable)

et la variable I ??? sert a quoi
0
MastJager Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Voici le code complet je ne l'avais pas mis car je ne considérais pas comme important =).
Public nbeVariable As Integer
Public NomFichier As String, Repertoire As String

Sub Création_Fichier_txt()


'############################################
'#################Déclaration################
'############################################

Dim numfich As Long, c As Range, x As Integer
numfich = FreeFile


'############################################
'###############Initialisation###############
'############################################

i = -1
CréationVariables.Show
nbeVariable = nbeVariable + 1


'############################################
'################Programme###################
'############################################


'Création du fichier
Open "D:\Users" & NomFichier & ".txt" For Output As #numfich

For Each c In Range("A2:G" & nbeVariable)

If Feuil6.Columns.Count < 7 Then
Print #numfich, c.Value & vtab
Else
Print #numfich, c.Value & vbCrLf;

End If
i = i + 1
Next c

Close #numfich

On Error GoTo OuvertureFichierErreur
Dim MonApplication As Object
Dim MonFichier As String
Set MonApplication = CreateObject("Shell.Application")

'Ouverture du fichier

MonFichier = "D:\Users" & NomFichier & ".txt"
MonApplication.Open (MonFichier)

Set MonApplication = Nothing
Exit Sub

OuvertureFichierErreur:
Set MonApplication = Nothing
MsgBox "Erreur lors de l'ouverture de fichier..."
End Sub





I est pour moi une variable me permettant de ne pas sélectionner la colonne A car i comme à -1.
Je sais j'aurai pu avoir ce résultat en changeant mon range
0
MastJager Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Pour moi le problème ce situe à cette condition : If Feuil6.Columns.Count < 7 Then

Mon fichier .txt me donne actuellement ces données :

x
x
x
x
x
x
x
x

Et je voudrais que le formatage soit le suivant :

x x x x x x x
x x x x x x x


Et oui effectivement elle peut varier de 2 à 76. Je suis débutant en VBA je pense que vous l'avez remarqué. Mais je donne mon maximum ! :).
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
Tout a fait Thierry, je vous arrange ca

    'Création du fichier
    Open "D:\Users" & NomFichier & ".txt" For Output As #numfich
        'boucle pour ecriture cellules Ax a Gx
        For n = 2 To nbevariable
            Print #numfich, Cells(n, 1), vbTab, Cells(n, 2), vbTab, Cells(n, 3), vbTab, Cells(n, 4), vbTab, Cells(n, 5), vbTab, Cells(n, 6), vbTab, Cells(n, 7)
            Print #numfich,      'ligne vide
        Next n
    Close #num
0