Excel vers Notepad - problème espaces

torsinnet - 16 sept. 2012 à 10:29
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 17 sept. 2012 à 14:37
Bonjour,

Je voudrais éditer un fichier notepad contenant des millier de ligne avec excel.
Voila un exemple de ligne:
1010 2012 2317

Lorsque je copie une ligne dans excel, je sais la fractionner pour que chaque grouppe apparaisse dans une cellule, mais une fois que je recopie de excel vers notepad, le format d'origine n'est plus le même (les espaces entre chaque groupe est le même et égal a une tabulation).

Il devrait y avoir 1 espace entre 1010 et 2012 puis 6 espaces entre 2012 et 2317.
Y-a t'il une macro simple pour automatiquement ré-exporter mes données avec les bons espaces ?

Merci pour votre aide.

10 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 sept. 2012 à 10:36
Bonjour,
bravo pour le code que tu nous montres-là ! Tu sais ? la seule chose qui nous permettye de voir comment tu fais cet "export" !!!
Et aussi : le contenu exact (type, format, etc...) des cellules concernées et leut formatage éventuel.
C'est trop te demander ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Voila l'archive qui contient les 3 fichiers:
http://www.4shared.com/zip/ykHL_BTJ/fichiers.html?refurl=d1url

- ORIGINAL.txt qui contient la ligne
- La feuille excel
- FINAL.txt qui est le txt dans lequel je colle les cellules d'excel.

Comme vous pouvez voir, l'espace entre les groupes n'est plus le même entre Original et Final.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 sept. 2012 à 13:10
Salut

Ce n'est pas à nous d'analyser ton code et de mettre le doigt sur ce qui ne va pas.
C'est à toi de synthétiser ton problème et à montrer la méthode utilisée.
La aussi, nul besoin de copier tout le code, juste la partie qui correspond à l'écriture, la lecture des données formatées mises en cause.
Plusieurs raisons majeures :
- on n'a pas le temps nécessaire
- charger un classeur contenant des macros n'est jamais recommandé
- c'est en te forçant à décrire, argumenter ton problème que la réponse vient souvent d'elle même.

Quand tu colleras ton code, n'oublie pas d'utiliser la coloration syntaxique = 3ème icone à droite.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Bonjour Jack,

Il n'y à pas de code, tout simplement parce que je ne connais pas les macros excel et que c'est pour ça que je poste un message ici...
J'ai posté dans cette catégorie parce que je pense que mon problème doit pouvoir être résolu avec une macro excel, cependant, si vous avez une autre idée, elle est bien évidemment la bienvenue.
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 sept. 2012 à 14:13
Pas de code ...

Alors explication de texte :

"Lorsque je copie une ligne dans excel"
Par quelle méthode ?
Un copier-coller ?

"je sais la fractionner pour que chaque grouppe apparaisse dans une cellule"
Comment, quelle méthode ?

"mais une fois que je recopie de excel vers notepad"
Par quelle méthode ?
Un copier-coller ?

"le format d'origine n'est plus le même"
Le même que quoi ?

"les espaces entre chaque groupe est le même et égal a une tabulation"
Non, même si une succession d'espaces peut donner l'impression qu'il s'agit d'une tabulation, ce sont malgré tout deux choses distinctes : alors espaces ou tabulations ?

"Il devrait y avoir 1 espace entre 1010 et 2012 puis 6 espaces entre 2012 et 2317"
Et par quel miracle ?
Pourquoi "devrait" ?
Qu'as-tu fait pour tenter d'y arriver, mais que ça ne se produit pas ?
0
Oui la méthode est un simple copier/coller à chaque fois.
Je fractionne par cellules en utilisant l'option Donnée/Convertir.

Je récapitule les étapes:
1) Je copie la ligne de notepad la colle vers excel
2) utiliser la fonction Convertir pour séparer la ligne en cellules
3) je fais un copier de l'ensemble des cellules et je colle dans un nouveau fichier notepad

Ce sont bien des tabulations qui sont présentent dans le dernier fichier notepad, et une tabulation sépare les chiffres 1010, 2012 et 2317.
Or il faut que je conserve le format original avec plusieurs espaces entre chaque groupe.

Ce fichier txt est lu par un logiciel, et si le format change (c'est à dire, les espaces), ça ne marchera pas...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 sept. 2012 à 15:13
Bien !
Tu es toutefois venu sur un forum de développement.
Cette section est destinée au VBA.
Si tu veux résoudre ton problème par du VBA, il va falloir que tu commences par t'intéresser au développement sous VBA (pas seulement evnir demander une solution VBA).
Commence. Montre ce que tu as tenté d'écrire à l'aide de VBA. Nous t'aiderons alors ...


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 sept. 2012 à 16:02
Oui, par défaut, les copier-coller depuis Excel ont la n orme suivante :
Chaque donnée d'une ligne est séparée par des tabulations
Chaque ligne est séparée de la suivante par un vbCrLf = retour chariot + un passage à la ligne.

Si tu dois respecter un format particulier de ton fichier texte, il va falloir passer par du code.
Première chose à faire : définir le format d'une ligne; définir à quel emplacement doit se trouver chaque champ/donnée.
Ensuite, il faut coder :
- parcourir chaque ligne des données Excel pour fabriquer la chaine qui sera sauvée dans le fichier texte : Range, For-Next, Mid, Left, Right, Space ...
- ouvrir un fichier texte et écrire chaque ligne : Open, Print #, Close #

Bref, il faut te familiariser avec ces instructions.
Le forum et les sources du site sont un bon moyen pour apprendre et trouver des solutions ressemblantes. A toi de chercher.
0
delattre13 Messages postés 20 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 3 mai 2013
17 sept. 2012 à 13:23
Bonjour,
Pour répondre simplement il y deux moyens pour régler le problème

1°) Utiliser une colonne qui va préparer les données vers le Bloc-notes
dans la cellule il y aura la fonction =SUPPRESPACE(a1&b1&c1....)
Cette fonction ne supprime que les espaces en début et fin de chaîne. Les espaces du milieu ne sont pas affectés. Ensuite un copier coller de cette cellule dans la colonne et un copier coller de cette colonne dans le Bloc-notes

2°) La même chose en VBA c'est la fonction Trim exemple :
Range("G1").text=Trim(range("A1:F1"))
Bien sûr dans ce cas il faudra mettre des instructions appropriées pour que les lignes et colonnes soient modifiées par la méthode des plages et paramétrer les lignes et colonnes de la fonction range("A" & Ligne & :"F" & Ligne)

Ce qui donne par exemple très simple :
For ligne = 1 to 10
Range("G" & Ligne).value = Trim(range("A" & Ligne & :"F" & Ligne))
Next

Ensuite un copier coller de la colonne G1 à G10 vers le Bloc-notes

Salutations
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 sept. 2012 à 14:37
La vraie question à poser est probablement la finalité d'une t-elle manoeuvre. Et ce : avant même d'aider à traiter la question. Je ne la vois personnellement pas et ne comprends même pas qu'on puisse s'en mêler (n de près, ni de loin).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous