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
| Option Explicit ' Pour rendre obligatoire la déclaration de toutes les variables utilisées
Sub Macro2()
Dim Origine As Worksheet, Dest As Worksheet
Dim DocNumber As Variant
Dim Ligne As Variant
Dim Statut As Variant
Dim DateStatut As Variant
Dim reponse
Dim i As Long
Dim R As Range
Set Origine = Worksheets("ExploitReport")
Set Dest = Sheets("SuiviMaJ")
'Dest.Activate
For i = 2 To Rows.Count
DocNumber = Dest.Cells(i, 5).Value
'Dest.Cells(i, 5).Select ' Ce Select sert uniquement durant la programmation pour s'assurer que le programme est correct
' Ensuite on peut supprimer cette commande ou on la fait précéder d'une apostrophe pour la transformeer en commentaire
If DocNumber = "" Then
Exit For ' pour sortir de cette routine FOR...NEXT
Else
If Dest.Cells(i, 5).Offset(0, 5).Value = "" Then
'Voici comment utiliser FIND
Set R = Origine.Range("A1:A100").Find(What:=DocNumber, LookIn:=xlValues, LookAt:=xlWhole) 'xlValues remplace xlFormulas pour chercher également dans les cellules dont la valeur est le résultat d'une formule
'Le Set R fait que R n'est pas la valeur, mais un objet Range (la cellule elle-même où a été trouvée la valeur recherchée
If R Is Nothing Then
'reponse = MsgBox(DocNumber & " non trouvé ", vbOKCancel, "Erreur") 'Cette commande est désactivée par l'apostrophe
'If reponse = vbCancel Then Exit Sub 'Cette commande est désactivée par l'apostrophe
Else
Ligne = R.Row
'Etape 2 - Rechercher les valeurs Satut et DateStatut dans ExploitReport'
Statut = Origine.Cells(Ligne, 2).Value
DateStatut = Origine.Cells(Ligne, 3).Value
Dest.Cells(i, 5).Offset(0, 5).Value = Statut ' Utiliser Value pour Texte ou Nombre
Dest.Cells(i, 5).Offset(0, 6).FormulaLocal = DateStatut 'Utiliser FormulaLocal pour les Dates
End If
End If
End If
Next
End Sub |
Partager