Garder selection de lignes

Bonjour,

J'ai plusieurs lignes dans une feuille excel, ce que je voulais faire est de : sélectionner des cellules en colonne C avec la touche CTRL et garder seulement les lignes de la selection et supprimer les autres lignes de la feuille

Merci pour vos aides

Bonjour à tous,

Une action facile :

Tu ajoutes une colonne de tri. Tu mets des X dans les lignes que tu veux conserver. Tu fais un tri décroissant et tu supprimes toutes les dernières lignes (celles qui n'ont pas de X.

Les lignes supprimées sont perdues.

Crdlmt

Je veux utiliser le VBA dans cette manipulation avec le tri ça sera trop compliqué puisque j'ai d'autres macros qui suivre cette action

Merci pour votre suggestion

Salut xxmedxx,
Salut Djidji,

en VBA avec la fonction GetAsyncKeyState() à déclarer dans un Module général

- en [C:C] uniquement ;
- tu effectues ta première sélection ;
- ensuite, tu gardes la touche CTRL enfoncée pour sélectionner les autres lignes ;
- tu verras les sélections mises en gras : ce sont les lignes à conserver ;
- à ta dernière sélection, tu lâches CTRL AVANT de lâcher le bouton de la souris ;
- si tu loupes cette dernière manip', tu la répètes en [C1], histoire de ne pas perdre toutes tes sélections.
J'imagine que c'est une ligne d'en-têtes qui ne sera pas concernée par l'opération ;
- une MsgBox te demandera une confirmation de suppression.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
Application.EnableEvents = False
Application.ScreenUpdating = False
'
If Not Intersect(Selection, Columns(3)) Is Nothing Then
    If GetAsyncKeyState(17) <> 0 And Selection.Row > 1 Then Selection.Font.Bold = True
    If GetAsyncKeyState(17) = 0 And Selection.Areas.Count > 1 Then
        iRow = Range("C" & Rows.Count).End(xlUp).Row
        If MsgBox("Confirmez-vous la suppression des lignes non-sélectionnées?", vbCritical + vbYesNo, "Suppression") = vbYes Then
            For x = 2 To iRow
                If Range("C" & x).Font.Bold = False Then Range("C" & x).ClearContents
            Next
            Range("C2:C" & iRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete shift:=xlUp
        End If
        Range("C2:C" & iRow).Font.Bold = False
        [C1].Select
    End If
End If
'
Application.ScreenUpdating = True
Application.EnableEvents = True
'
End Sub
1xxmedxx.xlsm (18.83 Ko)


A+

Merci pour votre réponse mais il y avait un bug parce que mon système d'exploitation est 64bits au niveau de declare function

^_^

Salut xxmedxx,

j'ai un système 64 bits aussi : pas de souci...

Mais, comme déjà lu ailleurs, tu peux essayer ainsi en ajoutant PtrSafe, sans garantie...

Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer


A+

Rechercher des sujets similaires à "garder selection lignes"