Erreur 1004 sur boucle If And Or

Bonjour à toutes et à tous.

J'ai un soucis avec cette boucle :

With ThisWorkbook.Sheets("PERSONNEL")
For j = 1 To derligne_Perso
            If .Cells(j, 2).Value <> "" And .Cells(j, 3).Value = "" And .Cells(j, 4).Value = "" And .Cells(j, 5).Value = "" And .Cells(j, 6).Value = "" And .Cells(j, 7).Value = "" Then
            .Cells(j - 1, 2).Value = .Cells(j, 2).Value

            Rows(j).EntireRow.Delete shift:=xlUp
            End If

            If .Cells(j, 2).Value <> "" And .Cells(j - 1, 10) = "" And (.Cells(j - 1, 3).Value <> "" Or .Cells(j - 1, 4).Value <> "" Or .Cells(j - 1, 5).Value <> "" Or .Cells(j - 1, 6).Value <> "" Or .Cells(j - 1, 7).Value <> "") Then
            .Cells(j - 1, 2).Value = .Cells(j, 2).Value
            End If
Next j
End With

L'erreur est sur le deuxième bloc If.

Concrètement, je veux que :

  • si les cellules (j,2) et (j,10) sont respectivement non vide et vide
  • et qu'une des autres cellules sus-citées ne l'est pas

- alors la valeur de la cellule (j-1, 2) soit égale à celle de la cellule (j,2).

Merci d'avance pour votre aide

Je viens de tenter de décomposer la macro en plusieurs bloc pour éviter les OR :

            If .Cells(j, 2).Value <> "" And .Cells(j - 1, 10) = "" And .Cells(j - 1, 3).Value <> "" Then
            .Cells(j - 1, 2).Value = .Cells(j, 2).Value
            End If

J'ai toujours la même erreur 1004 sur ma ligne If.

Bonjour,

Pour J=1 quel est la valeur de J-1 ?

Cdlt.

Bonjour,

Question tout à fait pertinente qui me fait dire que je suis idiot.

J'ai fait lancer la boucle à partir de j=2 (la première ligne du tableau étant les entêtes), et ça marche.

Merci beaucoup !

Rechercher des sujets similaires à "erreur 1004 boucle"