table de conversion, sous condition de valeur en d

A

avoriaz

Guest
bonjour, le forum

c'est avoriaz

et bien voila, j'ai un fichier qui represente des valeurs numeriques...

la premiere difficulté pour moi,et

si je trouve une valeur negative dans la colonne c, alors je la transforme en valeur positive..

la deuxieme difficulté:

j'etablie une conversion hexadecimal, dans la colonne g, sous condition que j'ai pour valeur en colonne d: deci ou bin
SI j'ai la valeur hex je recopie simplement la valeur en c

je vous joints ma macro, les conversions fonctionnes mais pas les conditions,et si j'ai une valeur negative ca bug ...

merci pour votre aide

avoriaz [file name=essais_20051216134832.zip size=38880]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essais_20051216134832.zip[/file]
 

Pièces jointes

  • essais_20051216134832.zip
    38 KB · Affichages: 24

john

XLDnaute Impliqué
Salut,

Voici une solution pour tes nombres négatifs

For Each d In Range('C14:C' & Range('C65536').End(xlUp).Row)
If d.Value < 0 Then
d.Value = Abs(d.Value) 'ici je prend la valeur absolue
End If
d.Offset(0, 3).Value = d.Value
d.Offset(0, 4).Value = String(4 - Len(Hex(d.Value)), '0') & Hex(d.Value)

Next d

Bonne journée

John
 

Gael

XLDnaute Barbatruc
Bonjour Avoriaz,

Je ne connais pas grand chose en VBA, cependant, j'ai testé ton code et te propose la modif suivante pour le problème des valeurs négatives:

d.Offset(0, 3).Value = Abs(d.Value)
d.Offset(0, 4).Value = String(4 - Len(Hex(Abs(d.Value))), '0') & Hex(Abs(d.Value))

En mettant simplement 'Abs' devant d.value on prend toujours une valeur positive.

Pour les autres conditions, je laisse la parole aux experts VBA (et si j'ai dit une bêtise pour 'Abs', ils me corrigeront).

@+

Gael

Et bonjour John, je ne t'avais pas vu et ta réponse me rassure un peu sur mes compétences VBA.

Gael

Message édité par: Gael, à: 16/12/2005 14:35
 
A

avoriaz

Guest
merci pour votre aide deja 1 point de resolu,

reste a etablir le trie maintenant...

avo :S [file name=essais2_20051216154247.zip size=37635]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essais2_20051216154247.zip[/file]
 

Pièces jointes

  • essais2_20051216154247.zip
    36.8 KB · Affichages: 19

john

XLDnaute Impliqué
Re,

Tu veux trier quoi exactement???

Sinon voici la formule pour trier
'le A14 est la première ligne de ton tableau et G737 est la dernière ligne de ton tableau et dans mon exemple je trie sur la colonne D (key1:=range('D14')) et je n'ai pas d'entête de colone (header:=xlNo)

Range('A14:G737').Sort Key1:=Range('D14'), Order1:=xlAscending, Header:= _
xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

bonne soirée.

John

Message édité par: john, à: 16/12/2005 17:43
 

avoriaz

XLDnaute Junior
voila le fonctionnement:

dans la colonne d: l'information de format est donnée entre 3 valeurs deci hex bin

en faite, si la macro trouve' deci' en colonne d sur la ligne alors je fais une conversion decimal vers hexadecimal

si la macro trouve' hex' en colonne d sur la ligne alors je fais rien puisque mon format de sortie est hex , je fais que recopier la valeur.

si la macro trouve'bin' en colonne d sur la ligne alors je fais une conversion binaire vers hexadecimal

si ca peux aider .

avo
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 398
Membres
103 536
dernier inscrit
komivi