Comment trouver la solution à l'erreur 2029?

muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 26 sept. 2017 à 15:26 - Dernière réponse : cs_MPi 3858 Messages postés mardi 19 mars 2002Date d'inscription 21 novembre 2017 Dernière intervention
- 27 sept. 2017 à 16:14
VBA Office (Excel, Word ...) Posez votre question Signaler Répondre au sujet
Bonjour tout le monde,

je galère depuis sur une erreur que m'affiche le contenu de certaines cellules: "erreur 2029" quand je fais l'espion. J'ai déjà essayé de regarder sur le net et il s'est avéré que cela était dû aux caractères "=" et "-" présents dans les valeurs des cellules et considérées alors comme des formules. j'ai copié et coller un code par là pour résoudre la situatuin mais à la compilation mon code rame et excel arrête de fonctionner. Voilà ce que j'ai fait jusque présent
Sub Deleting_Duplicates()

Dim ifWbk As Workbook
Dim ifSheet As Worksheet
Dim row() As String
Dim a As Integer
Dim chcaracter As String

Application.ScreenUpdating = False
a = 0
i = 2
nb = 20
t = 0
ReDim row(19)
Set ifWbk = ThisWorkbook
Set ifSheet = ifWbk.Sheets("IPR Fields")
While ifSheet.Cells(i, 5).Value <> ""
For idcol = 1 To 19
row(idcol) = ifSheet.Cells(i, idcol).Value
Next
t = i + 1
While t <> nb_rows(ifSheet)
For idcol = 1 To 19
If IsError(ifSheet.Cells(t, idcol).Value) Then
'~~> Check if it is a 2029 error
If ifSheet.Cells(t, idcol).Value = CVErr(2029) Then
If ifSheet.Cells(t, idcol).Value Like "*" & "=" & "*" Then
ifSheet.Cells(t, idcol).Value = Replace(ifSheet.Cells(t, idcol).Formula, "=", "")
Else
ifSheet.Cells(t, idcol).Value = Replace(ifSheet.Cells(t, idcol).Formula, "-", "")
End If
End If
End If
chcaracter = ifSheet.Cells(t, idcol).Value
If row(idcol) <> chcaracter Then
a = 1
End If
Next
If a = 0 Then
Cells(t, 1).EntireRow.Delete
End If
t = t + 1
a = 0
Wend
i = i + 1
Wend
Application.ScreenUpdating = True
ifWbk.Close savechanges:=True
End Sub
Function nb_rows(ifSheet As Worksheet)

Dim l, i As Long
l = 0
i = 2

While ifSheet.Cells(i, 5).Value <> ""
l = l + 1
i = i + 1
Wend
nb_rows = l + 1

End Function


A l'aide s'il vous plait.
Afficher la suite 
61Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention

1 réponse

Répondre au sujet
cs_MPi 3858 Messages postés mardi 19 mars 2002Date d'inscription 21 novembre 2017 Dernière intervention - 27 sept. 2017 à 16:14
0
Utile
Bonjour,

J'essaierais comme ceci, en y ajoutant une apostrophe
If ifSheet.Cells(t, idcol).Value = CVErr(2029) Then
ifSheet.Cells(t, idcol).Value = "'" & ifSheet.Cells(t, idcol).Value
End If

Commenter la réponse de cs_MPi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.