Problème d'éxecution de la macro
Re-bonjour à tous,
Je ne despère pas d'y arriver un jour sans votre aide.
J'ai crée ce code et je ne comprends pas pourquoi il ne tourne pas.
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| Sub CorrectionGP3V4()
'Définition des variables onglet "Correction Ophyr"
Dim VLRFCE As Range 'Valeur de référence onglet
Dim CDDEVI As Variant 'Valeur de la devise
Dim AGEMT As Variant 'Valeur de l'agent
Dim CDRES As Variant 'Valeur de la résidence
Dim CDZON As Variant 'Valeur de la zone
Dim NATIT As Variant 'Valeur de la nature du titre
Dim RESET As Variant 'Valeur de la résidence 2
Dim REZON As Variant 'Valeur de la zone 2
Dim TYMNT As Variant 'Valeur du type de montant
Dim MTDVLC As Variant 'Valeur du montant
Dim VLRFCE1 As Range 'Entête de référence onglet
Dim CDDEVI1 As Variant 'Entête de la devise
Dim AGEMT1 As Variant 'Entête de l'agent
Dim CDRES1 As Variant 'Entête de la résidence
Dim CDZON1 As Variant 'Entête de la zone
Dim NATIT1 As Variant 'Entête de la nature du titre
Dim RESET1 As Variant 'Entête de la résidence 2
Dim REZON1 As Variant 'Entête de la zone 2
Dim TYMNT1 As Variant 'Entête du type de montant
Dim MTDVLC1 As Variant 'Entête du montant
'Définition de la variable onglet "ESTD"
Dim VLRFCE2 As Range
'Définition du numéro de colonne onglet "ESTD"
Dim ColumNumber As Integer
'Définition des feuilles
Dim ShCO As Worksheet
Dim ShESTD As Worksheet
Set ShCO = Worksheets("Correction_Ophyr")
Set ShESTD = Worksheets("ESTD")
'Valeur recherchée
For Each VLRFCE In ShCO.Range("a8", ShCO.Range("a1048576").End(xlUp)).Cells
'Entete de colonne
VLRFCE1.Range = Range("a6")
CDDEVI1 = VLRFCE1.Offset(0, 4).Value
AGEMT1 = VLRFCE1.Offset(0, 6).Value
CDRES1 = VLRFCE1.Offset(0, 7).Value
CDZON1 = VLRFCE1.Offset(0, 8).Value
NATIT1 = VLRFCE1.Offset(0, 9).Value
RESET1 = VLRFCE1.Offset(0, 10).Value
REZON1 = VLRFCE1.Offset(0, 11).Value
TYMNT1 = VLRFCE1.Offset(0, 12).Value
MTDVLC1 = VLRFCE1.Offset(0, 13).Value
'Définition des valeurs
CDDEVI = VLRFCE.Offset(0, 4).Value
AGEMT = VLRFCE.Offset(0, 6).Value
CDRES = VLRFCE.Offset(0, 7).Value
CDZON = VLRFCE.Offset(0, 8).Value
NATIT = VLRFCE.Offset(0, 9).Value
RESET = VLRFCE.Offset(0, 10).Value
REZON = VLRFCE.Offset(0, 11).Value
TYMNT = VLRFCE.Offset(0, 12).Value
MTDVLC = VLRFCE.Offset(0, 13).Value
'Plage de recherche
For Each VLRFCE2 In ShESTD.Range("E3", ShESTD.Range("e1048576").End(xlUp)).Cells
'Condition sur la référence
If VLRFCE2.Value = VLRFCE.Value Then
ColumNumber = ShESTD.Range("E1:ED1").Find(TYMNT1).Column
If VLRFCE2.EntireRow.Cells(TYMNT).Value = TYMNT.Value Then
ColumNumber = ShESTD.Range("e1:ED1").Find(CDDEVI1).Column
If VLRFCE2.EntireRow.Cells(CDDEVI).Value <> CDDEVI.Value Then
VLRFCE2.EntireRow.Cells(CDDEVI).Value = CDDEVI.Value
VLRFCE2.EntireRow.Cells(ColumNumber).Interior.ColorIndex = 20
End If
ColumNumber = ShESTD.Range("e1:ED1").Find(AGEMT1).Column
If VLRFCE2.EntireRow.Cells(AGEMT).Value <> AGEMT.Value Then
VLRFCE2.EntireRow.Cells(AGEMT).Value = AGEMT.Value
VLRFCE2.EntireRow.Cells(ColumNumber).Interior.ColorIndex = 20
End If
ColumNumber = ShESTD.Range("e1:ED1").Find(CDRES1).Column
If VLRFCE2.EntireRow.Cells(CDRES).Value <> CDRES.Value Then
VLRFCE2.EntireRow.Cells(CDRES).Value = CDRES.Value
VLRFCE2.EntireRow.Cells(ColumNumber).Interior.ColorIndex = 20
End If
ColumNumber = ShESTD.Range("e1:ED1").Find(CDZON1).Column
If VLRFCE2.EntireRow.Cells(CDZON).Value <> CDZON.Value Then
VLRFCE2.EntireRow.Cells(CDZON).Value = CDZON.Value
VLRFCE2.EntireRow.Cells(ColumNumber).Interior.ColorIndex = 20
End If
ColumNumber = ShESTD.Range("e1:ED1").Find(NATIT1).Column
If VLRFCE2.EntireRow.Cells(NATIT).Value <> NATIT.Value Then
VLRFCE2.EntireRow.Cells(NATIT).Value = NATIT.Value
VLRFCE2.EntireRow.Cells(ColumNumber).Interior.ColorIndex = 20
End If
ColumNumber = ShESTD.Range("e1:ED1").Find(RESET).Column
If VLRFCE2.EntireRow.Cells(RESET).Value <> RESET.Value Then
VLRFCE2.EntireRow.Cells(RESET).Value = RESET.Value
VLRFCE2.EntireRow.Cells(ColumNumber).Interior.ColorIndex = 20
End If
ColumNumber = ShESTD.Range("e1:ED1").Find(REZON1).Column
If VLRFCE2.EntireRow.Cells(REZON).Value <> REZON.Value Then
VLRFCE2.EntireRow.Cells(REZON).Value = REZON.Value
VLRFCE2.EntireRow.Cells(ColumNumber).Interior.ColorIndex = 20
End If
ColumNumber = ShESTD.Range("e1:ED1").Find(MTDVLC1).Column
If VLRFCE2.EntireRow.Cells(MTDVLC).Value <> MTDVLC.Value Then
VLRFCE2.EntireRow.Cells(MTDVLC).Value = MTDVLC.Value
VLRFCE2.EntireRow.Cells(ColumNumber).Interior.ColorIndex = 20
End If
End If
End If
Next VLRFCE2
Next VLRFCE
End Sub |
Il y a 2 soucis Le 1er est que la macro s'arrête sur [ VLRFCE1.Range = Range("a6")] l'objet n'est pas bon. je ne sais pas lequel mettre pour me positionner dans la cellule A6.
Le 2nd souci est [ ColumNumber = ShESTD.Range("E1:ED1").Find(TYMNT1).Column ], je ne vois pas pourquoi.
Je vous remercie par avance pour votre aide.