Compter le nombre de remplacement effectué et les mettre en couleur

benoitxi

XLDnaute Nouveau
Bonjour à tous,

J'ai la macro ci dessous qu fonctionne très bien mais j’aimerais y ajouter 2 actions :
  • Mettre la cellule ou le changement a été opéré en couleur.
  • Compter le nombre de remplacement qui ont été effectué et l'afficher dans une message box à la fin de l'exécution.
Merci pour votre aide.
Bonne journée.

Sub Replace_Mat_Doublon()

Set select_plage = Application.InputBox("Selectionnez la colonne ou plage de données dans laquelle remplacer le matricule :", "Selection", Type:=8)

Dim T1, i As Integer

T1 = [Tableau_Doublons]

With select_plage
For i = 1 To UBound(T1)
.Replace what:=T1(i, 2), Replacement:=T1(i, 1), Lookat:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Next i
End With
End Sub
 

danielco

XLDnaute Accro
Bonjour,

A tester :

VB:
Sub Replace_Mat_Doublon()
  Dim C As Range, select_plage As Range, Ligne As Long, Ctr As Long
  Set select_plage = Application.InputBox("Selectionnez la colonne ou plage de données dans laquelle remplacer le matricule :", "Selection", Type:=8)
  Dim T1, i As Integer
  T1 = [Tableau_Doublons]
  Ligne = select_plage.Find("*", , , , xlByRows, xlPrevious).Row
  Set select_plage = select_plage.Resize(Ligne - select_plage.Row + 1)
  For Each C In select_plage
    For i = 1 To UBound(T1)
      If C.Value = T1(i, 2) Then
        C.Interior.ColorIndex = 3
        Ctr = Ctr + 1
      End If
    Next i
  Next C
  With select_plage
  For i = 1 To UBound(T1)
  .Replace what:=T1(i, 2), Replacement:=T1(i, 1), Lookat:=xlWhole, _
  SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
  ReplaceFormat:=False
 
  Next i
  End With
  MsgBox Ctr
End Sub

Cordialement.

Daniel
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 867
dernier inscrit
XFPRO