Dans le fichier joint j'ai une base que j'ai importé. Comme on peut le voir, a la deuxième ligne pour chaque colonne j'ai des caractères "----".. Je voudrais en VBA créer une petite procédure me permettant de voir si dans une cellule j'ai ces caractères... dans ce cas je supprimerai la ligne complètement:
J'ai eu quelques idées mais non concrétisées ( comme utiliser la fonction like?) ou alors une fonction qui me permet de savoir si un caractère (ici "-") est dans une cellule? (instr?)
Voici une idée:
Code:
dim x as integer
dim i as integer
x=0
For i = 1 To 4
If Cells(2, i) like "*-*" Then
x= x + 1
End If
Next i
If x > 1 Then
Rows("2:2").Select 'Selection de la ligne bidon
Selection.Delete Shift:=xlUp 'On supprime cette ligne
Cells(1, 1).Select
End If
Option Explicit
Sub Ligne_supprimer_si_tirets()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If Range("A" & i) Like "*----*" Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End Sub
Par contre chaque cellule (en ligne2) n'a pas le même nombre de "-"
en colonne A (cellule A2) "---"
En colonne B (cellule B2) "---------"
En colonne C (cellule C2) "-"
J'ai besoin de faire le test pour une cellule ou 2 (disons A2 et B2) pour voir si il y a au moins 2 caractères "--" pour éviter une confusion avec un nom composé.
Dans le "like*"xxxx"* est-ce que ca joue le nomre de -- ?
Sub Ligne_supprimer_si_tirets()
Dim i As Long
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
If Range("A" & i) Like "*--*" Or Range("B" & i) Like "*--*" Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End Sub
Dans une boucle de suppression de ligne, toujours remonter, sinon il y a des lignes ignorées..
Bonne soirée
Bonjour JNP, merci pour la réponse, ça fonctionne bien
Et c'est vrai j'avais oublié qu'il faut mieux partir de la fin pour supprimer des lignes
Merci encore