Bonjour,
Je rencontre un petit souci dans une de mes macros.
Cette macro a pour but, de comparer des numéros dans 2 colonnes situaient dans des onglets différents. Et de faire resortir les erreurs sur un autre onglet
(Données extraient de deux bases de données)
Les données de la 1ère colonne sont sous la forme d'un numéros de téléphone (ex : +33-3-xx.xx.65.00)
La 2nd, c'est juste les 4 derniers chiffres (ex: 6500)
Comme j'ai dit, je cherche à comparer les données de deux colonnes. Dans ma 1ère colonne, les numéros sont liés à un compte Utilisateur (ex: l'user A a le poste n° 6521) dans la 2nd colonne, ils sont dans l'ordre (6500 => 67xx).
Le hic c'est que la fonction .Find n'a pas l'air de marcher.
Ci-joint, un exemple de mon excel.
La macro :
Je rencontre un petit souci dans une de mes macros.
Cette macro a pour but, de comparer des numéros dans 2 colonnes situaient dans des onglets différents. Et de faire resortir les erreurs sur un autre onglet
(Données extraient de deux bases de données)
Les données de la 1ère colonne sont sous la forme d'un numéros de téléphone (ex : +33-3-xx.xx.65.00)
La 2nd, c'est juste les 4 derniers chiffres (ex: 6500)
Comme j'ai dit, je cherche à comparer les données de deux colonnes. Dans ma 1ère colonne, les numéros sont liés à un compte Utilisateur (ex: l'user A a le poste n° 6521) dans la 2nd colonne, ils sont dans l'ordre (6500 => 67xx).
Le hic c'est que la fonction .Find n'a pas l'air de marcher.
Ci-joint, un exemple de mon excel.
La macro :
Sub Exemple()
Dim ligne As Integer
Dim DerniereLigne As Integer
Dim colonne As Integer
Dim Nom As String
Dim NumAuto As String
Dim NumAD As String
Dim nb As Byte
'Crée un nouvel onglet, contenant les erreurs Numéros.
'Set Worksheet = Sheets.Add(After:=Sheets(Sheets.Count))
' Worksheet.Name = "Numeros"
nb = 1
colonne = 1
DerniereLigne = Worksheets("Autocom").Range("A1").SpecialCells(xlCellTypeLastCell).Row
For ligne = 1 To DerniereLigne
Worksheets("Autocom").Cells(ligne, colonne).Font.Bold = True 'Permet de visualiser que la ligne a été balayée
NumAuto = Worksheets("Autocom").Cells(ligne, 1).Value
'Construction du numéros
NumAD = Worksheets("AD").Cells(ligne, 1).Value 'ex: 6551
NumAD = Mid(NumAD, 13, 2) + Mid(NumAD, 16, 2)
With Worksheets("AD").Range("A1:A1200")
Set AD = .Find(NumAuto, LookIn:=xlValues)
If StrComp(NumAD, NumAuto, vbTextCompare) <> 0 Then
Worksheets("Autocom").Cells(ligne, colonne).Font.Color = RGB(255, 0, 0)
'Ajouts des Erreurs sur l'onglet Correction
Worksheets("Numeros").Cells(ligne, 1).Value = Worksheets("AD").Cells(ligne, 1).Value
Worksheets("Numeros").Cells(ligne, 2).Value = Worksheets("Autocom").Cells(ligne, 1).Value
End If
End With
Next ligne
End Sub
Pièces jointes
Dernière édition: