Condition valeur min pour affiner tableau

Guillaume -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'aimerais pouvoir affiner un tableau de manière automatique avec un input par exemple, dans le but de supprimer toutes les valeurs en dessous d'un certain chiffre dans la colonne A dans mon onglet "test"

Exemple, si dans l'input je sélectionne 10 alors ça supprime toutes les cellules du tableau pour la colonne A inférieur à 10 et toutes celles aussi sur les mêmes lignes pour les autres colonnes.

J'ai testé ceci, mais je ne vois pas quoi mettre entre "" pour le IF.
Dim ValeurMin As String

ValeurMin = InputBox("Indiquez une valeur minimale ? Valeur Min", "ValeurMin")
If ValeurMin = "" Then
    Worksheets("test").Range("A2:A1000" & Rows.Count).EntireRow.Delete
End If


Merci

Configuration: Windows / Edge 18.17763

3 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    tu dois plutôt faire une boucle de la dernière ligne du tableau jusqu'à la première ligne, et, pour chaque ligne, faire le test, et, le cas échéant, le delete.
    1
  2. Guillaume
     
    Bonjour,

    Merci pour tes conseils,

    Voici mon code :
    Sub azeaz()
    Dim onglet1 As Worksheet
    Dim derniereLigne As Long
    Dim Ligne_en_cours As Long
    Dim ValeurMin As String
    Dim Cel As Range
    
    Set onglet1 = Worksheets("test")
    ValeurMin = InputBox("Indiquez une valeur minimale ? Valeur Min", "ValeurMin")
    derniereLigne = onglet1.Cells(Rows.Count, 1).End(xlUp).Row
    
    For Ligne_en_cours = 1 To derniereLigne
        For Each Cel In Range("A1:A100")
            If Cel.Value <= ValeurMin Then
                Selection.EntireRow.Delete 'Je ne suis pas du tout certain de cette ligne pour ce que je cherche à faire. 
            End If
        Next Cel
    Next
    End Sub
    


    Je n'ai pas d'erreur, mais je n'ai pas de résultats sur mon onglet "test". Je ne vois pas trop ou est mon erreur..
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je 'ai pas testé, et je vois des erreurs:
      - tu fais la boucle de la première à la dernière ligne, et pas de la dernière ligne jusqu'à la première ligne
      - il est inutile de faire deux boucles imbriquées
      - il ne faut pas utiliser
      Selection
      , d'autant moins que tu ne sélectionnes rien.
      0
  3. Guillaume
     
    Pourrais tu m'aiguiller pour la partie suppression des lignes, s'il te plait ?
    Je suis un peu perdu et loin d'être un expert en vba :/
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je testerais ceci:
      For Ligne_en_cours =  derniereLigne to 1 step -1
          If onglet1.cells(Ligne_en_cours,1) <= ValeurMin Then
                  onglet1.rows(Ligne_en_cours).Delete 
          end if
      Next Ligne_en_cours
      0