Condition valeur min pour affiner tableau

Guillaume -  
yg_be Messages postés 23541 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
A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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