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
| Sub RecupMarque()
Dim WsS As Worksheet, WsC As Worksheet
Dim DerLigS As Long, DerligC As Long, R As Long
Dim MaRech As Range
Dim PCnom As String, firstaddress As String
Set WsS = Sheets("Feuil1") 'Affecte la feuille source (feuil1) à la variable
Set WsC = Sheets("Feuil2") 'Affecte la feuille source (feuil1) à la variable
DerLigS = WsS.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row 'Affecte le n° de ligne de la dernière ligne remplie
DerligC = WsC.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row 'Affecte le n° de ligne de la dernière ligne remplie
For R = 2 To DerligC 'Boucle sur toutes les lignes de la feuille cible (Feuil2)
PCnom = WsC.Cells(R, 1) 'Affecte le nom du PC
With WsS.Range(WsS.Cells(1, 1), WsS.Cells(DerLigS, 1)) 'Défini la plage de recherche donc toutes les lignes remplies de la colonne A de la feuille Source (feuil1)
Set MaRech = .Find(PCnom, LookIn:=xlValues) 'Affecte à MaRech la cellule qui répond à la recherche de PCnom
If Not MaRech Is Nothing Then
firstaddress = MaRech.Address 'Def de la première cellule trouvée pour éviter une boucle infinie
Do
If WsS.Cells(MaRech.Row, 2) = 2 Then 'Test si PC_Etat = 2
WsC.Cells(R, 4) = WsS.Cells(MaRech.Row, 4) 'Si oui, on écrit la marque du PC dans la 4è colonne
End If 'sinon rien
Set MaRech = .FindNext(MaRech) 'Continue la recherche
Loop While Not MaRech Is Nothing And MaRech.Address <> firstaddress 'Arrête la boucle de recherche si adresse =
End If
End With
Next R 'Passe à la ligne suivante
End Sub |
Partager