• Initiateur de la discussion Initiateur de la discussion Yzak
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Yzak

XLDnaute Nouveau
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 :

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:
Re : Problème Macro

Je te remercie, les formules dans excel, c'était une des solutions que j'avais pensé.

Mais le problème, c'est qu'on travaille qu'avec des scripts VBA/VBS/VB/Powershell/BAT.
Les fichiers Excel extraient des bases de données comprennent plusieurs colonne (une vingtaine) et sur un maximum de 1500lignes.
Nous lançons plusieurs scripts sur une même fichier.

C'est pour cela, que je pense qu'un script est mieux adapté à notre travail.

En tous cas, merci pour ta réponse rapide 🙂
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
531
Réponses
4
Affichages
403
Réponses
1
Affichages
221
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
801
Réponses
8
Affichages
579
Retour