Signaler

Créer et coller les lignes du tableau dans un fichier txt [Résolu]

Posez votre question roideseaux 247Messages postés jeudi 24 janvier 2008Date d'inscription 6 avril 2017 Dernière intervention - Dernière réponse le 6 déc. 2016 à 23:00 par roideseaux
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 :
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 !

Afficher la suite 
Utile
+0
plus moins
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?
roideseaux 247Messages postés jeudi 24 janvier 2008Date d'inscription 6 avril 2017 Dernière intervention - 30 nov. 2016 à 14:43
Pour savoir si une ligne est "vide" c'est la cellule en A qui est testée

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 :/
Répondre
f894009 11901Messages postés dimanche 25 novembre 2007Date d'inscription 28 juin 2017 Dernière intervention - 30 nov. 2016 à 19:06
Re,

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
Répondre
Donnez votre avis
Utile
+0
plus moins
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...?
f894009 11901Messages postés dimanche 25 novembre 2007Date d'inscription 28 juin 2017 Dernière intervention - 1 déc. 2016 à 07:54
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 : http://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+
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonsoir,

voilà un lien pour accéder au téléchargement de mon fichier :
http://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 :)
f894009 11901Messages postés dimanche 25 novembre 2007Date d'inscription 28 juin 2017 Dernière intervention - 2 déc. 2016 à 10:02
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

http://www.cjoint.com/c/FLcj0mZCEqf

A+
Répondre
Donnez votre avis
Utile
+0
plus moins
Personne ?
f894009 11901Messages postés dimanche 25 novembre 2007Date d'inscription 28 juin 2017 Dernière intervention - 6 déc. 2016 à 07:51
Bonjour,
Vous le faites exprès, regardez le post 8. J'ai modifié votre fichier, récupérez le et dites nous que faire pour la suire
Répondre
roideseaux 247Messages postés jeudi 24 janvier 2008Date d'inscription 6 avril 2017 Dernière intervention - 6 déc. 2016 à 12:20
Oups, désolé, je n'avais pas vu le message, il me semblai pourtant avoir actualisé la page...

Merci, ça fonctionne :)
pour le séparateur, il n'y a pas d'importance, du moment que les données ne soient pas collées !
Je continu mes tests avant de marquer résolu :)
Répondre
roideseaux 247Messages postés jeudi 24 janvier 2008Date d'inscription 6 avril 2017 Dernière intervention - 6 déc. 2016 à 14:39
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 ?
Répondre
f894009 11901Messages postés dimanche 25 novembre 2007Date d'inscription 28 juin 2017 Dernière intervention - 6 déc. 2016 à 18:15
Bonjour
Avec une inputbox ça devrait le faire,ceci avant la ligne open, remplacez le vision.plx par la variable qui reçoit le inputbox complétée du ".plx". Évidemment,tester que le inputbox ne soit pas égal à rien
Répondre
roideseaux 247Messages postés jeudi 24 janvier 2008Date d'inscription 6 avril 2017 Dernière intervention - 6 déc. 2016 à 23:00
impeccable !
merci !
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !