Arrondi intempestif

hervé_débutant

XLDnaute Nouveau
Bonjour le forum,

j'ai un petit problème avec une macro VBA que j'ai récupéré
Elle à pour but de me classer mes cellules mais elle arrondit leur valeur. En fait elle arrondit les valeur dans les cellules qui ont été déplacées.
Comment puis je éviter cela et garder 2 chiffre après la virgule ? j'ai besoin de votre aide

Merci beaucoup pour votre aide!

Hervé_débutant

PS: je ne peux pas trop vous renseigner sur la macro je n'en suis pas l'auteur, l'auteur qui se reconnaitra dans ce forum !!!


Voici la macro :


Option Explicit

Option Base 1

Const NbTriplets = 8
Const NbEnsembles = 10

Const strFSource = "Données Brutes"
Const strFDest_H = "Multip"

Const strFDest_V = "He"

Const Source_LDeb = 10
Const Source_ColDeb = 6
Const Dest_LDeb_H = 10
Const Dest_ColDeb_H = 6
Const Dest_LDeb_V = 10
Const Dest_ColDeb_V = 6

Sub ClasserDonnees()

Dim Tablo_H As Variant
Dim Tablo_V() As Variant

Dim Hauteur&
Dim LIGNE_H&, LIGNE_V
Dim i%, i_Ensembles%, i_NbTriplets%
Dim j%, k%
Dim Temp&

Sheets(strFSource).Select
LIGNE_H = Dest_LDeb_H
LIGNE_V = Dest_LDeb_V
Hauteur = Cells(65536, Source_ColDeb).End(xlUp).Row - Source_LDeb + 1

For i = Source_LDeb To Cells(65536, Source_ColDeb).End(xlUp).Row

Tablo_H = Range(Cells(i, Source_ColDeb), Cells(i, Source_ColDeb + 3 * NbTriplets * NbEnsembles - 1))

For i_Ensembles = 1 To NbEnsembles


For i_NbTriplets = 3 To (3 * (NbTriplets - 1)) Step 3
For j = (i_NbTriplets + 3) To (3 * NbTriplets) Step 3
If Tablo_H(1, (i_Ensembles - 1) * 3 * NbTriplets + i_NbTriplets) < Tablo_H(1, (i_Ensembles - 1) * 3 * NbTriplets + j) Then
For k = 2 To 0 Step -1
Temp = Tablo_H(1, (i_Ensembles - 1) * 3 * NbTriplets + j - k)
Tablo_H(1, (i_Ensembles - 1) * 3 * NbTriplets + j - k) = Tablo_H(1, (i_Ensembles - 1) * 3 * NbTriplets + i_NbTriplets - k)
Tablo_H(1, (i_Ensembles - 1) * 3 * NbTriplets + i_NbTriplets - k) = Temp
Next k
End If
Next j
Next i_NbTriplets
Next i_Ensembles

ReDim Tablo_V(1 To NbTriplets, 1 To (3 * NbEnsembles))
For j = 0 To (UBound(Tablo_H, 2) - 1)
Tablo_V((j \ 3) Mod 8 + 1, (j \ 24) * 3 + (j Mod 3 + 1)) = Tablo_H(1, j + 1)
Next j


With Sheets(strFDest_H)
.Cells(LIGNE_H, Dest_ColDeb_H).Resize(1, UBound(Tablo_H, 2)) = Tablo_H
LIGNE_H = LIGNE_H + 1
End With


With Sheets(strFDest_V)
.Cells(LIGNE_V, Dest_ColDeb_V).Resize(NbTriplets, (3 * NbEnsembles)) = Tablo_V
LIGNE_V = LIGNE_V + NbTriplets
End With

Erase Tablo_H
Erase Tablo_V
Next i

End Sub
 

marco57

XLDnaute Occasionnel
Re : Arrondi intempestif

Re,
Salut JCGL, la météo chez toi semble aussi favorable à Excel que chez moi, ici ou ailleurs...
Je n'ai vu le fichier joint qu'après avoir répondu. J'ai testé et ça marche mais attention, il me semble que la cellule G14 n'était pas au format standard.
A+

Marco
 

hervé_débutant

XLDnaute Nouveau
Re : Arrondi intempestif

Re bonjour le forum, Re bonjour Jean-Pierre, bonjour Marco, bonjour JCGL

si je ne devais dire qu'un mot : ENORMERCI !!!!
c'est énorme !! c'est formidable !!! ça marche !! c'est génial !!! MERCI

Ha !!! merci !!! à vous tous et merci à Marco pour cette solution !! depuis le temps que je suis là dessus !!! je cris de joie devant mon ordi !!!

Toutes mes valeurs sont conservées sans arrondi, c'est génial !!! Encore merci

à très bientôt sur ce merveilleux forum !!! merciiiiiiiiiiiiiiiiiiiiiiiiiiiiii

PS: Jean-Pierre je ne comprends pas pourquoi tu ne vois pas le problème normalement tu aurais dû voir dans les feuilles de destination les valeurs arrondies ou pas....
 

hervé_débutant

XLDnaute Nouveau
Re : Arrondi intempestif

Re tout le monde,

effectivement il est très fort le marco !!!

Effectivement les valeurs ne sont pas effacées à chaque lancement de macro la confusion venait peut-être de là ?

En tout cas merci tout le monde, voilà un dimanche qui se termine en merveille

à Bientôt

hervé_débutant
 

marco57

XLDnaute Occasionnel
Re : Arrondi intempestif

Re bonsoir à tous,
Je viens de voir le fichier joint.

Après essai, je confirme que l'erreur était bien là et en prime, je joins donc le fichier corrigé.

Comme pour JCGL, la météo est favorable au travaux excel. Il faut positiver.
Bonne fin de W.E. à toutes et tous.

Marco
 

Pièces jointes

  • Soluce Problem Arrondi2 Resolu.zip
    23.1 KB · Affichages: 22

jeanpierre

Nous a quitté
Repose en paix
Re : Arrondi intempestif

Re tous,

A la demande générale....

J'ai honte là.... voila, c'est dit....

Bouh....

Pour une fois que je ne regarde pas le code....

Désolé, mais la pluie frappe au carreau... Entrez.... (non, point trop n'en faut)...
 

Discussions similaires

Réponses
4
Affichages
418

Statistiques des forums

Discussions
314 611
Messages
2 111 146
Membres
111 051
dernier inscrit
MANUREVALAND