Sub Importation3()
Dim c1 As Workbook 'déclare la variable c1 (Classeur 1)
Dim c2 As Workbook 'déclare la variable c2 (Classeur 2)
Dim o1 As Object 'déclare la variable o1 (Onglet du classeur 1)
Dim o2 As Object 'déclare la variable o2 (Onglet du classeur 2)
Dim i As Integer, BonneLigne As Integer, DernièreLigne As Integer
Dim Largeur As Integer, Longueur As Integer, Vitesses As Integer
Dim CodeType As String, Epaisseur As Variant
Dim test As Boolean 'déclare la variable test
Set c1 = ThisWorkbook 'définit le classeur c1
Set o1 = c1.Sheets("Feuil1") 'définit l'onglet du classeur 1
Longueur = o1.Range("D1").Value 'affectation de variable d'après mon fichier en cours'
Largeur = o1.Range("E1").Value 'affectation de variable d'après mon fichier en cours'
Epaisseur = InputBox("Veuillez saisir l'épaisseur de votre panneau:", "Epaisseur du planning", Range("B1").Value)
If Epaisseur = "" Then Exit Sub Else Epaisseur = CInt(Epaisseur)
CodeType = InputBox("Veuillez saisir le type complet de panneau:", "Type panneaux", Range("C1").Value)
If CodeType = "" Then Exit Sub
Workbooks.Open Filename:="C:\Users\Gim\Documents\testchut.xlsx" 'pour ouvrir le fichier ou les données sont contenues sous forme de tableau dynamique'
Set c2 = Workbooks("testchut.xlsx") 'définit le classeur c2
Set o2 = c2.Sheets("Feuil1") 'définit l'onglet du classeur c2
o2.Range("A1").AutoFilter 'active le filtre automatique
o2.Range("A1").AutoFilter field:=4, Criteria1:=CodeType 'filtre la colonne D avec "CodeType" comme critère
o2.Range("A1").AutoFilter field:=5, Criteria1:=Epaisseur 'filtre la colonne E avec "Epaisseur" comme critère
o2.Range("A1").AutoFilter field:=6, Criteria1:=Largeur 'filtre la colonne F avec "Largeur" comme critère
o2.Range("A1").AutoFilter field:=7, Criteria1:=Longueur 'filtre la colonne G avec "Longueur" comme critère
mx = Application.WorksheetFunction.Max(o2.Columns(9).SpecialCells(xlCellTypeVisible)) 'définit la vitesse maximum mx
o2.Range("A1").AutoFilter field:=9, Criteria1:=mx 'filtre la colonne I avec "mx" comme critère
'condition : si il n'y a que deux valeurs dans la colonne A
If Application.WorksheetFunction.CountA(o2.Columns(1).SpecialCells(xlCellTypeVisible)) = 2 Then
'définit la BonneLigne
BonneLigne = o2.Cells(Application.Rows.Count, 1).End(xlUp).Row
Else 'sinon
MsgBox "plusieur données correspondent au critères !" 'message
'colore en rouge toutes les cellules visible de la colonne 9 (=I)
o2.Columns(9).SpecialCells(xlCellTypeVisible).Interior.ColorIndex = 3
c2.Activate 'active le classeur c2
o2.Select 'active l'onglet o2
o2.Range("A1").AutoFilter 'désactive le filtre automatique
Exit Sub 'sort de la procédure
End If 'fin de la condition
o2.Range("A1").AutoFilter 'désactive le filtre automatique
o1.Range("E6").Value = BonneLigne 'place en E6 le numéro de ligne
o1.Range("F6").Value = mx 'place en F6 la vitesse maximum mx
c1.Close ' pour fermer le fichier de données
End Sub