supprimer une ligne d'excel par VBA
Tags :
Dernière réponse : dans Programmation
Bonjour à tous
Voilà j'ai essayé de créer une macro mais apparemment il doit y avoir une petite erreur.
Donc je voudrai que la macro supprime toute la ligne s'il y a un "0,00) dans la cellue K#.
merci
Voilà j'ai essayé de créer une macro mais apparemment il doit y avoir une petite erreur.
Donc je voudrai que la macro supprime toute la ligne s'il y a un "0,00) dans la cellue K#.
Sub Macro4()
For i = 1 To i = 2500
If Cells(i, 11) = "0,00" Then
Rows("i:i").Select
Selection.Delete Shift:=xlUp
End If
Next i
End Sub
merci
Autres pages sur : supprimer ligne excel vba
Lassé par la pub ? Créez un compte
Qu'est ce qui se passe exactement, ca affiche un bug ?
De plus le 0.00 c'est surement du numérique donc pas besoin de mettre des guillemets et peut être que tu as mis une valeur par défaut.
Dernier truc le plus important :
Désolé mais la ligne i:i n'existe pas, si par contre tu parle de la ligne donc la valeur est celle de ta variable i tu devrais plutot ecrire :
De plus le 0.00 c'est surement du numérique donc pas besoin de mettre des guillemets et peut être que tu as mis une valeur par défaut.
Dernier truc le plus important :
Rows("i:i").Delete xlUp
Désolé mais la ligne i:i n'existe pas, si par contre tu parle de la ligne donc la valeur est celle de ta variable i tu devrais plutot ecrire :
Rows(i & ":" & i).delete xlUp
- | Alerter
voilà le code que j'ai mis mnt:
mais ça marche toujours pas. En fait la macro ne se bloque pas. en l'éxécutant "pas à pas" j'ai vu que ça passe de "for i=1 to i=2500" à"end if" directement.
la valeur recherchée c'est bien 0,00
Sub Macro4()
For i = 1 To i = 2500
If Cells(i, 11) = 0 Then
Rows(i & ":" & i).Delete xlUp
End If
Next i
End Sub
mais ça marche toujours pas. En fait la macro ne se bloque pas. en l'éxécutant "pas à pas" j'ai vu que ça passe de "for i=1 to i=2500" à"end if" directement.
la valeur recherchée c'est bien 0,00
- | Alerter
Toujours vrai :
Toujours faux :
Ta syntaxe pour la boucle For n'est pas bonne. Cf. l'aide en ligne !
La ligne i peut aussi s'écrire :
Quant à la suppression de lignes dans un tableau, j'ai fait un petit topo sur le sujet : http://www.presence-pc.com/forum/ppc/Programmation/exce...
0 = 0,0
Toujours faux :
"0" = "0,0"
Ta syntaxe pour la boucle For n'est pas bonne. Cf. l'aide en ligne !
La ligne i peut aussi s'écrire :
Rows(i)....
C'est plus clair, quand même. (Bah alors Freeman ?)Quant à la suppression de lignes dans un tableau, j'ai fait un petit topo sur le sujet : http://www.presence-pc.com/forum/ppc/Programmation/exce...
- | Alerter
Contenus similaires
- Macro excel suppression ligne - Forum
- Excel programmation macro - Forum
- Excel macro selection ligne - Forum
- Programmation excel macro - Forum
- | Alerter
- | Alerter
- | Alerter
- | Alerter
- | Alerter
- | Alerter
Pourquoi y-a-t'il des <> dans ton expression ?
On confond souvent la valeur (Value) et l'affichage (Text). (Faire le test pour une date par exemple)
Quand tu écris
Donc puisque ce n'est pas la valeur mais ce qui est affiché que tu veux comparer, utilise la syntaxe complète :
PS: Fais un effort, indente ton code. Ceci dit autant pour que ce soit agréable à lire pour chacun, mais surtout pour que tu "vois" mieux ton code. Conseil de vieux baroudeur du code.
On confond souvent la valeur (Value) et l'affichage (Text). (Faire le test pour une date par exemple)
Quand tu écris
Cells(..) =
l'interpréteur comprend Cells(..).Value =
Or la valeur n'existe pas puisqu'il y a une erreur !Donc puisque ce n'est pas la valeur mais ce qui est affiché que tu veux comparer, utilise la syntaxe complète :
Cells(..).Text =
PS: Fais un effort, indente ton code. Ceci dit autant pour que ce soit agréable à lire pour chacun, mais surtout pour que tu "vois" mieux ton code. Conseil de vieux baroudeur du code.
- | Alerter
- | Alerter
- | Alerter
Et non, Freeman, IsError ne gère pas les erreurs Excel, mais les erreurs gérées par le code VB par l'intermédiaire de CVErr.
En revanche, l'utilisation de EstErreur dans la feuille de calcul est judicieux, mais relève plus de l'utilisation d'Excel que de la programmation VB. L'utilisation de WorksheetFunction.IsNA (Et de toute la famille WorksheetFunction.IsErr) est quand même possible.
En revanche, l'utilisation de EstErreur dans la feuille de calcul est judicieux, mais relève plus de l'utilisation d'Excel que de la programmation VB. L'utilisation de WorksheetFunction.IsNA (Et de toute la famille WorksheetFunction.IsErr) est quand même possible.
- | Alerter
- | Alerter
- | Alerter
- | Alerter
un exemple :
en A1 tu met 10, en A2 tu mets 0 et en A3 tu fais "=A1/A2".
Cela provoque l'erreur #div/0 et tu met le curseur sur la cellule A3 et en mode debug tu testes :
Après tu peux te mettre sur A2 ou A1 pour vérifier.
Tu peux tester aussi avec une rechercheV si la valeur renvoyée est #N/A (pas trouvé) cela fonctionne aussi.
en A1 tu met 10, en A2 tu mets 0 et en A3 tu fais "=A1/A2".
Cela provoque l'erreur #div/0 et tu met le curseur sur la cellule A3 et en mode debug tu testes :
?iserror(Activecell)
Après tu peux te mettre sur A2 ou A1 pour vérifier.
Tu peux tester aussi avec une rechercheV si la valeur renvoyée est #N/A (pas trouvé) cela fonctionne aussi.
- | Alerter
- | Alerter
- | Alerter
Lassé par la pub ? Créez un compte
Un peu froid ? Tu n'aurais pu aller au soleil plutôt
Un exemple si tu as.