Bonjour à tous,
Je suis ne train de fabriquer un outil sous EXCEL et les limites d'EXCEL me poussent à chercher des solutions sous VBA; je précise que je ne m'y connais pas du tout en VBA.
En fait, j'ai créé une macro qui filtre une feuille, copie les résultats et les colle dans une autre feuille pour plus de lisibilité. Les cellules peuvent être sur fond coloré ou pas.
Le problème est que dans certains cas, les cellules ne contiennent aucune valeur et donc ,j'aimerais que le résultat soit un message du type " Il ny'a aucune cellule répondant à vos critères" plutôt qu'un copier-coller de cellules à fond coloré et sans valeur.
En plus,j'essaie en vain de coller ces résultats dans un autre classeur EXCEL dont le nom comporterait le jour et la date d'exécution de la macro pour assurer un suivi.
Pouvez-vous m'aider SVP ?
Je vous mets ici ma fonction "filtre"
Donc,j'essaie donc de coller le tout dans un fichier "resultat_jour_heure.xls" qui sera suivant le même format que la feuille "Suivi_Taches" du point de vue du dimensionnement des colonnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub Taches_NonDemarees() 'Fonction permettant d'afficher les taches non démarées ' ' ' Ici, on commence par effacer la zone où on veut afficher les données filtrées (au cas où cette zone contiendrait des valeurs) Columns("E:ZC").Select Selection.Delete Shift:=xlToLeft Rows("20:540").Select Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=-15 '============================================= ' Ici, on dimensionne les colonnes qui recevront les données Columns("F:F").Select Selection.ColumnWidth = 4.57 Columns("G:G").Select Selection.ColumnWidth = 44.86 Columns("H:H").Select Selection.ColumnWidth = 9.43 Columns("I:I").Select Selection.ColumnWidth = 6.29 'On va sur la feuille d'où l'on va filtrer les données ' On filtre et on copie le résultat Sheets("Retroplanning").Select Selection.AutoFilter Field:=5, Criteria1:="Non démarée", Operator:=xlOr _ , Criteria2:="=" Range("B6:C100").Select Selection.Copy 'on revient sur la feuille où l'on va coller le résultat Sheets("Suivi_Taches").Select Range("F20").Select ActiveSheet.Paste Sheets("Retroplanning").Select ActiveWindow.SmallScroll Down:=-78 Range("F6:F101").Select Application.CutCopyMode = False Selection.Copy Sheets("Suivi_Taches").Select Range("H20").Select ActiveSheet.Paste ActiveWindow.SmallScroll Down:=3 Range("F20:H100").Select Application.CutCopyMode = False Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Columns("I:I").Select Selection.Delete Shift:=xlToLeft Range("F20").Select End Sub
Merci pour votre aide
Partager