VBA excel - Erreur '13' Type incompatible

Résolu/Fermé
Calvin - 17 févr. 2009 à 11:01
 alexis - 17 oct. 2013 à 11:33
Bonjour,

Je souhaite que tous les chiffres présents dans une colonne soient sur 2 caractères ( que 1 devienne 01, etc...).
J'ai donc écrit une boucle qui fonctionne avec excel 2003 mais qui me renvoie une erreur sur 97 : "Erreur d'exécution 13 - Type incompatible".
La ligne qui est surbrillée suite à l'erreur est "If(Cells(ligne, 5).Value) < 10 Then

Mais je n'arrive pas à m'en sortir. Merci par avance de votre aide.


Voici mon code :

Dim ligne As Long, finboucle As Long

ligne = 1
finboucle = 0
Columns("E:E").Select
Selection.NumberFormat = "@"

While finboucle <> 1
If (Cells(ligne, 5).Value) < 10 Then
Cells(ligne, 5).Value = "0" & Cells(ligne, 5).Value
End If
If Cells(ligne + 1, 5).Value = "" Then
finboucle = 1
End If
ligne = ligne + 1
Wend

Encore merci de ce que vous pourrez faire.

Calvin
A voir également:

1 réponse

wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 242
17 févr. 2009 à 11:20
Bonjour

en definissant ta colonne E en format texte, ta colonne E est du texte

If Val(Cells(ligne, 5).Value) < 10 Then
0
Bonjour Wilfried,

C'est tout bon.
Un grand merci.

Bonne journée à toi et @ +
0
Bonjour

j'ai la même erreur avec le code suivant :

'On cherche à savoir si une fréquence de recyclage a été définie pour cette formation
If listes.Cells(ligne_recyclage, colonne_formation + 1).Value <> "" Or listes.Cells(ligne_recyclage, colonne_formation + 1).Value <> 0 Then

'Création de la date de renouvellement
If CDbl(listes.Cells(ligne_recyclage, colonne_formation + 1).Value) = CLng(listes.Cells(ligne_recyclage, colonne_formation + 1).Value) Then 'Vérifie si la valeur entrée est un entier ...
'...si oui on applique le code suivant.
offset = Format(saisie.Cells(i, colonne_saisie + 2).Value, "yyyy") + listes.Cells(ligne_recyclage, colonne_formation + 1).Value
date_recyclage = Format(saisie.Cells(i, colonne_saisie + 2).Value, "dd") & "/" & Format(saisie.Cells(i, colonne_saisie + 2).Value, "mm") & "/" & offset
recap.Cells(j, colonne_recap + 1).Value = date_recyclage
recap.Cells(j, colonne_recap + 1).Interior.Color = RGB(153, 255, 153)
Else:

-- pouvez vous m'aider svp--

Bonne journée
0