Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Arrondi intempestif

  • Initiateur de la discussion Initiateur de la discussion hervé_débutant
  • 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 !

H

hervé_débutant

Guest
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
 
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
 
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....
 
Re : Arrondi intempestif

Re,

Il est fort le Marco 😉

Hervé : je pense que JP n'effaçait pas les données avant de lancer la macro

JP :
Tes cellules couleurs, rouges, bleues, sont dans ton dernier fichier des valeurs saisies.....
Non ce sont des valeurs marquées par la macro

A+
 
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
 
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

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)...
 
- 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

Réponses
23
Affichages
2 K
Réponses
2
Affichages
1 K
D
Réponses
4
Affichages
1 K
B
Réponses
60
Affichages
8 K
Bob O' Deville
B
R
Réponses
3
Affichages
4 K
R
Réponses
57
Affichages
6 K
L
Réponses
3
Affichages
3 K
Réponses
68
Affichages
9 K
Etoto0026
E
A
Réponses
5
Affichages
1 K
AlicePrince
A
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…