Bonjour à tous,
j'ai un petit soucis avec un code que j'ai écris.
J'ai fais la 1ère version suivante:
Celui-ci fonctionne très bien, aucun soucis.
Maintenant je lui ai apporté quelques modifications pour qu'il applique mon calcul à toutes les lignes qui comprenne une date dans ma cellule. J'ai donc écris:
Et là le code plante au niveau de la ligne:
dateRech = Rg.Offset(0, -1)
J'ai droit à une erreur d'execution 13 - incompatibilité de type.
Je n'arrive pas à comprendre à quoi cela est dû, si quelqu'un pouvait m'éclairer.
En vous remerciant par avance.
j'ai un petit soucis avec un code que j'ai écris.
J'ai fais la 1ère version suivante:
VB:
Sub report_donnees()
Application.ScreenUpdating = False
Dim dateRech As Date, Rg As Range, derLi As Long, valeur As Double
Dim nomBVP As Variant, idBVP As Integer
nomBVP = Array("00129114", "02062842", "02148633", "02148641")
Sheets("Données Finales").Select
dateRech = Cells(3, 3).Offset(0, -1)
Sheets("CA").Select
derLi = Columns(1).End(xlDown).Row
valeur = 0
For Each Rg In Range(Cells(2, 1), Cells(derLi, 1))
If Rg.Value = dateRech Then
For idBVP = LBound(nomBVP) To UBound(nomBVP)
If Rg.Offset(0, 1).Value = nomBVP(idBVP) Then
valeur = valeur + Rg.Offset(0, 2).Value
End If
Next
End If
Next
Sheets("Données Finales").Select
Cells(3, 3).Value = valeur
Application.ScreenUpdating = True
End Sub
Celui-ci fonctionne très bien, aucun soucis.
Maintenant je lui ai apporté quelques modifications pour qu'il applique mon calcul à toutes les lignes qui comprenne une date dans ma cellule. J'ai donc écris:
VB:
Sub report_donnees()
Application.ScreenUpdating = False
Dim dateRech As Date, Rg As Range, Rg2 As Range, derLi As Long, derLi2 As Long, valeur As Double
Dim nomBVP As Variant, idBVP As Integer
nomBVP = Array("00129114", "02062842", "02148633", "02148641")
valeur = 0
Sheets("CA").Select
derLi = Columns(1).End(xlDown).Row
Sheets("Données Finales").Select
derLi2 = Columns(1).End(xlDown).Row
For Each Rg In Range(Cells(3, 3), Cells(derLi2, 3))
dateRech = Rg.Offset(0, -1)
For Each Rg2 In Sheets("CA").Range(Cells(2, 1), Cells(derLi, 1))
If Rg2.Value = dateRech Then
For idBVP= LBound(nomBVP) To UBound(nomBVP)
If Rg2.Offset(0, 1).Value = nomBVP(idBVP) Then
valeur = valeur + Rg2.Offset(0, 2).Value
End If
Next idBVP
End If
Next Rg2
Rg.Value = valeur
valeur = 0
Next Rg
Application.ScreenUpdating = True
End Sub
Et là le code plante au niveau de la ligne:
dateRech = Rg.Offset(0, -1)
J'ai droit à une erreur d'execution 13 - incompatibilité de type.
Je n'arrive pas à comprendre à quoi cela est dû, si quelqu'un pouvait m'éclairer.
En vous remerciant par avance.