Offset negatif qui provoque une erreur ?

Bonjour,

je suis en train de jouer avec les offsets et normalement ils devraient pouvoir être négatifs, mais dans le code ci dessous j'ai une erreur "Runtime error 1004 - "Application defined or object defined error" ?

Je suppose que ca ne vient pas du offset même si c'est cette ligne qui me provoque l'erreur, mais je ne suis pas capable de définir d'ou cela provient, le code ci dessous :

Sub Populate_liste_Cliquer()

Dim x, y, z As Integer
Dim curCellToModify, curCellToCopy As Range
Dim Derniere_Ligne As Long
Dim First_Result As Boolean

'******************************************
'Calcul de la dernière ligne du tableau de l onglet Assemment test matrix pour la mise à jour du tableau
ThisWorkbook.Sheets("Assesment test matrix").Activate
Derniere_Ligne = ActiveSheet.Cells(ActiveSheet.Rows.Count, "C").End(xlUp).row
ThisWorkbook.Sheets("Export_results_datas").Activate

''selection d un cellule unique
'Range("D8").Select
''Selection d une plage de celluler
'Range("D8:O100").Select
''Ecriture dans une plage de cellule
'Range("D12:O100").Value = ""
''Range(D8:O100)

'************************************************************
'La cellule que ou on va récupérer les notations
Set curCellToCopy = ThisWorkbook.Sheets("Assesment test matrix").Range("D6")

'************************************************
'La cellule ou on va copier la valeur récupérée au desssus
Set curCellToModify = ThisWorkbook.Sheets("Export_results_datas").Range("D16")

'Y = Column/Colonne
y = 0
z = 0
' X = Row/Ligne
x = 0

First_Result = True

For x = 0 To 5
 For y = 0 To 5
 'offset(ROW, COLUMN)
 'curCell.Offset(0, 1).Value = inttostr(34)

If First_Result = True Then

 '********************************************************
 'rajout du nom et de la position de chaque personne
 'Nom
 curCellToModify.Offset(x, y - 2).Value = curCellToCopy(x, y - 3).Value
 'Position
 curCellToModify.Offset(x, y - 1).Value = curCellToCopy(x, y - 2).Value

 '**********************************************************
 'ici je divise par 2 pour les lignes, comme il y a une ligne sur 2
 'a copier pour ne pas avoir d'espacemenet entre les lignes de l-onglet
 'export_resultas_datas, j utilise également une nouvelle variable (Z)
 ' qui va éviter à X d être divisée plusieurs fois de suite par 2 !

    If x = 0 Then
        curCellToModify.Offset(x, y).Value = curCellToCopy(x + 1, y + 1).Value
    Else
        z = x / 2
        curCellToModify.Offset(z, y).Value = curCellToCopy(x + 1, y + 1).Value
    End If

Else
  '************************************************
  'ici je vais regarder que si on est au deuxième résultat, que l'on copie dans la
  'bonne cellule d ou le +6 sur le Y, pour rester sur la même ligne il faut que
  'je fasse un z=x/2 et ensuite je déduis -1 à la valeur
    If x = 0 Then
        curCellToModify.Offset(x, y + 6).Value = curCellToCopy(x + 1, y + 1).Value
    Else
        z = x / 2
        curCellToModify.Offset(z - 1, y + 6).Value = curCellToCopy(x + 1, y + 1).Value
    End If
 End If

 '********************************************************************
 'le next va incrementer le resultat du y donc pas besoin de x = x + 1!
 Next

 '***************************************************
 'Ici il me faut Y = Y + 1 pour pouvoir incrémenter de 2, ATTENTION car
 'le next va incrémenter de 1 déjà
 x = x + 1
 y = 0

 '**********************************************
 If First_Result = True Then
    First_Result = False
 Else
    First_Result = True
 End If

Next

End Sub

Merci d'avance

David

Je me corrige moi même

Une petite faute de frappe qui m'est passée devant les yeux sans que je ne l'a voit.

j'avais oublié le ".offset" après chaque cellule à copier...

Donc ca :

curCellToModify.Offset(x, y + 6).Value = curCellToCopy.offset(x + 1, y + 1).Value

au lieu de ca :

curCellToModify.Offset(x, y + 6).Value = curCellToCopy(x + 1, y + 1).Value
Rechercher des sujets similaires à "offset negatif qui provoque erreur"