J'ai une question j'ai un code qui en deuxième partie va vérifier si ma valeur de ma variable c est dans mon TabFu (fu.xls) si oui il le met en jaune
mais voila sa sa marche mais quand je met une condition IF ses comme si il ne saurait pas ce qu'est la valeur de C. Donc la condition ne s'applique pas...
J'ai lit sur le forum sur les objet public mais sa ne marche toujour pas...
quelqu'un pourrait m'aider...
mais voila sa sa marche mais quand je met une condition IF ses comme si il ne saurait pas ce qu'est la valeur de C. Donc la condition ne s'applique pas...
J'ai lit sur le forum sur les objet public mais sa ne marche toujour pas...
quelqu'un pourrait m'aider...
Code:
Option Explicit
Option Base 1
Dim LIG, LIG2, LIG3, FU, VERIFJOB As Long
Dim J, K, L, I, N As Long
Dim TabFu As Variant
Dim Chemin As String
Public ws As Worksheet
Public C As Object
Sub MACROKeven()
' premiere parti
Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path ' même dossier
' Chemin = "D:\keven\désuetude\bd.xls" 'a mettre
Workbooks.Open Chemin & "\fu.xls"
With ActiveWorkbook
With .Worksheets("feuil1")
TabFu = .Range("A1:A" & .Range("A65536").End(xlUp).Row).Value
End With
.Close
End With
LIG = Feuil1.Range("B65536").End(xlUp).Row
LIG3 = 1
With Worksheets("EXECUTE")
For I = 1 To LIG
If Feuil1.Cells(I, 1) <> "OF:" Then
If Feuil1.Cells(I, 1) = "Article" Then
Feuil3.Cells(LIG3, 2) = Feuil1.Cells(I + 1, 1) ' ecrit le no mrp et
Feuil3.Cells(LIG3, 3) = Feuil1.Cells(I + 1, 5) ' l'écart
Feuil3.Cells(LIG3, 4) = Feuil1.Cells(I + 1, 4) ' reel
LIG3 = LIG3 + 1
End If
Else
Feuil3.Cells(LIG3, 1) = Feuil1.Cells(I, 2) & Feuil1.Cells(I, 3)
Feuil3.Cells(LIG3, 5) = Feuil1.Cells(I, 5)
Feuil3.Cells(LIG3, 6) = Feuil1.Cells(I, 7)
Feuil3.Cells(LIG3, 7) = Feuil1.Cells(I, 14)
If Feuil3.Cells(LIG3, 1) <> "" And Feuil3.Cells(LIG3, 6) <> Feuil3.Cells(LIG3, 7) Then Feuil3.Cells(LIG3, 1).Interior.ColorIndex = 6
If Feuil3.Cells(LIG3, 1) <> "" And Feuil3.Cells(LIG3, 7) = 0 And Feuil3.Cells(LIG3, 5) <> 0 Then Feuil3.Cells(LIG3, 1).Interior.ColorIndex = 6
LIG3 = LIG3 + 1
End If
Next
' deuxieme partie
Application.DisplayAlerts = False
On Error Resume Next
Sheets("temp").Delete
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "temp"
Set ws = ThisWorkbook.Sheets("EXECUTE")
I = 1
For Each C In ws.Range("B1:B65536").SpecialCells(xlCellTypeConstants, 23)
If TabFu().Find(C, LookAt:=xlWhole) Is Nothing Then
If ws.Cells(C.Row, 3) <> 0 And ws.Cells(C.Row, 3) <> "" Then C.Interior.ColorIndex = 6
I = I + 1
Sheets("temp").Cells(I, 2) = C.Address
Sheets("temp").Cells(I, 1) = C
Else
If ws.Cells(C.Row, 4) <> "" And ws.Cells(C.Row, 4) <> 0 Then C.Interior.ColorIndex = 4
End If
Next
Sheets("temp").Delete
End With
End Sub
Dernière édition: