Gérer les données d'un fichier Excel

Bonjour,

Je débute sous excel alors soyez patient.

J'ai 15'000 valeurs à trier.

Elles sont composées comme ceci:

6.12725, 46.16591, "CHRF-080,GE,PLAN-LES-OUATES,A1a,>France"

Elles doivent devenir ainsi:

CHRF80_GE_PLAN-LES-OUATES,,46.16591,6.12725,0.30:9:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0

Faudrait que le programme gère ça peut-être comme ça:

prendre les caractères 21 à 24 ajouter les caractères 27 à 28.

Un trait souscrit ajouter les caractères 33 à 47. Deux virgules la coordonnées géographiques.

Virgule, 0.30 si le caractère 26 à 28 est inférieure à 080 sinon 0.60.

Je sais pas comment mettre en place une mise en forme automatique. Est-ce que il faut utiliser un script?

Pouvez-vous me m'aider s'il vous plaît?

Bonjour

Tu détailles bien mais avec un fichier cela serait mieux

Une colonne ce que tu as et une autre colonne ce que tu veux

Pas besoin des 15 000 valeurs (juste 14 999 ) 3 ou 4, je pense, suffiront

1ère ligne : avant ...

2e ligne : après... (résultat recherché)

2.29708, 48.88418, "RM01218-050km/h"

RM01218-050km/h,,48.88418,2.29708,0.30:9:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0

7.23518, 46.87060, "CHRF-120,FR,BOSINGEN,A12/E27,>Fribourg"

CHRF-120,FR,BOSINGEN,A12/E27,>Fribourg,,46.87060,7.23518,0.60:9:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0

6.12931, 46.24632, "CHRF-100,GE,LE GRAND-SACONNEX,A1/E25-E62,>France"

CHRF-100,GE,LE GRAND-SACONNEX,A1/E25-E62,>France,,46.24632,6.12931,0.60:9:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0

6.14964, 46.16339, "CHRFR-050,GE,TROINEX,Rte de Troinex 81,>Carouge"

CHRFR-050,GE,TROINEX,Rte de Troinex 81,>Carouge,,46.16339,6.14964,0.30:9:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0

6.12919, 46.26595, "CHRF-050,GE,COLLEX-BOSSY,Route des Fayards 81"

CHRF-050,GE,COLLEX-BOSSY,Route des Fayards 81,,46.26595,6.12919,0.30:9:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0

Le code ci-dessous correspond pour la première partie à la distance (0.30 = 300m). Et le 9 correspond à la durée (9s). La suite n'a pas de signification mais doit être la.

0.30:9:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0

grosso modo:

ceci : RM01218-050km/h,,48.88418,2.29708,0.30:9:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0

correspond à : description,,latitude,longitude,distance:durée,:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0

si la vitesse est supérieure à 50 km/h la distance passe à 0.60

Bonjour,

voila un début du fichier.

merci pour votre aide

Bon Dimanche

28classeur1.xlsx (10.19 Ko)

Bonjour

Un essai

Merci Banzai64,

C'est exactement ce que je voulais.

Tu as utilisé des macros si j'ai bien compris?

Je souhaite comprendre ce que tu as programmé pour pouvoir le refaire. Ça me parait assez utile pour excel.

Est-ce ceci:

Sub Reorganise()

Dim Tablo

Dim J As Long

Dim I As Integer

Dim Msg As String

For J = 1 To Range("A" & Rows.Count).End(xlUp).Row

Msg = ""

Tablo = Split(Range("A" & J), ",")

For I = 2 To UBound(Tablo)

Msg = Msg & Trim(Tablo(I)) & ","

Next I

Msg = Msg & "," & Trim(Tablo(1)) & "," & Trim(Tablo(0)) & ",0.30:9:1:0,1.00:30:0:0,2.00:30:0:0,5.00:30:0:0,0"

Range("B" & J) = Replace(Msg, Chr(34), "")

Next J

End Sub

Bonjour

Grosso modo

Pour chaque ligne je décompose les infos(Split) avec la séparation virgule, et ensuite je reconstruis l'information de la manière voulue

en y mettant la virgule quand c'est nécessaire

Juste pour information.

Tes données (avant et après) passent les au convertisseur

sous Excel 2003 c'est menu Données-->Convertir

Et il faut choisir délimité avec séparateur "," (virgule)

merci pour les infos...

Je vous serais reconnaissant (je le suis déjà) si vous pouviez encore m'aider sur ces 3 derniers points.

Comment faut il que je fasse pour que le script travaille ses trois points?

1. Le symbole % en début de ligne indique qu'il ne faut pas tenir compte de cette ligne.

2. Certains symboles sont à enlever dans la description tels que & ou §.

3. La fin de la ligne ayant comme code 0.30:9:1:0 doit:

a) passer à 0.30:9:1:0 si la valeur indiqué dans la description (exemple: CHRFR-050) du code est inférieure ou égale à 50

b) passer à 0.50:9:1:0 si la valeur indiqué dans la description (exemple: CHRF-100) du code est supérieure à 50

PS: merci j'ai vu pour le convertisseur mais il est assez limité

Bonsoir

Le plus simple c'est de préparer un fichier avec justement ces cas

A suivre

Voila le document au complet.

J'ai fais quelques modifications et j'ai mis des commentaires pour la compréhension.

Le fichier est en pièce jointe

meilleures salutations

PS: j'ai du compresser le document, il dépassait 300ko

Bonjour

A vérifier

Bonjour,

J'ai eu très souvent ce besoin sous Excel, aussi j'ai rédigé une petite macro en VBA.

Vous trouverez l'exemple: http://mediaprog.free.fr/excel/split.html

Le principe est simple: la fonction publique uSplit encapsule la fonction Split qui permet de répondre à ton besoin.

Bonne journée.

Rechercher des sujets similaires à "gerer donnees fichier"