Condition valeur min pour affiner tableau

Fermé
Guillaume - 29 déc. 2020 à 11:41
yg_be Messages postés 22920 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 juillet 2024 - 29 déc. 2020 à 15:46
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

yg_be Messages postés 22920 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 juillet 2024 1 481
29 déc. 2020 à 12:00
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
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 22920 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 juillet 2024 1 481
29 déc. 2020 à 14:50
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
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 22920 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 juillet 2024 1 481
29 déc. 2020 à 15:46
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