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
| Option Explicit
Private Sub CommandButton1_Click()
'Si tu n'utilises les variables que dans cette fonction, il faut les déclarer ici
Dim Ws_Materiel As Worksheet
Dim Ws_Accueil As Worksheet
Dim TheCell As Range
Dim RgDoublon As Range
Dim i As Integer, j As Integer, k As Integer, nbf As Integer
Dim nomAPS As String, codeAPS As String
'Init des variable feuille
Set Ws_Materiel = ThisWorkbook.Sheets("Materiel")
Set Ws_Accueil = ThisWorkbook.Sheets("Accueil")
'On va donc passer en revu le contenu de la colonne H de la feuille Accueil
'Ici on rajoutera une boucle pour traiter les differentes feuilles
'For each TheSheet in ThisWorkbook.sheets
'If On regarde si la feuille correspond a une zone, si oui
'On parcour la colonne H
For Each TheCell In Ws_Accueil.Range("F4", Ws_Accueil.Cells(Rows.Count, "F").End(xlUp))
If TheCell.Value <> "" Then
'on verifie que la valeur n'existe pas deja
With Ws_Materiel
Set RgDoublon = .Range("A5", .Cells(Rows.Count, "A").End(xlUp)).Find(TheCell.Value, , , xlWhole)
End With
If RgDoublon Is Nothing Then
'La cellule contient une valeur, on la rajoute a la suite du tableau Materiel
With Ws_Materiel.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
'Dans une boucle With si VBA rencontre un '.' sans rien devant, il rajoute le code qui suit le With en début de boucle
'(ici Ws_Materiel.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0))
.Value = TheCell
.Offset(0, 1).Value = TheCell.Offset(0, 1).Value
End With
Else
Set RgDoublon = Nothing
End If
End If
Next
'end if
'next
End Sub |
Partager