Forum Clubic

Macro Excel

Bonjour

J’ai un fichier (.txt) avec au max 7 colonnes. les 4 premières restes inchangées. Les suivantes sont “optionnelles”.

Est il possible de ranger les colonnes suivant le nom de ces dernières (sur la ligne 14) pour pouvoir utiliser les données quelqu’en soit le nombre de colonnes.

Merci d’avance

Peux tu changer le titre de ton message pour être plus explicite? Et surtout y décrire ton problème plutôt que de le catégoriser?

Merci d’avance
Edité le 27/08/2008 à 19:51

Tu peux reformuler ton problème en précisant exactement ce qui te gène ?
N’oublie pas qu’on n’a pas le fichier sous les yeux alors …
J’ai un fichier (.txt) avec au max 7 colonnes
Quelle est pour toi la notion de colonne dans un fichier .txt ? colonnes à largeur fixe, délimitées ?
Sachant que tu parles d’excel dans ton titre, tu dois importer ton fichier texte. Est-ce que l’import correspond à tes attentes ? (si oui, ce n’était pas la peine de préciser que la source était un txt)

Les suivantes sont “optionnelles”.
Qu’est-ce que tu entends par colonne optionnelle ?

Est il possible de ranger les colonnes suivant le nom de ces dernières
Tu veux parler d’un tri en ligne ?
Excel sait aussi bien trier en ligne qu’en colonne. Pas besoin de macro pour ça. Tu choisis ton orientation dans Données > Trier > options.

Exemple avec colonnes optionnelles

date heure LAe LAf Pause Surcharge
ou
date heure LAe LAf Pause SousGamme Surcharge
ou
date heure LAe LAf SousGamme
ou
date heure LAe LAf

Je voudrais dispatcher les colonnes toujours de la même façon selon le nom de chaque colonne sachant que les noms de colonnes sont sur la ligne 14.

En espérant avoir été plus clair.

Merci

Le mieux est de passer par le VBA
1- tu te positionnes sur la première ligne de ta feuille (dans la première cellule)
2- tu ouvres ton fichier texte et tu le lis ligne par ligne
3- pour chaque valeur trouvée sur la ligne 14, tu recherches si elle existe dans la ligne courante du fichier texte
4- en cas de correspondance, tu l’écris dans la colonne en question de la ligne courante
5- tu passes à la ligne suivante (feille excel et fichier texte)

En espérant que ton fichier texte n’ait pas plus de 13 lignes …

Le nombre de ligne peut être très grand …
A partir de la ligne 14, là où l’on les titres des colones soit date, heure, …,
Le fichier est un enregistrement de données dont les valeurs commencent à la ligne 15. La ligne 14 étant la ligne des “titres” des colonnes.
Par la suite chaque ligne correspond à un enregistrement. Il peut y avoir des enregistrements toutes les 10 secondes sur 8 heures ou sur 24 heures … Le nombre de ligne est un peu conséquent.
Je voudrais savoir s’il était possible de déplacer (de façon automatique) une colonne vers une autre feuille excel (à une place définie) suivant le nom de cette même qui se trouve sur la ligne 14.

Apparemment, mes explications ne sont pas assez claires ou bien cela n’est pas possible.

Au palisir de vous lire

Ca m’a l’air d’être tout à fait réalisable (je dirais même que c’est du classique), par contre les explications sont plus que nébuleuses.
Si tu veux une aide efficace, il va te falloir être plus précis dans la forme et le contenu

1- Le nombre de ligne peut être très grand
Non, par définition, il ne pourra pas dépasser 1 ; ensuite, il faudrait mettre un ‘s’ à ligne …

2- A partir de la ligne 14, là où l’on les titres des colones soit date, heure, …,
???

3- [quote=""]
Le fichier est un enregistrement de données dont les valeurs commencent à la ligne 15. La ligne 14 étant la ligne des “titres” des colonnes.
[/quote]
Là, par contre, c’est clair. Dans ma première réponse, j’avais envisagé que les données se trouvaient avant la ligne 14 et non après …
Par contre, tu ne dis toujours pas si là tu décris ton fichier texte, ou si tu as déjà réussi à l’importer dans excel
S’il s’agit du fichier texte, à quoi correspond la notion de colonne (fichier délimité, fichier formaté en colonnes ?)

4- Le nombre de ligne est un peu conséquent. <-> Le nombre de ligne peut être très grand …
Il faudrait savoir : c’est soit l’un, soit l’autre ; de toute manière, si le nombre de lignes est inférieur à 65000, le prpblème est identique quelque soit ce nombre. Seul le temps d’exécution changera

5-Je voudrais savoir s’il était possible de déplacer (de façon automatique) une colonne vers une autre feuille excel (à une place définie) suivant le nom de cette même qui se trouve sur la ligne 14.
Il semblerait donc que tu aies déjà réalisé l’import (cf. point 3)
Dans ce cas, les données sont-elles bien déjà dans leur bonnes colonnes respectives (pb des colonnes “optionnelles”)

6-Qu’est-ce que tu entends par déplacement ?
A- les données sont recopiées dans la nouvelle feuille et supprimées de la feuille source (véritable déplacement)
B- les données sont simplement recopiées dans la feuille cible, mais restent dans la feuille source
C- la feuille cible comporte des formules qui font référence à la feuille source (du genre =Feuil1!B15)

7- Toujours dans le cas où tu aurais réussi l’import :
La recopie dans une autre feuille est-elle imposée par la suite du traitement, ou pourrait-on envisager une simple remise en forme de
la première, par suppression des lignes inutiles et ventilation des données dans leur colonnes respectives ?

Je pense que le mieux, c’est que tu fasses deux copies d’écran, l’une de ce que tu as, l’autre de ce que tu veux obtenir, ce sera plus clair.