OVH Cloud OVH Cloud

fonction complexe excel

5 réponses
Avatar
claudius3347
Bonjour, je vais essayé d'etre le plus concis possible .
j'ai deux fichier excels, sur le premier j'ai 3 colonnes; ref, designation, qté.
Dans cette dernière j'ai une serie de chiffres suivi de 2 lettres (elles sont accollées)
ex : 235000BJ
j'ai besoin d'extraire seulement les chiffres et que les 2 derniers chiffres deviennent des décimales
ex : 2350,00
Une fois mon fichier "e;e;convertit"e;e; je dois le comparer avec un autre fichier de ref beaucoup plus consequent, pour mettre à jour ce dernier.
si déjà vous avez une solution pour la première étape, vous allez me redonner le sommeil, car actuellement je fais de la saisie manuelle, travail de ouf !!!!!!
*petite précision: il se peut que j'ai des qtés qui soient différents
ex: 24FG, 254BL, 352489HM dont après conversion; 0,24 , 2,54 , 3524,89

cdlt

claudius47

5 réponses

Avatar
MichD
Bonjour,

Sélectionne la colonne affichant tes données
Appelle la commande "Convertir" du menu donnée
Choisis à la première fenêtre : Largeur fixe
Dans la deuxième fenêtre, fais un clic sur la règle qui sépare
les chiffres des 2 dernières lettres
Dans la troisième fenêtre, Sélection la colonne 2 (lettres) dans le petit
tableau et choisis l'option : "Colonne non distribuée"
et appuis sur "terminer".

Maintenant tu saisis la valeur 100 dans une cellule vide,
Tu copies cette cellule dans le presse-papier et tu fais
un collage spécial sur l'ensemble de ta colonne de données
en retenant : Valeur seulement et opération : division

L'enregistreur de macro va te donner presque l'intégralité du code!

Le travail est terminé.

MichD
---------------------------------------------------------------
Avatar
MichD
Une autre approche si ta colonne n'est pas très grande :

'-----------------------------------
Sub test()
Dim C As Range
With Worksheets("Feuil1") 'Nom feuille à adapter
Set rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
Application.ScreenUpdating = False
Application.enableeventsúlse
On Error Resume Next
For Each C In rg
If C <> "" Then
C.Value = Left(C, Len(C) - 2) / 100
End If
Next
Application.enableevents=true
Application.ScreenUpdating = True
End Sub
'-----------------------------------

MichD
---------------------------------------------------------------
Avatar
MichD
Et tu peux utiliser une simple formule :

En supposant que la donnée à traiter est en A1
Formule que tu recopies sur l'ensemble de la colonne
=GAUCHE(A1;NBCAR(A1)-2)/100

MichD
---------------------------------------------------------------
Avatar
claudius3347
Le vendredi 21 Septembre 2012 à 14:45 par MichD :
Et tu peux utiliser une simple formule :

En supposant que la donnée à traiter est en A1
Formule que tu recopies sur l'ensemble de la colonne
=GAUCHE(A1;NBCAR(A1)-2)/100

MichD
---------------------------------------------------------------


Merci MichD
la formule fonctionne à merveille, il ne me reste plus qu'à me pencher sur la 2° partie du problème
cdlt
claudius47
Avatar
MichD
Sur ton problème de comparaison de 2 classeurs,
si tu as besoin d'aide, énonce clairement ce que tu tentes
de réaliser!


MichD
---------------------------------------------------------------