Création d' un fichier Txt sous excel
RésoluFlobox49 Messages postés 34 Statut Membre -
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
7 réponses
Une macro Excel génère un fichier texte à partir d'une ligne et l'écrit actuellement sur le bureau, alors que le chemin cible doit être un dossier dont le numéro varie. Le besoin central est que le dossier comme z:\5212\boom\ soit créé automatiquement s'il n'existe pas et que le fichier .txt y soit déposé sans toucher au reste du code. Des échanges portent sur la gestion du chemin dynamique et sur des solutions potentielles pour vérifier l'existence du dossier et l'organiser avant l'écriture du texte. Une nuance utile est que les propositions abordent aussi d'autres aspects du processus (lecture de colonnes, formats, export, éventuels choix de destinataires), sans conclure sur l'état du déploiement.
-
fichier$ = range("G3") & "\" & nom & ".txt"
-
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!!!
-
-
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 ...-
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
-
-
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-
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 -
-
-
-
-
-
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-
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 ???????? -
-
-
-
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
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 -
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 -
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???? -
-
-
-
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. -