Gestion fichier .txt

Résolu
MastJager Messages postés 21 Statut Membre -  
MastJager Messages postés 21 Statut Membre -
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

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    nbeVariable
    est egal a combien?????????????????
    1
    1. MastJager Messages postés 21 Statut Membre
       
      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
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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
    3. MastJager Messages postés 21 Statut Membre
       
      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
    4. MastJager Messages postés 21 Statut Membre
       
      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
    5. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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