Bonjour,
J'ai des lenteurs lorsque mon tableau commence à etre volumineux, j'ai deux en onglet
- Onglet DATA
- Onglet controle
Lorsque mon tableau dans l'onglet DATA prends de l'empleur j'ai la macro qui prend du temps. le tableau peux varier en 500 à 8000 lignes.
Cette macro contôle dans la colonne AH (Prix) de l'onglet DATA si le fomat est 0.00 et non 0,00.
Si quelqu'un peut m'aider si possible
J'ai des lenteurs lorsque mon tableau commence à etre volumineux, j'ai deux en onglet
- Onglet DATA
- Onglet controle
Lorsque mon tableau dans l'onglet DATA prends de l'empleur j'ai la macro qui prend du temps. le tableau peux varier en 500 à 8000 lignes.
Cette macro contôle dans la colonne AH (Prix) de l'onglet DATA si le fomat est 0.00 et non 0,00.
Si quelqu'un peut m'aider si possible
Code:
Sub Ctrl_Prix() 'Contrôle Format Prix
Dim R As Range
Dim c As Range
Dim DecSep$
Dim x#
Dim SystemSeparator$
Dim tampon$
Dim LenTampon&
With Application
If Application.UseSystemSeparators Then
tampon$ = Space(255)
LenTampon& = GetLocaleInfo(GetSystemDefaultLCID, &HE, tampon$, 255)
DecSep$ = Left$(tampon$, LenTampon& - 1)
Else
DecSep$ = Application.International(xlDecimalSeparator)
End If
End With
Sheets(CONTROLE).Range("B14:IV14").Clear
With Sheets(DATA)
Set R = .Range("AH2", .[AH65536].End(xlUp))
For Each c In R
If DecSep$ = "." Then
c.Replace ",", DecSep$
ElseIf DecSep$ = "," Then
c.Replace ".", DecSep$
End If
c = c.Value '******28/01/09******
c.NumberFormat = "0.00"
If IsNumeric(c) Then
c.HorizontalAlignment = xlRight '******28/01/09******
c = CDbl(c)
'--- Détection des nombres avec plus de 2 décimales ---
x# = c
If CDbl(CLng(x# * 100) / 100) <> x# Then
c.NumberFormat = "General"
Sheets(CONTROLE).Range("IV14").End(xlToLeft).Offset(0, 1).Value = c.Address(REF_ABS, REF_ABS)
End If
'------------------------------------------------------
Else
Sheets(CONTROLE).Range("IV14").End(xlToLeft).Offset(0, 1).Value = c.Address(REF_ABS, REF_ABS)
End If
Next c
End With
Call CleanImages
End Sub