supprimer une ligne excel si le texte d'une cellule est en gras

sylv@in

XLDnaute Junior
EXISTE_ENCORS REF
OK 01002240-BV
OK 01002240-CA-ADS
OK 07037
OK 08309800-BB
OK 100289701
OK 100489
OK 100489


bonjour,

je dois traiter une base du type de celle ci dessus ou j'ai marqué les références redondantes (doublons) en gras et je voudrais supprimer les lignes où les cellules de la colonne "REF" sont en gras mais je n'y arrive pas

j'ai écrit la macro suivante pour mettre les doublons en gras :
Columns("B:B").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="=B2"
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
End With

et pour supprimer les lignes marqués en gras le code suivant:
Dim lngL2 As Long

For lngL2 = 1000 To 2 Step -1
If Cells(lngL2, 2).Font.Bold = True Then
Rows(lngL2).Select
Selection.Delete shift:=xlUp
End If
Next lngL2

si quelqu'un peut m'aider a supprimer ces lignes
merci d'avance :)
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : supprimer une ligne excel si le texte d'une cellule est en gras

Bonjour,


Si le gras n'est pas issu de la MFC:

Code:
  For i = [B65000].End(xlUp).Row To 2 Step -1
    If Cells(i, 2).Font.Bold Then Rows(i).Delete
  Next i

JB
 

sylv@in

XLDnaute Junior
Re : supprimer une ligne excel si le texte d'une cellule est en gras

ba si justement pour reperer mes doublons j'ai fait une macro avec une mise en forme conditionnelle (format-->mise en forme conditionnelle etc...) puis j'ai attribué le tout a un bouton et maintenant je voudrais parcourir ma colonne B et supprimer les lignes mise en gras

après il y a peut etre une autre solution sans macro de mise en forme conditionnelle je suis preneur
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : supprimer une ligne excel si le texte d'une cellule est en gras

Reprendre la condition de la MFC dans le code VBA

Dans l'exemple ci dessu, on supprime les doublons:

Code:
Sub supdoublonsOrdre()
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
  Set champ = Range("A2:A" & [A65000].End(xlUp).Row)
  For i = [A65000].End(xlUp).Row To 1 Step -1
    If Application.CountIf(champ, Cells(i, 1)) > 1 Then
        Cells(i, 1).Delete Shift:=xlUp ' ou Rows(i).Delete
    End If
  Next i
  Application.Calculation = xlAutomatic
End Sub

JB
 

Discussions similaires

Réponses
2
Affichages
654

Statistiques des forums

Discussions
311 720
Messages
2 081 913
Membres
101 837
dernier inscrit
Ugo