Références dissidente

Bonjour,

Petite question du jour, dans mes cellules j'ai des 2 types de références

Les classiques :

V53RP1719898

Et les dissidentes :

153162043-V021BRP180705-9

Elles sont reconnaissables par les 9 digits puis un tiret au début ou un tiret et un digit après. XXXXXXXXX-OK-X

J'aimerais si possible l'objet qui permet de parcourir une colonne (ok ca) et qu'il supprime les dissidentes.

Cordialement.

4forum-2.xlsm (9.71 Ko)

PS : Sur cette exemple j'ai remonté les cellules pleine si il y avait une cellule vide au dessus

Bonjour,

Fournir un fichier avec 5 lignes de données

Dans la Feuil1 : les données sources.

Dans la Feuil2 : Le résultat attendu.

A+

bonjour,

tu mets un filtre sur tes données, tu sélectionnes celles qui contiennent le caractère "-" dans la colonne qui convient et tu supprimes toutes les lignes sélectionnées.

Bonjour, à essayer

Sub melch()

derlig = Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To derlig
    If InStr(Cells(i, 1).Value, "-") Or Cells(i, 1) = "" Then Cells(i, 1).EntireRow.Delete
Next

End Sub

Ok merci a tous ça marche juste compter les lignes de cette manière ça ne marche pas vu qu'il y a des cases blanches au milieu.

Donc on doit réactiver la macro.

Dans un premier temps je parcours la ligne pour "remonter" les cellules si une case vide au dessus puis le programme de mech.

Cordialement

... Et si tu as vraiment beaucoup de lignes cet autre sera sans doute plus rapide :

Sub test()
Dim a, i&, iR&
iR = Range("A" & Rows.Count).End(xlUp).Row
a = Range("A1:A" & iR).Value
For i = UBound(a) To 2 Step -1
If InStr(a(i, 1), "-") > 0 Or _
a(i, 1) = "" Then
Rows(i).Delete
End If
Next
End Sub

Nota les deux macros celle de melch et celle-ci suppriment tous les enregistrements qui ont un caractère "-" quel que soit sa place...

A+

Avant de tester le tien j'essaye de faire celui ci pour les cellules vides.

ub melch() Sheets("COMPARAISON").Select Lign = Sheets("COMPARAISON").Cells(Rows.Count, 2).End(xlUp).Row For i = 1 To Lign If Sheets("COMPARAISON").Cells(i, 2).Value = "" Then Range(Sheets("COMPARAISON").Cells(i + 1, 2)).Copy Sheets("COMPARAISON").Cells(i, 2).PasteSpecial xlPasteValues 'Supprime le contenu de la dernière ligne Range(Sheets("COMPARAISON").Cells(Lign, 2)).ClearContents 'Pour le tableaux plus tard Range(Sheets("COMPARAISON").Cells(Lign, 2)).Borders(xlEdgeLeft).LineStyle = xlNone Range(Sheets("COMPARAISON").Cells(Lign, 2)).Borders(xlEdgeBottom).LineStyle = xlNone Range(Sheets("COMPARAISON").Cells(Lign, 2)).Borders(xlEdgeRight).LineStyle = xlNone Range(Sheets("COMPARAISON").Cells(Lign, 2)).Borders(xlInsideVertical).LineStyle = xlNone Range(Sheets("COMPARAISON").Cells(Lign, 2)).Borders(xlInsideHorizontal).LineStyle = xlNone End If Next i 'derlig = Cells(Rows.Count, 2).End(xlUp).Row 'For i = 2 To derlig 'If InStr(Cells(i, 2).Value, "-") Or Cells(i, 2) = "" Then Cells(i, 2).EntireRow.Delete 'Next End Sub

Il ne marche pas si je n'y arrive pas je testerai le tien

Tout est bon merci

Sub Trou() Sheets("COMPARAISON").Select lign = Sheets("COMPARAISON").Cells(Rows.Count, 2).End(xlUp).Row For i = 1 To lign If Sheets("COMPARAISON").Cells(i, 2).Value = "" Then Range(Sheets("COMPARAISON").Cells(lign, 2), Sheets("COMPARAISON").Cells(lign, 2)).Copy Sheets("COMPARAISON").Cells(i, 2).PasteSpecial xlPasteValues 'Supprime le contenu de la dernière ligne Range(Sheets("COMPARAISON").Cells(i + 1, 2), Sheets("COMPARAISON").Cells(lign, 2)).Copy End If Next i End Sub Sub Tri() Columns("B:B").Select derlig = Cells(Rows.Count, 2).End(xlUp).Row For i = 2 To derlig If InStr(Cells(i, 2).Value, "-") Then Cells(i, 2).EntireRow.Delete If InStr(Cells(i, 2).Value, "Reference") Then Cells(i, 2).EntireRow.Delete Next End Sub

Rechercher des sujets similaires à "references dissidente"