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
| Sub ExportChoix()
Dim wsBase As Worksheet
Dim wsChoix As Worksheet
Dim lastRowBase As Long, i As Long, j As Long, lastRowChoix As Long
' Spécifier la feuille de calcul
Set wsChoix = ThisWorkbook.Sheets("Choix")
' Définir les feuilles de travail
Set wsBase = ThisWorkbook.Sheets("Base")
' Trouver la dernière ligne de la colonne "O" de la feuille "Base"
lastRowBase = wsBase.Cells(wsBase.Rows.Count, "O").End(xlUp).Row
' Trouver la dernière ligne dans la colonne A de la feuille "Choix"
lastRowChoix = wsChoix.Cells(wsChoix.Rows.Count, "A").End(xlUp).Row
' Supprimer les lignes de A5 à la dernière ligne dans les colonnes A à AB de la feuille "Choix"
wsChoix.Range("A5:AB" & lastRowChoix).Delete
' Réinitialiser le compteur de lignes pour la feuille "Choix"
lastRowChoix = 5
' Parcourir la colonne "O" à partir de la ligne 1 jusqu'à la dernière ligne
For i = 5 To lastRowBase
' Vérifier si la valeur dans la colonne "O" est égale à 1, 2, 3, 4, 5, 6 ou 7
If wsBase.Cells(i, "O").Value >= "1" And wsBase.Cells(i, "O").Value <= "7" Then
' Filtrer les cellules visibles dans la plage de cellules "A:O" de la ligne i de la feuille "Base"
wsBase.Rows(i).Columns("A:O").SpecialCells(xlCellTypeVisible).Copy Destination:=wsChoix.Cells(lastRowChoix, 1)
lastRowChoix = lastRowChoix + 1
End If
Next i
' Si aucune ligne n'est copiée, afficher un message
If lastRowChoix = 0 Then
MsgBox "Aucun choix n'a été effectué.", vbInformation
Else
MsgBox "Export de " & lastRowChoix - 5 & " choix effectué.", vbInformation
End If
AppliquerFormule_Choix
End Sub |
Partager