problème de glisser avec des cellules filtrées.

Le
Philou36
Bonjour les amis,

Je travailles souvent avec des tableaux munis de filtres. Il m'arrive de
faire des glisser sur des valeurs filtrées et j'ai remarqué que le glissé
affecté parfois des cellules non affichées. Comment eviter ce genre de
désagréement ?
J'espère avoir été sufissamment clair dans mes explications.
Bonne soirée
Philippe
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21561611
Bonjour,

Pour t'inspirer...

Tu copies ceci dans le ThisWorkbook de ton projetVBA.

La procédure empêche d'utiliser le "Glisser.." des valeurs
de toute la plage filtrée vers une autre destination.

Cependant, tu peux toujours effectuer un "glisser" d'une
cellule à l'extérieur de la plage filtrée vers une cellule de
la plage filtrée.

N.B - Dans la procédure, tu dois adapter le nom de la feuille
où tu appliques le filtre. Dans mon exemple c'est "Feuil1"

'--------------------------------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If UCase(Sh.Name) = UCase("Feuil1") Then
If Feuil1.FilterMode = True Then
If Not Intersect(Target, sh.AutoFilter.Range) Is Nothing Then
Application.CellDragAndDrop = False
Else
Application.CellDragAndDrop = True
End If
Else
Application.CellDragAndDrop = True
End If
End If
End Sub
'--------------------------------------------

Une autre variante plus limitatif :

Pour modifier un filtre élaboré, sélectionne d'abord
une cellule qui n'est pas dans la plage filtrée et modifie
le filtre désiré. Aucun "glisser" n'est permis avec la plage filtrée.

'-----------------------------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If UCase(Sh.Name) = UCase("Feuil1") Then
If Feuil1.FilterMode = True Then
If Not Intersect(Target, Sh.AutoFilter.Range) Is Nothing Then
Sh.Cells.Locked = False
Sh.AutoFilter.Range.Locked = True
Sh.Protect UserInterfaceOnly:=True
Else
Sh.Unprotect
Sh.Cells.Locked = True
End If
Else
Sh.Unprotect
Sh.Cells.Locked = True
End If
End If
End Sub
'-----------------------------------------




"Philou36"
Bonjour les amis,

Je travailles souvent avec des tableaux munis de filtres. Il m'arrive de
faire des glisser sur des valeurs filtrées et j'ai remarqué que le glissé
affecté parfois des cellules non affichées. Comment eviter ce genre de
désagréement ?
J'espère avoir été sufissamment clair dans mes explications.
Bonne soirée
Philippe
Publicité
Poster une réponse
Anonyme