table de conversion, sous condition de valeur en d

  • Initiateur de la discussion Initiateur de la discussion avoriaz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

P
Réponses
1
Affichages
839
P
Retour