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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
| Private Sub ComboBoxFeux_Click()
Application.EnableEvents = False
Application.ScreenUpdating = False
With ComboBoxFeux
TextBoxFeu.Text = .List(.ListIndex, 1)
TextBoxTotalDevis = Sheets("devis").Range("I2").Value
End With
'quand on clique sur une valeur de la comboboxFeux,
'on affiche le détail qui compose le feu sélectionné
Dim ShF As Worksheet
Set ShF = Worksheets("feux")
Dim Feu As String
Feu = ComboBoxFeux.Value
On Error Resume Next
With ShF
'définir la zone de critère
'choisir l'étiquette de la colonne A1 --> champ où exploiter le filtre
.Range("I1") = .Range("A1")
.Range("I2") = Feu 'la valeur du critère du filtre
ShF.Range("K1").CurrentRegion.Clear
'définir la plage de cellules pour le filtre...
With .Range("A1:G" & .Range("A65536").End(xlUp).Row)
'application du filtre
.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=ShF.Range("I1:I2"), _
CopyToRange:=ShF.Range("K1"), Unique:=False
'copie vers la cellule où débutera la plage résultat
End With
.ShowAllData
End With
Sheets("devis").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
Sheets("recupdevis").Select
Cells.Select
Selection.Copy
Sheets("devis").Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Sheets("recupdevis").Select
Range("A1").Select
Application.CutCopyMode = False
Sheets("devis").Select
Range("A1").Select
Dim Rg As Range
With Worksheets("devis")
Set Rg = .Range("K1:K" & .Range("K65536").End(xlUp).Row)
End With
Do Until ActiveCell = ""
If ActiveCell = 0 Then
Selection.EntireRow.Delete Shift:=xlDown
Else
ActiveCell.Offset(1, 0).Range("A1").Select
End If
Loop
Sheets("articles").Select
Range("A1").Select
Dim DerLig As Long
'Feuil7 n'est pas le nom de l'onglet mais de la propriété NAME
'de la feuille visible seulement dans la fenêtre de l'éditeur de code.
With Feuil7
'si aucune donnée dans la feuille, sortie de la procédure.
If IsEmpty(.UsedRange) Then Exit Sub
'Trouver la dernière ligne où il y a des données
'dans les colonnes A:C (à adapter)
DerLig = .Range("A:K").Find(What:="*", _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Comme les données débutent en ligne 5, derlig ne peut pas être plus petit que 5
'If Derlig < 5 Then Derlig = 5
'Affectation de la plage de cellules à une variable objet Range
Set Rg = .Range("C1:C" & DerLig)
End With
With Me.ListBoxFresque
' Nombre des colonnes du tableau ou plage de données
.ColumnCount = Rg.Columns.Count
'S'assure que l'on peut sélectionner plus d'une ligne à la fois
.MultiSelect = fmMultiSelectExtended
'largeur des colonnes dans le listbox
.ColumnWidths = "20"
'Remplir le listbox avec les données du tableau
.List = Rg.Value
'S'assure qu'aucune ligne de listbox n'est sélectionnée.
.ListIndex = -1
End With
'Dim DerLig As Long
'Feuil7 n'est pas le nom de l'onglet mais de la propriété NAME
'de la feuille visible seulement dans la fenêtre de l'éditeur de code.
With Feuil7
'si aucune donnée dans la feuille, sortie de la procédure.
If IsEmpty(.UsedRange) Then Exit Sub
'Trouver la dernière ligne où il y a des données
'dans les colonnes A:C (à adapter)
DerLig = .Range("A:K").Find(What:="*", _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Comme les données débutent en ligne 5, derlig ne peut pas être plus petit que 5
'If Derlig < 5 Then Derlig = 5
'Affectation de la plage de cellules à une variable objet Range
Set Rg = .Range("D1:D" & DerLig)
End With
With Me.ListBoxQte
' Nombre des colonnes du tableau ou plage de données
.ColumnCount = Rg.Columns.Count
'S'assure que l'on peut sélectionner plus d'une ligne à la fois
.MultiSelect = fmMultiSelectExtended
'largeur des colonnes dans le listbox
.ColumnWidths = "30"
'Remplir le listbox avec les données du tableau
.List = Rg.Value
'S'assure qu'aucune ligne de listbox n'est sélectionnée.
.ListIndex = -1
End With
With Feuil7
'si aucune donnée dans la feuille, sortie de la procédure.
If IsEmpty(.UsedRange) Then Exit Sub
'Trouver la dernière ligne où il y a des données
'dans les colonnes A:C (à adapter)
DerLig = .Range("A:K").Find(What:="*", _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Comme les données débutent en ligne 5, derlig ne peut pas être plus petit que 5
'If Derlig < 5 Then Derlig = 5
'Affectation de la plage de cellules à une variable objet Range
Set Rg = .Range("E1:F" & DerLig)
End With
With Me.ListBoxArtDes
' Nombre des colonnes du tableau ou plage de données
.ColumnCount = Rg.Columns.Count
'S'assure que l'on peut sélectionner plus d'une ligne à la fois
.MultiSelect = fmMultiSelectExtended
'largeur des colonnes dans le listbox
.ColumnWidths = "70"
'Remplir le listbox avec les données du tableau
.List = Rg.Value
'S'assure qu'aucune ligne de listbox n'est sélectionnée.
.ListIndex = -1
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub |
Partager