Bonjour à tous,
Je suis bloqué par un problème sûrement évident (mais que je ne parviens pas à résoudre) :
Je teste des cellules situées dans 3 colonnes, dont 2 non contigües (I, J, L) pour vérifier que les caractères soient bien pris en compte comme des nombres et pas du texte.
Ma procédure actuelle le fait pour une colonne (col I), mais j'ai les mêmes contrôles à effectuer pour les colonnes J et L et j'en aurai sûrement d'autres par la suite.
Voici ce que j'ai tenté sans succès :
Sub LettresEnChiffres()
'Procédure corrigeant les éventuelles erreurs de saisie dans les chiffres
'qui seraient considérés comme du texte
'Corrige aussi les écarts entre les chiffres (ex 1 000 pour 1000)
Dim FD, Tb, sCol As Variant
Dim NumLigneArv, DerLigne, i, j As Long
Dim NumLigneDep As Integer
Const LDEB = "13"
Const COL1 = "I"
Const COL2 = "J"
Const COL3 = "L"
Set FD = Worksheets("Donnees_SINP")
'******Tentative de boucle sur les 3 colonnes******
sCol = Array(9, 10, 12)
For j = LBound(sCol) To UBound(sCol)
'************
DerLigne = FD.Range("C999999").End(xlUp).Row
Set plageFT = FD.Range(j & LDEB & ":" & j & DerLigne)
plageFT.Select
'Set plageFT = FD.Range(j & LDEB & ":" & j & DerLigne)
plageFT.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
plageFT.NumberFormat = "0"
Tb = FD.Range(COL1 & LDEB & ":" & COL1 & DerLigne)
For i = LBound(Tb, 1) To UBound(Tb, 1)
If Tb(i, 1) > 0 Then
Tb(i, 1) = CLng(Tb(i, 1))
End If
If Tb(i, 1) = 0 And Tb(i, 1) <> "" Then
Tb(i, 1) = ""
End If
Next
Range("I13").Resize(UBound(Tb, 1), 1) = Tb
Next j
End Sub
Merci d'avance pour l'aide et les explications que vous pourrez m'apporter
Dan