Excel vers Notepad - problème espaces

- - Dernière réponse : 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.
Afficher la suite 

10 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
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
Commenter la réponse de ucfoutu
0
Merci
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.
Commenter la réponse de torsinnet
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
0
Merci
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)
Commenter la réponse de cs_Jack
0
Merci
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.
Commenter la réponse de torsinnet
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
0
Merci
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 ?
Commenter la réponse de cs_Jack
0
Merci
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...
Commenter la réponse de torsinnet
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
0
Merci
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.
Commenter la réponse de cs_Jack
Messages postés
20
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
3 mai 2013
0
Merci
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
Commenter la réponse de delattre13
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
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
Commenter la réponse de ucfoutu