miliies
Messages postés16Date d'inscriptiondimanche 17 septembre 2006StatutMembreDernière intervention11 novembre 2006
-
17 oct. 2006 à 18:48
miliies
Messages postés16Date d'inscriptiondimanche 17 septembre 2006StatutMembreDernière intervention11 novembre 2006
-
18 oct. 2006 à 10:40
Bonjour, j'ai un petit soucis avec mon code, j'aimerai supprimer des lignes de mon tableau dans la colonne C dont la valeur est zéro et les copier dans une autre feuille. C'est pour le suivi de mon stock ...
Voilà ce que j'ai
Sub suppr_ligne_de_0()
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1
Step -1
If Cells(lin, 3) = "0" Then Rows(lin).Delete Shift:=xlUp
Next lin
End Sub
Ca bloque sur le Step-1, ça met erreur de compilation sub ou function non définie.
En plus de àça la seule fois où ça a fonctionné ça m'a carrément retirer les lignes (25,28,30,31...).comment je peux faire pour que ça remonte , ma variable est-elle suffisante:
li = Range("C65536").End(xlUp).Row + 1
Jae patauge un peu beaucoup, mais c si pratique quand ca fonctionne! lol
Merci
milies
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 17 oct. 2006 à 22:15
Les déclarations se placent au plus haut, au dessus de tout les autres codes, bref, en premier.
Par contre, la fonction, tu la places au dessus des procédures ou tout à la fin, peu importe !
Le Option Explicit va vérifier, avant d'exécuter le code, la déclaration de tes variables, et va donc t'obliger à optimiser ton code, je te conseille de le laisser, tu auras des erreurs au début, mais ça t'apprendra pleins de choses. (et ton prog s'executera plus rapidement et efficacement avec des variables bien déclarées, plutôt que de ne rien mettre, ce qui équivaut à Variant)
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
PremiereLigneVide = _
Columns(MaCellule.Column).Find(""
, MaCellule, , , MonOrdre, MaDirection).Column
End If
End
Function
<hr />Sub
suppr_ligne_de_0(
)
Dim LastLine As Long
Set MaCellule =
[C65536]
LastLine = PremiereLigneVide(MaCellule, xlByRows, xlPrevious)
For lin = LastLine To 1 Step -1
If Cells(lin, 3).Value = 0 Then Rows(lin).Delete Shift:
=xlUp
' ** le .Value est à mettre, et le Zéro, essaie le sans guillemets, sait-on jamais
Next lin
End Sub
miliies
Messages postés16Date d'inscriptiondimanche 17 septembre 2006StatutMembreDernière intervention11 novembre 2006 17 oct. 2006 à 21:51
OK, j'ai un petit pb avec ton code ( décidement ...)j'ai placé le code dans ma Feuil 1 (celle qui contient mes colonnes) et quand je le test, ça me met type d'argument by ref incompatible en soulignant ma cellule.
Peut être ct du au fait que je ne sai spas ou placer les variables dans ma déclaration.
(*** Variable à placer dans les déclarations)
De plus je n'ai pas mis Option explcit donc les variables ne sont pas prises en comptes?.....
Merci de ton aide