Création d' un fichier Txt sous excel

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

J' ai déjà une macro qui créer mon fichier txt, mais elle le transfert sur le bureau.
Seulement je voudrais que le fichier txt soit déposer dans un dossier.
Ce dossier est une variable le chemin est quasi identique mais le numéro change:
Le top serais que le dossier "boom" sois créer si il n' existe pas.


Ex z:\5212\boom\


Voici à quoi ressemble la macro:

Sub TXt()

'je crée le fichier text de la ligne indiqué en cellule E3
ligne& = Range("E3") 'index par rapport au sheets
Set maplage = Range("Tableau1")
colonne_a_recuperer = Array(1, 2, 3, 4, 5, 8, 6)
texte$ = recuptexte(maplage, ligne, colonne_a_recuperer, nom$)
fichier$ = range("G3")\" & nom & ".txt"
x& = FreeFile: Open fichier For Output As #x: Print #x, texte: Close #x
MsgBox "le texte ci dessous a été enregistré sou le nom " & nom & ".Txt sur votre bureau" & vbCrLf & "avec le texte ci dessous :" & vbCrLf & vbCrLf & texte
End Sub

Function recuptexte(plage, ByVal ligne&, arrcolumns, nom$) As String
Dim myarray, va, i&
myarray = Array("num outil : ", "ref : ", "prod : ", "maintenance : ", "ameliration : ", "Infos : ", "Date: ")
va = Application.Index(plage.Value, Evaluate("ROW(" & ligne - (plage.Row - 1) & ":" & plage.Rows.Count & ")"), arrcolumns) 'mettre les colonnes que l'on veut dans l'ordre voulues
va = Application.Index(va, 1, 0)
nom = va(1) & va(5)
For i = 0 To UBound(myarray): myarray(i) = myarray(i) & va(i + 1): Next
recuptexte = Join(myarray, vbCrLf)
End Function


EDIT : Ajout des balises de code (jordane)

Est ce que quelqu'un peut me aider ?

Flobox49
A voir également:

7 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

fichier$ = range("G3") & "\" & nom & ".txt" 

0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour jordane45,
Apres cette correction, j'ai teste depuis un moment sur un MAC pas d'erreur et je ne recupere qu'une seule ligne (ce qui semble normal vu la variable va dans la fonction, quoique!); sur un PC Windows, il y une erreur pour la colonne 8 et stop exec!!!

Flobox49
Vous pourriez mettre un fichier a dispo, car probleme erreur 2023 - Stack Overflow(!!!) et cette affaire d'une ligne??

La fonction de recuperation ne fait prend qu'une ligne du tableau!!!
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
Et merci pour votre aide

oui je peut fournir un fichier sans problème.
oui dois je le déposer ?

C'est normale qu'il y est qu'une ligne de récupérer.

je vais tester la solution a jordan45 et je vous redit

PS: j'aurais besoin encore de vous pour la suite ...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Pour déposer un fichier tu peux utiliser
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers


NB:A l'avenir, pour poster du code sur le forum, merci de le faire en utilisant LES BALISES DE CODE (et en y précisant le langage)
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Ta solution Jordan fonctionne c'est impeccable,

Sauf que je viens de penser que j'avais un risque d'écraser cette donné, en faisant un simple copier coller ( notre façon de travailler )

pense tu qu'il serait possible d'ouvrir une boite de dialogue ou l'on pourrait indiquer le chemin pour l'export du fichier TXT ?

Merci
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Dim sFolder As String

' Fenêtre pour sélectionner un emplacement
With Application.FileDialog(msoFileDialogFolderPicker)
   If .Show = -1 Then ' if OK is pressed
        sFolder = .SelectedItems(1)
    End If
End With
    
 If sFolder <> "" Then ' if a file was chosen
        ' *********************
        ' Ton code de sauvegarde ici
        ' *********************


 End If
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Vous pouvez quand meme mettre un fichier a dispo car ca me tracasse l'erreur que j'ai avec votre code
Je serai tente de dire: tout ca pour recuperer une seule, mais c'est vous que ca regarde...

Recherche de dossier ou fichier: http://cathyastuce.com/vba/code-source-commun/boite-dialogue.html
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Je vais déposer le dossier pas de problème. comment je te préviens pour te dire qu'il est dispo ?
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Désoler Jordan, mais j'ai essayé de faire la manip mais j'ai tout planté !!! Sniff
peut tu me donner le code complet ?

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

En copiant le lien dans votre prochain post
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Re,
Après le top du top se serais en gros une boîte de dialogue qui demande qu'elle ligne a besoin d être édité.

Où ça ....
Et qui finit par demander si il y as besoin de créer un mail de dérogation..

Mais peut être trop tard vu a la vitesse que tu programme... Lol ..

Merci
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
Mais peut être trop tard vu a la vitesse que tu programme... Lol .
Il n'est jamais trop tard, c'est une evolution de votre facon de voir (z'etes pas loin de la bonne branche, pas trop loin du sol...)

qu'elle ligne a besoin d être édité.
Ok, ligne Excel comme le choix precedent (E3)

Pour @Mail, piece-jointe, integration corps de message ou ????????
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Oui le même que le fichier texte !!!

Merci
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Oui le même que le fichier texte !!!
Plait-il, piece jointe ou corps de message??????
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
A pardon je n'avais pas compris
Corps de message idéal, est ce possible de faire de la mise en forme !!

Genre mettre en Bleu les lignes Objectif Amélioration et Infos sur l'amélioration

merci, c'est fou la réactivité
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Genre mettre en Bleu les lignes Objectif Amélioration et Infos sur l'amélioration
Ce sont des cellules pas des lignes. Infos sur .... je vois, mais Obj.. connais pas !

Pour @Mail, adresse unique ou ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
En attendant :
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Wow ça me semble canon

Du coup comment gère-t-on la liste des destinataires est-il possible de la définir par défaut ?

une liste de mail qui peut être rangé dans la feuille action amélioration dans une colonne quelconque à côté du nom des autres personnes ?

Désolé mais je ne comprends pas votre question sur l'objectif amélioration
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Je viens de voir que vous exporter toute la ligne et en plus au format Excel.... Ne vous embêter pas avec les couleurs dans ce cas.

Je pensais que vous exportier le fichier texte, c est pour cela que je voulais de la couleur pour différencier les lignes mais la c est plus que parfait...

Ce que vous avez fait c est top
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
Genre mettre en Bleu les lignes Objectif Amélioration et Infos sur l'amélioration
VOus avez ecrit ceci dans votre post 28 et je vous demandais, quelle colonne pour Objectif Amélioration

une liste de mail qui peut être rangée dans la feuille action amélioration
Oui, comme beaucoup de personnes font....... Sera-ce toujours les memes personnes ou il faudra choisir et comment????

Vous avez toujours besoin du fichier TXT????
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Oui j' ai écrit cela pensant que le mail ressemblerait a un fichier texte.

Une liste de mail ou l on pourra modifier en fonction des personne mais pas besoin de demander à qui envoyer le mail au moment de l édition.

La liste seras prédéfinis dans la " cellule "
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Vous avez toujours besoin du fichier TXT????

modifier en fonction des personnes
C'est vous qui voyez, mais bien y penser avant de faire l'envoi.......
Les personnes de cette liste sont toutes destinataires ou autre??
0
flobox49
 
ligne - "Open Chemin & nom_Fichier For Output As #Nf"

si j'ai choisi C:\2030\

Je ne comprend pas votre question !

les répertoires outil ? fichiers txt sont a creer dans chaque répertoire d'outil, donc un TXT par outil...

le passage en MP j'ai pas trouver votre liens .... je suis une bique .. je ne vois pas le " bouton" en cliquant sur votre profil.
0
Flobox49 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Suite en MP ..... Enfin...
0