la simplicité, vous avez raison.
et ça doit l'être, j'avance... ;D
faut que je trouve sur le net comment filtrer tout ça... et rappeler une donnée de cellule servant de filtre.
en tout cas, encore merci de votre aide.
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Sub ETABLIR()
Dim onglet As String
Set ws = ActiveSheet
quand = Range("A4").Value
onglet = Range("C4").Value
der = Range("A6").End(xlDown).Row
If der > 5 Then Rows("6:" & der).ClearContents
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & "Cantine.xlsx"
If FeuilleExiste(onglet) Then
Sheets(onglet).Select
j = 1
Do Until Cells(1, j) = quand Or j = 50
j = j + 1
Loop
If j < 50 Then
ligne = 6
For i = 2 To Range("A1").End(xlDown).Row
If Cells(i, j) <> "" Then
ws.Cells(ligne, 1) = Cells(i, "A")
ligne = ligne + 1
End If
Next
Else
MsgBox "La date """ & quand & """ n'a pas été trouvée !"
End If
Else
MsgBox "La feuille """ & onglet & """ n'exite pas !"
End If
Windows("Cantine.xlsx").Activate
ActiveWindow.Close Savechanges:=False
End Sub
Function FeuilleExiste(sNomFeuille As String) As Boolean
On Error GoTo Err_FeuilleExiste
FeuilleExiste = False
FeuilleExiste = Not ActiveWorkbook.Worksheets(sNomFeuille) Is Nothing
Err_FeuilleExiste:
End Function