Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3307 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1292932
tibot
Posté le 26-01-2006 à 18:18:15  profilanswer
 

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

mood
Publicité
Posté le 26-01-2006 à 18:18:15  profilanswer
 

n°1292951
watashi
La démotivation : JAMAIS !
Posté le 26-01-2006 à 18:40:19  profilanswer
 

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 ;-)
n°1292968
tibot
Posté le 26-01-2006 à 19:00:16  profilanswer
 

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

n°1293164
watashi
La démotivation : JAMAIS !
Posté le 27-01-2006 à 09:48:28  profilanswer
 

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 ;-)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
modifier le contenu d'une requête sélection stockée sous Acessrecuperer la valeur d'une variable javascript ??
ADOX ACCESS VBA Procédure StockéeVBA Excel - Comment fusionner plusieurs cellules
VBA EXCEL >>> récupération de données dans colones[Résolu]Récupérer la valeur d'un radiobutton
VBA On error (Peut-on afficher l'erreur)Recuperer valeur d'une liste deroulante en javascript
VBA word entetevbs changer valeur dword
Plus de sujets relatifs à : [VBA] Selection les lignes qui contienne la valeur d'une input box


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR