VBA - Extract sous condition de date (mois)
Bonjour tout le monde,
J'ai comme un petit souci, je voudrais extraire des lignes d'un tableau uniquement si la date du point est égal au mois en cours.
Voici le script que j'utilise ainsi que le fichier d'exemple:
Sub TaskList()
Dim suite As Range 'variable range
Dim trouve As Range 'variable range
Dim cellule As Range 'variable range
Dim colonne1 As Range 'variable range
Dim value1 As Range
'--------------------------------------------------------------------------------------------------------------------------
'Ref Selon le mois en cours
'--------------------------------------------------------------------------------------------------------------------------
Set colonne1 = Sheets(1).Range(("A2"), Sheets(1).Range("A2").End(xlDown))
'Search the value in extract tab
For Each cellule In Sheets(1).Range("E2:BQ" & Sheets(1).Range("E65535").End(xlUp).Row)
Set suite = Sheets(1).[G65536].End(xlUp).Offset(1, 0)
Set trouve = colonne1.Find(cellule.Value, LookIn:=xlValues, lookat:=xlWhole)
If cellule = Month(Date) Then
'Write the resultat
Sheets(1).Range("G" & Sheets(1).Range("G65535").End(xlUp).Row + 1) = Sheets(1).Cells(cellule.Row, 1)
suite.Offset(0, 1).Formula = "=VLOOKUP(" & suite.Address & ",'" & colonne1.Parent.Name & "'!" & colonne1.Resize(, 5).Address & ",2,FALSE)"
suite.Offset(0, 2).Formula = "=VLOOKUP(" & suite.Address & ",'" & colonne1.Parent.Name & "'!" & colonne1.Resize(, 5).Address & ",3,FALSE)"
suite.Offset(0, 3).Formula = "=VLOOKUP(" & suite.Address & ",'" & colonne1.Parent.Name & "'!" & colonne1.Resize(, 5).Address & ",4,FALSE)"
suite.Offset(0, 4).Formula = "=VLOOKUP(" & suite.Address & ",'" & colonne1.Parent.Name & "'!" & colonne1.Resize(, 5).Address & ",5,FALSE)"
End If
Next
Set suite = Nothing
Set trouve = Nothing
Set cellule = Nothing
Set colonne1 = Nothing
End SubEn vous remerciant d'avance
Bonjour Nunos.
Je te propose une solution différente, sans recherche.
Boucle des lignes et vérifie à chaque fois le mois et année de la colonne D.
Sub extractionDate()
Dim i&, j&
With Sheets("Feuil1")
'Enregistrement de la première ligne vide en colonne G.
j = .[G1048576].End(xlUp).Row + 1
'Placement sur la seconde ligne.
i = 2
'Boucle tant qu'il existe une valeur en A.
Do While .Cells(i, "A").Value <> ""
'Vérifie si le mois et l'année en colonne D correspondent au mois et année en cours.
If Month(.Cells(i, "D").Value) = Month(Date) And Year(.Cells(i, "D").Value) = Year(Date) Then
'Si c'est le cas copie de la ligne.
.Range(.Cells(i, "A"), .Cells(i, "E")).Copy .Cells(j, "G")
j = j + 1
End If
i = i + 1
Loop
End WithBonjour
Tu as des dates dans 2 colonnes : la colonne Pt Open et la colonne Pt Closed
Est-ce que tu veux extraire les lignes dont
• La première date est une date du mois en cours ?
• La deuxième date est du mois en cours ?
• Les deux dates sont du mois en cours ?
Bye !
Bonjour à vous,
Merci pour votre aide, c'est sur uniquement la date close qui m'intéresse ^^
thebenoit59, c'est nickel
Merci beaucoup pour ta lumière
thebenoit59, c'est nickel
Merci beaucoup pour ta lumière