erreur sur for each

flo2002

XLDnaute Impliqué
Bonjour à tous!
j'ai encore un petit soucis ce matin sur des fichiers de conso!
j'ai fais une macro qui doit definir un code mais selon deux conditions, et je crois que la est la faille:

Dim X As Range
Dim derlign As Long
derlign = Range("D65536").End(xlUp).Row
For Each X In Range(Cells(14, 4), Cells(derlign, 4))
If X.Offset(0, -2).Value Is Not Error Then
If X.Value Is Error Then
X.Value = X.Offset(0, 2).Value & X.Offset(0, -2).Value
End If
End If
Next X

merci de vos lumieres

de plus autres petit soucis.
Mon fichier après conso pese trop lourd (pres de 60mo). Mais j'ai plein de formule. Ne devrais je pas passer tout ca en valeur?
Sinon comment fait on dans une sub pour "vider" le presse papier?

Merci d'avance pour toutes reponses
 

Luki

XLDnaute Accro
Re : erreur sur for each

Bonjour Florent,

ça semble venir de tes Is Error, essaie ceci

Code:
Dim X As Range
Dim derlign As Long
derlign = Range("D65536").End(xlUp).Row
For Each X In Range(Cells(14, 4), Cells(derlign, 4)).Cells
    If Not [COLOR=Red]IsError(X.Offset(0, -2).Value)[/COLOR] Then
        If [COLOR=Red]IsError(X.Value)[/COLOR] Then
            X.Value = X.Offset(0, 2).Value & X.Offset(0, -2).Value
        End If
    End If
Next X
a+
 

JeanMarie

XLDnaute Barbatruc
Re : erreur sur for each

Bonjour Florent

La fonction VBA Error retourne un numéro d'erreur lors d'une exécution du code VBA. Pour savoir si une cellule contient un message d'erreur, il faut utiliser IsError.

Code:
Sub Florent()
Dim X As Range
Dim derlign As Long
derlign = Range("D65536").End(xlUp).Row
For Each X In Range(Cells(14, 4), Cells(derlign, 4))
   If Not IsError(X.Offset(0, -2)) Then
      If IsError(X) Then
         X = X.Offset(0, 2) & X.Offset(0, -2)
      End If
   End If
Next X
End Sub
@+Jean-Marie

PS : Salut Luc, tu as posté avant moi
 

Statistiques des forums

Discussions
312 343
Messages
2 087 438
Membres
103 546
dernier inscrit
mohamed tano