Créer et coller les lignes du tableau dans un fichier txt
Résolu
roideseaux
Messages postés
260
Date d'inscription
Statut
Membre
Dernière intervention
-
roideseaux Messages postés 260 Date d'inscription Statut Membre Dernière intervention -
roideseaux Messages postés 260 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comme le titre l'indique, je cherche à créer un fichier et y placer les lignes non vides de mon tableau de la colonne A à T.
Je voudrais également une fenêtre contextuelle pour sélectionner le chemin ou sera enregistré le fichier ainsi que le choix de choisir le nom de ce fichier.
Voilà ce que j'ai fait pour le moment :
Il faut savoir mes lignes contiennent des formules pour la mise en forme de tous les éléments, donc quand je dis lignes non vides, je ne prend bien sur pas en compte les lignes ou il y a une formule mais pas de donnée (j'y ai fait un SIERREUR(Z1*25.4;"") ce qui me permet de ne rien afficher lorsque ma case Z1 est vide).
Donc voilà, ma macro a fonctionné mais elle ne fonctionne plus. De plus lorsqu'elle fonctionnait je crois qu'elle prenait également les lignes "vides".
Merci !
Comme le titre l'indique, je cherche à créer un fichier et y placer les lignes non vides de mon tableau de la colonne A à T.
Je voudrais également une fenêtre contextuelle pour sélectionner le chemin ou sera enregistré le fichier ainsi que le choix de choisir le nom de ce fichier.
Voilà ce que j'ai fait pour le moment :
Sub Ecriture() Dim Chemin As String Dim DerniereLigne As Long 'Index de la dernière ligne Dim Tableau() As Variant Dim Ligne As Long Dim Repertoire As FileDialog Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker) Repertoire.Show Chemin = CStr(Repertoire.SelectedItems(1)) DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row 'Création du tableau par une boucle Ligne = 2 Do While Ligne <= DerniereLigne 'Ajout 1 élément à l'array en conservant les éléments précédents ReDim Preserve Tableau(Ligne) 'Affectation de la valeur au nouvel élément 'Tableau(Ligne) = Range("A" & Ligne).Value Tableau(Ligne) = Range(Cells(Ligne, 0), Cells(Ligne, 19)).Value Ligne = Ligne + 1 Loop 'Ecrit dans le fichier txt Ligne = 1 Do While Ligne <= DerniereLigne Open Chemin & "Vision.plx" For Append As #Ligne Print #Ligne, Tableau(Ligne) Close Ligne = Ligne + 1 Loop MsgBox ("c'est ok") End Sub
Il faut savoir mes lignes contiennent des formules pour la mise en forme de tous les éléments, donc quand je dis lignes non vides, je ne prend bien sur pas en compte les lignes ou il y a une formule mais pas de donnée (j'y ai fait un SIERREUR(Z1*25.4;"") ce qui me permet de ne rien afficher lorsque ma case Z1 est vide).
Donc voilà, ma macro a fonctionné mais elle ne fonctionne plus. De plus lorsqu'elle fonctionnait je crois qu'elle prenait également les lignes "vides".
Merci !
A voir également:
- Créer et coller les lignes du tableau dans un fichier txt
- Fichier bin - Guide
- Creer un fichier .bat - Guide
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Tableau word - Guide
4 réponses
Bonjour
Pourquoi le fichier est ouvert et ferme à l'intérieur de la boucle for?
Pourquoi en append, car à chaque lancement de votre Sub vous ajouter des lignes au fichier?
Quelle cellule est testée pour savoir si "ligne" vide?
Pourquoi le fichier est ouvert et ferme à l'intérieur de la boucle for?
Pourquoi en append, car à chaque lancement de votre Sub vous ajouter des lignes au fichier?
Quelle cellule est testée pour savoir si "ligne" vide?
Je débute en VBA, donc je ne suis absolument pas doué, j'arrive à peut près a comprendre ce que je lis mais pour coder ce que j'ai en tête, c'est un peu plus compliqué !!
Je voudrais que ma macro demande un chemin pour créer un fichier txt et y place les lignes de ma feuille qui ne sont pas vides, et si c'est possible sans prendre les lignes qui contiennent une formule mais dont le calcul renvoi une erreur (dans ce cas, je n'affiche pas le résultat sur ma feuille)...
Le code que j'ai mit au début doit surement être pas mal modifié pour arriver au résultat que je voudrais...?
Je voudrais que ma macro demande un chemin pour créer un fichier txt et y place les lignes de ma feuille qui ne sont pas vides, et si c'est possible sans prendre les lignes qui contiennent une formule mais dont le calcul renvoi une erreur (dans ce cas, je n'affiche pas le résultat sur ma feuille)...
Le code que j'ai mit au début doit surement être pas mal modifié pour arriver au résultat que je voudrais...?
Bonjour,
Je vous fais un exemple.
Possible d'avoir votre fichier sans donnees sensible, pour voir vos histoires de formules
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Quel separateur entre les donnees: espace, point-virgule, ou .....?
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
A+
Je vous fais un exemple.
Possible d'avoir votre fichier sans donnees sensible, pour voir vos histoires de formules
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Quel separateur entre les donnees: espace, point-virgule, ou .....?
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
A+
Bonsoir,
voilà un lien pour accéder au téléchargement de mon fichier :
https://www.cjoint.com/c/FKCwCQhww7x
En fait, pour faire simple, je colle une suite de données dans la case X et cette suite est ensuite décomposée et classée dans les cases de A a T.
Et je voudrais que l'extraction soit faite sur les cases de A à T.
merci :)
voilà un lien pour accéder au téléchargement de mon fichier :
https://www.cjoint.com/c/FKCwCQhww7x
En fait, pour faire simple, je colle une suite de données dans la case X et cette suite est ensuite décomposée et classée dans les cases de A a T.
Et je voudrais que l'extraction soit faite sur les cases de A à T.
merci :)
Bonjour,
Oui, mais quel separateur entre les donnees cellules d'une meme ligne??????
suite:
fichier modifie avec Colonne X pour nombre de ligne, Colonne H en test non vide pour enregistrer la "ligne" et tabulation en separateur de donnee ligne
https://www.cjoint.com/c/FLcj0mZCEqf
A+
Oui, mais quel separateur entre les donnees cellules d'une meme ligne??????
suite:
fichier modifie avec Colonne X pour nombre de ligne, Colonne H en test non vide pour enregistrer la "ligne" et tabulation en separateur de donnee ligne
https://www.cjoint.com/c/FLcj0mZCEqf
A+
Encore une petite chose,
Je cherche à pouvoir modifier le nom du fichier enregistré, sauf que quand je passe par msoFileDialogSaveAs, je n'ai pas la possibilité de prendre comme extension .plx (c'est un format peu commun !)
Donc est-ce qu'il est possible tout de même de modifier cette extension, ou bien faut-il créer une infobox pour demander le nom du fichier ?
Je cherche à pouvoir modifier le nom du fichier enregistré, sauf que quand je passe par msoFileDialogSaveAs, je n'ai pas la possibilité de prendre comme extension .plx (c'est un format peu commun !)
Donc est-ce qu'il est possible tout de même de modifier cette extension, ou bien faut-il créer une infobox pour demander le nom du fichier ?
C'est vrai que ce n'est pas logique de faire une ouverture et une fermeture à chaque ligne à écrire...
J'avouerais que le code n'est pas entièrement de moi, j'y ai juste ajouté quelques fonctions (comme la sélection du chemin). Donc pour le append, je ne sais pas du tout :/
Pour l'ouverture fichier, il suffit de dire si vous voulez un fichier avec seulement les enregistrements en cours ou si vous voulez empilez dans le meme fichier x tour de votre programme