Bonjour j'ai un probleme j'ai une feuile excel contenant des données dans les colonnes A-F, ma colonne G contient des dates.
J'aimerai si je rentre deux dates pouvoir importer vers une nouvelle feuille les données comprises entre mes deux dates
Version imprimable
Bonjour j'ai un probleme j'ai une feuile excel contenant des données dans les colonnes A-F, ma colonne G contient des dates.
J'aimerai si je rentre deux dates pouvoir importer vers une nouvelle feuille les données comprises entre mes deux dates
En fait j'essaie de le faire avec vba mais je suis assez nul
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub importer() Dim F As Worksheet, plg As Range, i, Nb_cols As Integer Dim date1 As Integer, date2 As Integer, ligne1 As Integer, ligne2 As Integer, colonne As Integer Sheets.Add After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "Evo" Sheets("Evo").Activate date1 = DateValue(TextBox1.Text) date2 = DateValue(TextBox2.Value) Set F = ThisWorkbook.Sheets("Temp") i = 1 Do While (date1 <= DateValue(F.Cells(i, 7).Value) <= date2) And (F.Cells(i, 7).Value <> "") Range("A1:G94").Select Selection.Copy Sheets("Feuil5").Select ActiveSheet.Paste i = i + 1 Loop
Pour le code c'est comme cela ! (cf règles du forum)
Sinon tenter d'abord un filtre normal manuellement.
Une fois que c'est acquis, annuler le filtre - rétablir les données à l'origine - puis utiliser
l'Enregistreur de macros et refaire le filtre en manuel, une base de code est livrée sur un plateau !
Ensuite, voici un exemple (ligne n°4) pour copier des données filtrées …
Je crois qu'on ne s'est pas bien compris
je sais trier les dates ce que je ne sais pas faire c'est prendre toutes les lignes que je veux et les copier dans ma nouvelle feuille
voici le code que j'ai fais
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub importer() Dim F As Worksheet, plg As Range, i, Nb_cols As Integer, N1 As Date, N2 As Date, N3 As Date Dim date1 As Integer, date2 As Integer, date3 As Integer Sheets.Add After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "Evo" Sheets.Activate ("Evo") N1 = TextBox1.Text N2 = TextBox2.Value date1 = Day(N1) + Month(N1) * 100 + (Year(N1) Mod 2000) * 1000 date2 = Day(N2) + Month(N2) * 100 + (Year(N2) Mod 2000) * 1000 Set F = ThisWorkbook.Sheets("Temp") i = 1 Do N3 = F.Cells(i, 7).Value date3 = Day(N3) + Month(N3) * 100 + (Year(N3) Mod 2000) * 1000 While (date1 <= date3 <= date2) And (F.Cells(i, 7).Value <> "") Sheets("Evo") = Range(F.Cells(i, 1), F.Cells(i, 6)) ' Je coince là!!! comment copier les lignes que je veux vers ma nouvelle feuille i = i + 1 Wend Loop End Sub
Ai-je seulement évoqué un tri ?‼
Un filtre n'a rien à voir avec un tri et correspond bien au besoin, surtout qu'un code n'est même pas nécessaire !
Et pourtant j'ai même fourni un exemple en lien …