A voir également:
- [VBA Excel] Probleme parcours d'une colonne
- Déplacer une colonne excel - Guide
- Liste déroulante excel - Guide
- Additionner colonne excel - Guide
- Figer une colonne excel - Guide
- Trier colonne excel - Guide
4 réponses
Sir_DEC
Messages postés
143
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
12 mai 2012
75
10 août 2007 à 14:51
10 août 2007 à 14:51
Autant pour moi, Range(ref).Row est le numéro de ligne, ce n'est pas un objet :)
Il faut Range(ref).EntireRow ou simplement Rows(i)
Donc ici, .Range("C" & i).Row.Delete devient :
.Range("C" & i).EntireRow.Delete
Ou
.Rows(i).Delete
Pour ton erreur j'avoue que je ne sais pas trop, mais personnellement j'évite au maximum les "Select" et les "ActiveCell" (ou "ActiveSheet" ou autre) car ils ne m'ont causé que des ennuis.
Au lieu de sélectionner l'objet puis de tester "Objet sélectionné", test simplement l'objet :)
Il faut Range(ref).EntireRow ou simplement Rows(i)
Donc ici, .Range("C" & i).Row.Delete devient :
.Range("C" & i).EntireRow.Delete
Ou
.Rows(i).Delete
Pour ton erreur j'avoue que je ne sais pas trop, mais personnellement j'évite au maximum les "Select" et les "ActiveCell" (ou "ActiveSheet" ou autre) car ils ne m'ont causé que des ennuis.
Au lieu de sélectionner l'objet puis de tester "Objet sélectionné", test simplement l'objet :)
Sir_DEC
Messages postés
143
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
12 mai 2012
75
10 août 2007 à 10:56
10 août 2007 à 10:56
Dans le doute, je récrirais le code :)
Si tu veux supprimer la ligne au lieu d'y écrire "ligne trouvee", ilfaudra utiliser l'instruction :
Ou, pour vider la ligne sans la supprimer :
Const strNumItem As String = "a" Dim i As Integer i = 1 With Worksheets("qrtest") ' On parcourt la colonne C Do While (.Range("C" & i) <> strNumItem And .Range("C" & i) <> "fin") i = i + 1 Loop ' Ici on teste la cellule actuelle : soit on a trouvée, soit on est à la fin If (.Range("C" & i).Value = strNumItem) Then ' On a trouvé .Range("C" & i) = "ligne trouvee" ElseIf (.Range("C" & i).Value = "fin") Then ' On a pas trouvé .Range("C" & i + 1) = "aucun item trouvé" End If End With
Si tu veux supprimer la ligne au lieu d'y écrire "ligne trouvee", ilfaudra utiliser l'instruction :
.Range("C" & i).Row.Delete
Ou, pour vider la ligne sans la supprimer :
.Range("C" & i).Row.Clear(ClearContents si on veut garder les mises en forme)
Merci de ton aide
Ton premier morceau de code fonctionne bien je n'ai plus d'erreur 400.
cela dit pour la suppression au lieu de l'affichage, ca ne marche pas il me dit "Objet Requis" ( quand il rentre dans le premier "if" ).
Sinon pour le code que j'ai tapé, l'erreur se situe au niveau de la selection de la cellule c1. Quand je fais un test avec ce code qui agit dans la feuille d'ou est lancée la macro, je n'ai pas de probleme... donc je ne comprnds pas trop l'erreur.
Ton premier morceau de code fonctionne bien je n'ai plus d'erreur 400.
cela dit pour la suppression au lieu de l'affichage, ca ne marche pas il me dit "Objet Requis" ( quand il rentre dans le premier "if" ).
Sinon pour le code que j'ai tapé, l'erreur se situe au niveau de la selection de la cellule c1. Quand je fais un test avec ce code qui agit dans la feuille d'ou est lancée la macro, je n'ai pas de probleme... donc je ne comprnds pas trop l'erreur.