Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…