Je me doute que cette question a souvent été posée, j'ai eu beau (mal ?) chercher sur le forum pour trouver une solution sur ce forum, je n'ai pas trouvé.
Pour info, je suis débutant.
Voici donc mon problème.
J'ai un tableau assez gros avec de nombreuses lignes et colonnes.
Dans ma colonne C, se trouve des références à des produits sur 5 chiffres.
Les deux derniers chiffres de cette référence m'indique le type de produit.
Dans le cas présent, si cette référence se termine en 08, alors je dois supprimer toute la ligne et décaler le tableau vers le haut.
J'ai essayé un code de ce genre là :
Code:
Sub EssAi()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 2 Step -1
If Cells(i, 3) Like "*08" Then Rows(i).Delete
Next i
End Sub
mais ça ne marche pas.
Est-ce que quelqu'un aurait la gentillesse de m'aider ou de m'expliquer ce qui ne va pas dans ma macro.
Sub EssAi()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 2 Step -1
If CStr(Right(Cells(i, 3).Value, 2)) = "08" Then Rows(i).Delete
Next i
End Sub
[Édition]
Ton code fonctionne parfaitement chez moi...
Ah ?
Pourquoi cela ne marcherait-il pas chez moi alors ?
Serait-ce un problème de compatibilité excel ou autre élément extérieur que je ne connaitrais pas ?
Et si tu nous envoyais ton fichier (ou un exemple allégé basé sur ton fichier), pour nous puissions avoir une idée du problème et te proposer, éventuellement, une solution ?
Ok, merci ça marche, j'ai modifié quelque peu le code en me basant sur d'autres macros.
Voici la solution au cas où :
Code:
Sub SupprimeLigneVideAvec08()
Dim dlg As Long, i As Long
Application.ScreenUpdating = False
dlg = ActiveSheet.UsedRange.Rows.Count
For i = dlg To 1 Step -1
If Cells(i, 3).Value Like ("*08") Then Rows(i).Delete
Next i
End Sub