VBA - filtre et colonne
Résolu
mcou
-
mcou -
mcou -
Bonjour,
Bonjour
J'effectue parfois des filtres. La macro ci dessous sert à lancer un formulaire de vérification. Avant que celui-ci se lance, je vérifie s'il existe des filtres dans ma feuille et, si c'est le cas, demande à mon utilisateur s'il souhaite maintenir ou enlever ces filtres pour la vérification.
Je souhaite indiquer dans ma msgbox, s'il existe un filtre, le numéro de la colonne filtrée ainsi que son entête (l'entête est toujours situé en ligne 3).
Les enregistrements commencent à la ligne 4...
Comment faire ?
Voici mon code :
Merci de votre aide.
Bonjour
J'effectue parfois des filtres. La macro ci dessous sert à lancer un formulaire de vérification. Avant que celui-ci se lance, je vérifie s'il existe des filtres dans ma feuille et, si c'est le cas, demande à mon utilisateur s'il souhaite maintenir ou enlever ces filtres pour la vérification.
Je souhaite indiquer dans ma msgbox, s'il existe un filtre, le numéro de la colonne filtrée ainsi que son entête (l'entête est toujours situé en ligne 3).
Les enregistrements commencent à la ligne 4...
Comment faire ?
Voici mon code :
Sub lancerUF()
' cette macro lance le formulaire et vérifie s'il existe des filtres
Dim rep As Variant 'déclaration de la variable rep comme étant la réponse attendue à la première fenêtre
With Sheets("FOLLOW-UP")
If .FilterMode = True Then
rep = MsgBox("Il y a un filtre sur la colonne :" & .Columns & "Voulez-vous effectuer la vérification sur le filtre ?", vbYesNo + vbQuestion, "FILTRE") 'affiche le numéro de référence de la ligne à solder
If rep = 7 Then 'valeur 7 correspond à la réponse non
Sheets("FOLLOW-UP").ShowAllData 'si "non", alors on enlève tous les filtres de la feuille FOLLOW-UP
End If
End If
End With
Verification_ALL.Show 'affiche le formulaire Verification_ALL
Range("A1").Select 'se positionne en cellule A1
End Sub
Merci de votre aide.
1 réponse
-
Solution trouvée toute seule :
Sub lancerUF() ' lance le formulaire et vérifie s'il existe des filtres Dim rep As Variant 'déclaration de la variable rep comme étant la réponse attendue à la première fenêtre If Sheets("FOLLOW-UP").FilterMode = True Then For Each cell In Range("A3:U3") If cell.Interior.ColorIndex = 6 Then rep = MsgBox("Il y a un filtre sur la colonne " & cell.Column & " - " & cell.Value & ". Voulez-vous effectuer la vérification sur le filtre ?", vbYesNo + vbQuestion, "FILTRE") 'affiche le numero de colonne où est situé le filtre ainsi que l'entête If rep = 7 Then 'valeur 7 correspond à la réponse non Sheets("FOLLOW-UP").ShowAllData 'si "non", alors on enlève tous les filtres de la feuille FOLLOW-UP End If End If Next End If Verification_ALL.Show 'affiche le formulaire Verification_ALL Range("A1").Select 'se positionne en cellule A1 End Sub