Supprimer plage cellule variable

  • Initiateur de la discussion Initiateur de la discussion franck70
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

franck70

Guest
Bonjour,

Mon problème est le suivant:
Je souhaite supprimer toutes les plages A:F pour lesquelles la cellule A commence par IP.

J'avais fait ça :
Dim w As Integer
For w = Range("A65536").End(xlUp).Row To 1 Step -1
If UCase(Left(Range("A" & w), 2)) = "IP" Then Range("A" & w & ":F" & w).Delete Shift:=xlUp

Mais il y a tellement de ligne à supprimer que la macro dure des heures. Il faudrait donc qu'il commence par tout sélectionner puis qu'il supprime toutes les lignes sélectionnées en 1 fois.

Merci d'avance pour votre aide.
 
Re : Supprimer plage cellule variable

Bonsoir


Pourquoi ne pas utiliser le filtre automatique?

(en VBA également possible)

EDITION: a tester
Code:
Sub Suppr_IP()
Application.ScreenUpdating = False
With Range(Range("A2"), Range("A65536").End(xlUp))
    .AutoFilter Field:=1, Criteria1:="=IP*"
    .SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
Application.ScreenUpdating = True
End Sub
 
Dernière édition:
Re : Supprimer plage cellule variable

Merci Staple1600

En fait, je n'avais pas du tout penser à utiliser un filtre.
Il me reste un dernier petit souci au niveau de ce code :
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
Le problème est que je ne souhaite supprimer que les colonne A à F et non la ligne entière.
Peux-tu me dire quel est le code pour remplacer EntireRow ?

Merci d'avance pour ton aide.
 
Re : Supprimer plage cellule variable

Bonsoir franck70, Stapple1600😉
Je ne sais pas pourquoi tu ne veux pas supprimer toute la ligne...
Cependant pour répondre précisémment à la question de ton 1er post , tu peux procéder ainsi. Par contre je ne sais pas si c'est plus rapide que ta 1ère méthode...
Code:
Sub test()
Dim w As Integer
Dim Plage As Range
i = 0
For w = Range("A65536").End(xlUp).Row To 1 Step -1
If UCase(Left(Range("A" & w), 2)) = "IP" Then
If i = 0 Then Set Plage = Range("A" & w & ":F" & w): i = 1
Set Plage = Union(Plage, Range("A" & w & ":F" & w))
End If
Next
Plage.Delete Shift:=xlUp
End sub
Cordialement
 
Re : Supprimer plage cellule variable

bonjour franck Staple1600 Spitnolan le forum une autre macro assez rapide

Sub Tri1()
On Error Resume Next
Dim tablo As Variant, tablo2() As String
Dim x As Long, i As Long, j As Integer, k As Integer
Application.ScreenUpdating = False
tablo = Range("a1:f" & Range("a65536").End(xlUp).Row)
x = 1
For i = 1 To UBound(tablo)
For j = 1 To 1
If UCase(Left(tablo(i, j), 2)) <> "IP" Then
ReDim Preserve tablo2(1 To 6, 1 To x)
For k = 1 To 6
tablo2(k, x) = tablo(i, k)
Next k
x = x + 1
End If
Next j: Next i
Columns("A:f").ClearContents
Range("a1").Resize(UBound(tablo2, 2), UBound(tablo2, 1)) = Application.Transpose(tablo2)
Erase tablo, tablo2
End Sub
 
Re : Supprimer plage cellule variable

Bonjour à tous

Je souhaite supprimer toutes les plages A:F pour lesquelles la cellule A commence par IP.
1) Tu effacer le contenu des cellules de colonne A commençant par IP
en décalant la ligne vers le haut?
2) Tu veux supprimer la ligne si en colonne A la cellule commence par IP
3) Si l'action s'effectue uniquement sur la cellule "A", pourquoi devoir s'occuper des colonnes
B,C,D,E,F ?

En modifiant ainsi (si j'ai bien compris)


Code:
Sub Suppr_IP_II()
Application.ScreenUpdating = False
With Range(Range("A2"), Range("A65536").End(xlUp))
    .AutoFilter Field:=1, Criteria1:="=IP*"
    .SpecialCells(xlCellTypeVisible).Delete Shift:=xlUp
End With
Application.ScreenUpdating = True
End Sub
Dans ce cas, cela veut dire que les infos saisies sur une ligne ne sont pas liées entre elles ?
 
Dernière édition:
Re : Supprimer plage cellule variable

Bonjour à tous:

Pour précision:
En colonne A, j'ai des numéros de compte, en colonne B des codes analytiques, en C des libellés, en D des montants, en E une fonction recherchev qui va chercher le montant dans les colonnes H à I et enfin en F une simple différence entre les colonnes D et E.
Voilà qui explique pourquoi je ne veux supprimer que de A à F, car si je supprime les colonnes suivantes, c'est toute ma recherchev qui plantera !!!

Merci à tous pour votre aide, je pense que la solution d'excalibur sera très bien. Je vais juste l'adapter car je dois supprimer également tous ceux qui commencent par IP*, mais aussi IA*, IH* et II*. En tous cas, elle fonctionne très bien pour IP*

Bonsoir à tous.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
912
Réponses
3
Affichages
332
Réponses
6
Affichages
422
Réponses
7
Affichages
987
Réponses
3
Affichages
879
O
  • Question Question
Microsoft 365 Problème Exit sub
Réponses
9
Affichages
1 K
omario1995
O
Retour