Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

1 réponse
Avatar
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

1 réponse

Avatar
michdenis
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" a écrit dans le message de groupe de discussion :

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