Bonjour à tous,
Je suis un néophite très très bête (qui ne comprend pas la différence entre une macro et le VB (c'est comme ça qu'on dit?), et je serais enchanté que quelqu'un puisse m'aider un peu:
Je cherchais un moyen (dans un gros fichier excel "produit" avec environ 5000 lignes), de supprimer automatiquement un certain nombre de lignes en fonction de deux critères:
en gros, si telle cellule (colonne D) de telle ligne a une valeur supérieure ou égale à telle valeur (disons 5), elle est supprimée automatiquement
et
si telle cellule (colonne C) de telle ligne a une valeur (en l'occurence pas une valeur chiffrée mais un mot, disons "gloubiboulga"), elle est aussi supprimée.
Mon but était d'obtenir ainsi un fichier "écrémé"' ne contenant que les lignes ayant une valeur en colonne D supérieure à 5, et un mot différent de "gloubiboulga" en colonne C.
Suis-je clair? (j'en doute)
Bref, j'ai trouvé cette macro (est-ce bien une macro?) sur un site internet, et cela m'avait l'air de correspondre à peu près à ce que je cherchais:
Sub suppr_ligne_de_toto()
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1
Step -1
If Cells(lin, 1) = "toto" Then Rows(lin).Delete Shift:=xlUp
Next lin
End Sub
Le créateur de la macro s'expliquait ainsi:
je m'explique
ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row c'est le n° de
la dernière ligne utilisée dans la feuille
je balaie les lignes en partant de la dernière et en remontant (step -1)
pourquoi ? parce que si je descends, quand j'ôte une ligne, je me retrouve
décalé d'un cran et ça me fatique de remonter pour ne pas rater un toto.
cells(lin,1) est la première cellule de la ligne n° lin
Mais j'ai deux problèmes:
1) cette macro n'utilise qu'un seul critère de suppression, alors que j'en ai deux (suffit-il de rajouter une ligne "If etc..." avec mon deuxième critère
2) Même cette version simple (la version toto) ne marche pas quand j'essaie de m'en servir sur mon fichier excel: j'ai un message d'erreur quand je clique sur exécuter: "erreur de compilation: sub ou functiun mal définie"), et excel me surligne en jaune la première ligne ("Sub suppr_ligne_de_toto()"), et en bleu le mot "Step".
Voilà mon souci, j'espère que mon charabia sera compris des illustres experts...
Si quelqu'un avait l'infinie bonté de bien vouloir m'aider à régler mon petit problème, je lui serais infiniment reconnaissant.
Bonne journée à tous,
Gaspard L.
Je suis un néophite très très bête (qui ne comprend pas la différence entre une macro et le VB (c'est comme ça qu'on dit?), et je serais enchanté que quelqu'un puisse m'aider un peu:
Je cherchais un moyen (dans un gros fichier excel "produit" avec environ 5000 lignes), de supprimer automatiquement un certain nombre de lignes en fonction de deux critères:
en gros, si telle cellule (colonne D) de telle ligne a une valeur supérieure ou égale à telle valeur (disons 5), elle est supprimée automatiquement
et
si telle cellule (colonne C) de telle ligne a une valeur (en l'occurence pas une valeur chiffrée mais un mot, disons "gloubiboulga"), elle est aussi supprimée.
Mon but était d'obtenir ainsi un fichier "écrémé"' ne contenant que les lignes ayant une valeur en colonne D supérieure à 5, et un mot différent de "gloubiboulga" en colonne C.
Suis-je clair? (j'en doute)
Bref, j'ai trouvé cette macro (est-ce bien une macro?) sur un site internet, et cela m'avait l'air de correspondre à peu près à ce que je cherchais:
Sub suppr_ligne_de_toto()
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1
Step -1
If Cells(lin, 1) = "toto" Then Rows(lin).Delete Shift:=xlUp
Next lin
End Sub
Le créateur de la macro s'expliquait ainsi:
je m'explique
ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row c'est le n° de
la dernière ligne utilisée dans la feuille
je balaie les lignes en partant de la dernière et en remontant (step -1)
pourquoi ? parce que si je descends, quand j'ôte une ligne, je me retrouve
décalé d'un cran et ça me fatique de remonter pour ne pas rater un toto.
cells(lin,1) est la première cellule de la ligne n° lin
Mais j'ai deux problèmes:
1) cette macro n'utilise qu'un seul critère de suppression, alors que j'en ai deux (suffit-il de rajouter une ligne "If etc..." avec mon deuxième critère
2) Même cette version simple (la version toto) ne marche pas quand j'essaie de m'en servir sur mon fichier excel: j'ai un message d'erreur quand je clique sur exécuter: "erreur de compilation: sub ou functiun mal définie"), et excel me surligne en jaune la première ligne ("Sub suppr_ligne_de_toto()"), et en bleu le mot "Step".
Voilà mon souci, j'espère que mon charabia sera compris des illustres experts...
Si quelqu'un avait l'infinie bonté de bien vouloir m'aider à régler mon petit problème, je lui serais infiniment reconnaissant.
Bonne journée à tous,
Gaspard L.