Problème macro excel 2003 vers 2007
Bonsoir,
Je travaille mon fichier à la maison sous excel 2003, ma macro fonctionne la plupart du temps mais a tout de même parfois un bug sur une ligne. Au travail avec excel 2007, cette ligne ne passe plus du tout!8O j'avoue que je ne trouve pas de solution.
Ci-dessous la ligne du délit en rouge. En essayant de la traduire en bon français, je recherche à mettre à jour les lignes où la valeur en colonne U est supérieure à 1, et où la 3eme, la 4ème, la 5eme et la 12ème colonne précedente sont vides.
Merci pour vos lumières!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
Sub MAJSalaire()
Dim SheetReq As Worksheet, SheetBD As Worksheet, SheetMaJ As Worksheet
Dim NumMois As Byte
Dim ValeurReq As Variant
Dim TheCell As Range, CellFind As Range
Dim Matricule As String
Dim i As Integer
'On pointe les différentes feuilles à l'aide de variables
Set SheetReq = ThisWorkbook.Sheets("REquête")
Set SheetBD = ThisWorkbook.Sheets("PREVISIONNEL")
Set SheetMaJ = ThisWorkbook.Sheets("MAJmois")
'On va chercher nos infos
NumMois = SheetMaJ.Range("C1")
'Formule visant à mettre en évidence les changements de salaire en cours d'année et
'à les modifier pour le restant de l'année
'On boucle sur les cellules contenues dans la colonne U
For Each TheCell In SheetReq.Range("U2", SheetReq.Cells(SheetReq.Rows.Count, "U").End(xlUp))
'On garde notre valeur en tête
ValeurReq = TheCell.Offset(0, -2).Value
'On regarde si la cellule contient une valeur supérieur à 1
If TheCell > 1 And TheCell.Offset(0, -3) = 0 And TheCell.Offset(0, -4) = 0 And TheCell.Offset(0, -5) = 0 And TheCell.Offset(0, -12) = 0 Then 'On récupère le matricule (on regarde 11 colonnes en arrière pour voir la colonne A)
Matricule = TheCell.Offset(0, -20)
'On recherche le matricule dans PREVISIONNEL
Set CellFind = SheetBD.Columns("B").Find(Matricule, LookIn:=xlValues)
'On verifie si un matricule correspondant a été trouvé
If Not CellFind Is Nothing Then
'On colle la valeur à sa place du mois étudié au mois de décembre
For i = NumMois To 18
CellFind.Offset(0, i - 1) = ValeurReq
Next i
End If
End If
'On passe à la cellule suivante
Next
End Sub |