Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Suppression d'une ligne en fonction d'une plage

5 réponses
Avatar
Flac
Bonjour à tous,
Excel 2000
Je cherche une macro qui me permettrait de supprimer chacune des lignes
d'une colonne (A par exemple) en fonction des valeurs d'une plage variable
(établie avec la formule =décaler()
à peu près comme ceci:
Sub supprime()
Pour chacune des cellules de la colonne A,
supprime la ligne si la valeur de la cellule est
différente de l'une des valeurs de la plage
end sub


Merci

Flac

5 réponses

Avatar
Daniel.C
Bonsoir.
En admettant que ta plage définie s'appelle "Plage" :

Sub supprime()
Dim i As Long
For i = [A65536].End(xlUp).Row To 1 Step -1
If IsNumeric(Application.Match(Cells(i, 1), [Plage], 0)) Then
Rows(i).Delete
End If
Next i
End Sub

Cordialement.
Daniel

Bonjour à tous,
Excel 2000
Je cherche une macro qui me permettrait de supprimer chacune des lignes d'une
colonne (A par exemple) en fonction des valeurs d'une plage variable (établie
avec la formule =décaler()
à peu près comme ceci:
Sub supprime()
Pour chacune des cellules de la colonne A,
supprime la ligne si la valeur de la cellule est
différente de l'une des valeurs de la plage
end sub


Merci

Flac


Avatar
Flac
Merci,
La macro fonctionne à moitié seulement. Elle fait le travail tant que je ne
rajoute pas un nouvel élément à ma plage.

J'ai fait des tests, et je m'aperçois que lorsque je rajoute un item à ma
plage, la macro ne tient pas compte du nouvel lément.

Je continue néammoins de voir ce qui ne va pas.

Flac
"Daniel.C" a écrit dans le message de news:

Bonsoir.
En admettant que ta plage définie s'appelle "Plage" :

Sub supprime()
Dim i As Long
For i = [A65536].End(xlUp).Row To 1 Step -1
If IsNumeric(Application.Match(Cells(i, 1), [Plage], 0)) Then
Rows(i).Delete
End If
Next i
End Sub

Cordialement.
Daniel

Bonjour à tous,
Excel 2000
Je cherche une macro qui me permettrait de supprimer chacune des lignes
d'une colonne (A par exemple) en fonction des valeurs d'une plage
variable (établie avec la formule =décaler()
à peu près comme ceci:
Sub supprime()
Pour chacune des cellules de la colonne A,
supprime la ligne si la valeur de la cellule est
différente de l'une des valeurs de la plage
end sub


Merci

Flac






Avatar
Daniel.C
Bonjour.
Le risque, c'est qu'en supprimant une ligne, on supprime un élément de
la plage.
Daniel

Merci,
La macro fonctionne à moitié seulement. Elle fait le travail tant que je ne
rajoute pas un nouvel élément à ma plage.

J'ai fait des tests, et je m'aperçois que lorsque je rajoute un item à ma
plage, la macro ne tient pas compte du nouvel lément.

Je continue néammoins de voir ce qui ne va pas.

Flac
"Daniel.C" a écrit dans le message de news:

Bonsoir.
En admettant que ta plage définie s'appelle "Plage" :

Sub supprime()
Dim i As Long
For i = [A65536].End(xlUp).Row To 1 Step -1
If IsNumeric(Application.Match(Cells(i, 1), [Plage], 0)) Then
Rows(i).Delete
End If
Next i
End Sub

Cordialement.
Daniel

Bonjour à tous,
Excel 2000
Je cherche une macro qui me permettrait de supprimer chacune des lignes
d'une colonne (A par exemple) en fonction des valeurs d'une plage variable
(établie avec la formule =décaler()
à peu près comme ceci:
Sub supprime()
Pour chacune des cellules de la colonne A,
supprime la ligne si la valeur de la cellule est
différente de l'une des valeurs de la plage
end sub


Merci

Flac








Avatar
Flac
Bonjour,
Là n'est pas mon problème. Ce n'est pas le dernier élément de la plage qui
est supprimé.
C'est que la ligne est supprimée même si elle ne devrait pas l'être, étant
donné que la valeur de la cellule "matche"
avec un des éléments de la plage.

À noter que j'ai modifié la macro:
If IsNumeric(Application.Match(Cells(i, 1), [Plage], 0)) Then
est devenu
If not IsNumeric(Application.Match(Cells(i, 1), [Plage], 0)) Then
vu que je veux supprimer la ligne si la valeur de la cellule
ne "matche" pas avec la plage.

Merci

Flac


"Daniel.C" a écrit dans le message de news:
%23YOKjQ%
Bonjour.
Le risque, c'est qu'en supprimant une ligne, on supprime un élément de la
plage.
Daniel

Merci,
La macro fonctionne à moitié seulement. Elle fait le travail tant que je
ne rajoute pas un nouvel élément à ma plage.

J'ai fait des tests, et je m'aperçois que lorsque je rajoute un item à ma
plage, la macro ne tient pas compte du nouvel lément.

Je continue néammoins de voir ce qui ne va pas.

Flac
"Daniel.C" a écrit dans le message de news:

Bonsoir.
En admettant que ta plage définie s'appelle "Plage" :

Sub supprime()
Dim i As Long
For i = [A65536].End(xlUp).Row To 1 Step -1
If IsNumeric(Application.Match(Cells(i, 1), [Plage], 0)) Then
Rows(i).Delete
End If
Next i
End Sub

Cordialement.
Daniel

Bonjour à tous,
Excel 2000
Je cherche une macro qui me permettrait de supprimer chacune des lignes
d'une colonne (A par exemple) en fonction des valeurs d'une plage
variable (établie avec la formule =décaler()
à peu près comme ceci:
Sub supprime()
Pour chacune des cellules de la colonne A,
supprime la ligne si la valeur de la cellule est
différente de l'une des valeurs de la plage
end sub


Merci

Flac












Avatar
Flac
Rebonjour,
Je crois avoir trouvé le problème. C'est que si je rallonge la plage
manuellement, le nouvel item est reconnu et la ligne n'est pas supprimée
(C'est ce que je veux).

Or, pour rallonger ma liste, je le fais en utilisant un userform qui fait le
travail (l'item que je rajoute à la liste doit aussi servir à autre chose,
c'est la raison pour laquelle j'utilise un userform). Dans ce cas, le nouvel
item
n'est pas reconnu, même si ma plage s'est rallongée.

J'utilise donc un TextBox qui a pour nom CAMION (c'est le nom de la
variable)

Auriez-vous quelque chose à me suggérer?

Merci

Flac

"Daniel.C" a écrit dans le message de news:
%23YOKjQ%
Bonjour.
Le risque, c'est qu'en supprimant une ligne, on supprime un élément de la
plage.
Daniel

Merci,
La macro fonctionne à moitié seulement. Elle fait le travail tant que je
ne rajoute pas un nouvel élément à ma plage.

J'ai fait des tests, et je m'aperçois que lorsque je rajoute un item à ma
plage, la macro ne tient pas compte du nouvel lément.

Je continue néammoins de voir ce qui ne va pas.

Flac
"Daniel.C" a écrit dans le message de news:

Bonsoir.
En admettant que ta plage définie s'appelle "Plage" :

Sub supprime()
Dim i As Long
For i = [A65536].End(xlUp).Row To 1 Step -1
If IsNumeric(Application.Match(Cells(i, 1), [Plage], 0)) Then
Rows(i).Delete
End If
Next i
End Sub

Cordialement.
Daniel

Bonjour à tous,
Excel 2000
Je cherche une macro qui me permettrait de supprimer chacune des lignes
d'une colonne (A par exemple) en fonction des valeurs d'une plage
variable (établie avec la formule =décaler()
à peu près comme ceci:
Sub supprime()
Pour chacune des cellules de la colonne A,
supprime la ligne si la valeur de la cellule est
différente de l'une des valeurs de la plage
end sub


Merci

Flac