[VBA] Selection les lignes qui contienne la valeur d'une input box

Selection les lignes qui contienne la valeur d'une input box [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 26-01-2006 à 18:18:15    

Lu all,
 
je voudrais selectionner les lignes d'un fichier excel qui contiennent la valeur de la variable d'une inputbox  puis les supprimer:
 
La caleur à cherhcer est dans la colonne 4
 
 

Code :
  1. Dim datex As Long
  2. Dim l As Long
  3. datex = Application.InputBox(prompt:="Saisir la valeur", Title:="Saisie", Type:=1)
  4. l = 2
  5. While Cells(l, 4) > datex
  6. Rows("l:l" ).Select
  7. Selection.Delete Shift:=xlUp
  8. Wend


 
 
Merci

Reply

Marsh Posté le 26-01-2006 à 18:18:15   

Reply

Marsh Posté le 26-01-2006 à 18:40:19    

Salut tibot,
 
Le type:=1 ne marche pas chez moi pour une inputbox...
 
Voilà ton code corrigé, même s'il y surement mieux ;)

Code :
  1. Sub SupprimerLignes()
  2. 'Déclaration des variables
  3. Dim datex As String
  4. Dim l As Long
  5. 'Boucle de test pour evité les plantage en cas de saisie de lettre
  6. Do
  7. datex = InputBox(prompt:="Saisir la valeur", Title:="Saisie" )
  8. Loop Until IsNumeric(datex)
  9. 'Boucle de suppression des lettres en partant du bas du tableau
  10. 'pour eviter les sauts si l'on part du début
  11. 'Ne nécessite pas un tableau trié
  12. 'et conversion de datex en long au lieu de string
  13. For l = Cells(65536, 1).End(xlUp).Row To 2 Step -1
  14.     ' Test de la valeur en colone 4 pour suppression
  15.     If Cells(l, 4).Value > CLng(datex) Then
  16.         Rows(l).Select
  17.         Selection.Delete (xlUp)
  18.     End If
  19. Next l
  20. End Sub


J'ai préféré passer par une boucle for au lieu de while pour pas avoir à trier le tableau ;)
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 26-01-2006 à 19:00:16    

LA classe !! Merci ça focntinne parfaitement.
 
Effectivemetn j'avais un macro trier juste avant le while.
 
Je ne comprend pas le  step -1  et CLng

Reply

Marsh Posté le 27-01-2006 à 09:48:28    

Salut tibot
 
Le CLng sert à convertir ta variable en long car en sortie d'input box tu obtien un string, tout comme datex est déclaré en string, et si tu veux que le valeur soit bien reconnue il faut qu'elle soit en long
 
le step -1 vint du fait que je pars du bas du tableau. Ca évite d'avoir à prévoir si oui ou non il faut passer à la ligne suivante ou recommencer la même ligne car tu as supprimer la ligne.
 
 
En relisant le code j'ai oublié de verifier si la personne n'annulait pas au moment de l'inputbox, annule donnant -1, il fautte méfier de ce que cela pourrait donner :)
 
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed