Microsoft 365 VBA filtre erreur si pas la condition

  • Initiateur de la discussion Initiateur de la discussion Ang3lina
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ang3lina

XLDnaute Nouveau
Bonjour à tous,

Meilleurs vœux pour cette nouvelle année 🙂

J'ai un petit soucis dans un bout de code et j'avoue que je n'arrive pas à le résoudre...
Je cherche à faire un tri dans un tableau en utilisant les couleurs de cellules (via des conditions). Jusqu'ici cela fonctionne mais lorsque la condition n'est pas validée dans la colonne sélectionnée j'ai une erreur. Bon là je bloque...

Je vous mets le bout de code que j'utilise :

If Range("A3").Value = 1 Then
With ActiveSheet
If .FilterMode Then .ShowAllData
End With
Range("Tableau7[[#Headers],[Date limite de formation]]").Select
ActiveSheet.ListObjects("Tableau7").Range.AutoFilter Field:=10, Criteria1:= _
RGB(255, 0, 0), Operator:=xlFilterCellColor
End If


Je pense qu'il faut ajouter une condition si mais je n'ai pas résolu ce mystère...

Merci à ceux qui pourront m'aider 🙂
 
Solution
J'ai finalement résolu le problème en ajoutant "On Error Resume Next" un peu plus bas :
VB:
If Range("A3").Value = 1 Then
With ActiveSheet
If .FilterMode Then .ShowAllData
End With
ActiveSheet.ListObjects("Tableau7").Range.AutoFilter Field:=10, Criteria1:= _
RGB(255, 0, 0), Operator:=xlFilterCellColor
On Error Resume Next
End If
Bonjour Ang3lina,
Peut être simplement in insérant un "On Error Resume Next" qui en cas d'erreur passera à la ligne suivante.
VB:
If Range("A3").Value = 1 Then
With ActiveSheet
If .FilterMode Then .ShowAllData
End With
Range("Tableau7[[#Headers],[Date limite de formation]]").Select
On Error Resume Next
ActiveSheet.ListObjects("Tableau7").Range.AutoFilter Field:=10, Criteria1:= _
RGB(255, 0, 0), Operator:=xlFilterCellColor
End If
1- Un petit fichier test aurait permis de tester.
2- Utilisez la balise </> ( à droite de l'icone GIF ), c'est plus lisible.
 
J'ai finalement résolu le problème en ajoutant "On Error Resume Next" un peu plus bas :
VB:
If Range("A3").Value = 1 Then
With ActiveSheet
If .FilterMode Then .ShowAllData
End With
ActiveSheet.ListObjects("Tableau7").Range.AutoFilter Field:=10, Criteria1:= _
RGB(255, 0, 0), Operator:=xlFilterCellColor
On Error Resume Next
End If
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

Réponses
3
Affichages
280
Réponses
2
Affichages
361
Réponses
18
Affichages
681
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
473
Réponses
9
Affichages
934
Réponses
2
Affichages
405
Retour