Signaler

Créer et coller les lignes du tableau dans un fichier txt

Posez votre question roideseaux 226Messages postés jeudi 24 janvier 2008Date d'inscription 2 décembre 2016 Dernière intervention - Dernière réponse le 2 déc. 2016 à 10:02
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
moins plus
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 226Messages postés jeudi 24 janvier 2008Date d'inscription 2 décembre 2016 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 10652Messages postés dimanche 25 novembre 2007Date d'inscription 2 décembre 2016 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
Ajouter un commentaire
Utile
+0
moins plus
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 10652Messages postés dimanche 25 novembre 2007Date d'inscription 2 décembre 2016 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
Ajouter un commentaire
Utile
+0
moins plus
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 10652Messages postés dimanche 25 novembre 2007Date d'inscription 2 décembre 2016 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
Ajouter un commentaire

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 !