Check datas entre 2 feuilles

Neptune64

XLDnaute Nouveau
Hello

Avec le code ci-dessous, j'arrive à faire une comparaison de data entre 2 feuilles.
Sur la feuille 1 colonne A j'ai des N° unique, 1-2-3-4 ect.sur les autre colonnes j'ai des informations qui changent.
Sur la 2ème feuille, quand je sélectionne ma macro, les informations sont mise à jour. Tous cela fonctionne très bien.

Maintenant j'ai un petit soucis que j'aimerais comprendre

Ex: i:=4 (linge 4)
ValeurCellule = 2
ValeurCherchee = "2"
Retour = normalement 2 mais malheureusement je ne trouve pas ce chiffre.
la raison est que le nombre de recherche doit avoir au minimum 2 chiffre. Mais avec excel, à moins de mettre en "Texte" ou saisir ' devant le 0, ce n'est pas possible ou commencer avec le nombre 10.

Ma question est: pourriez-vous me dire dans la macro ci-dessous ce que je devrais modifier, pour que les chiffres de 1 à 9 soient pris en compte.

Merci de votre aide et Joyeuses Fêtes :)))


Code:
Public bArret As Boolean
Public Sub CompareV12()
 
Application.ScreenUpdating = False
 
Application.EnableEvents = False
 
 
    Dim i%, col As Integer
    Dim NbNewData&, NbDataControle As Long
    Dim ValeurCherchee As String
    Dim ValeurCellule, Retour As Range
    Dim NbLigneArchive As Long
    Dim Tableau() As String
    
    
NbNewData = Sheets("New Data").Cells(65536, 1).End(xlUp).Row
NbDataControle = Sheets("Data controle").Cells(65536, 1).End(xlUp).Row
NbLigneArchive = Sheets("Archive").Cells(65536, 1).End(xlUp).Row
 
 
'----PHASE 1 regarde si nouvelle valeur----
For Each ValeurCellule In Sheets("New Data").Range("A4:A" & NbNewData)
    i = ValeurCellule.Row
    ValeurCherchee = ValeurCellule.Value
    Set Retour = Sheets("Data controle").Range("A4:A" & NbDataControle).Find(ValeurCherchee)
    
    'Si "Retour" est différent de nothing c'est que la valeurcherchee est trouvée donc existe déjà
    'on ne fait rien
    'on met à jour le nb de jours dans la feuille Data Controle
    If Not Retour Is Nothing Then
        Sheets("Data controle").Cells(Retour.Row, 2) = Sheets("New Data").Cells(i, 2)
        Sheets("Data controle").Cells(Retour.Row, 3) = Sheets("New Data").Cells(i, 3)
        Sheets("Data controle").Cells(Retour.Row, 4) = Sheets("New Data").Cells(i, 4)
 
        
    'Sinon "Retour" = nothing c'est que nous avons une nouvelle valeur à insérer
    'Si autre type de ligne = transfert vers feuilles
    Else
        '----TRANSFERT VERS DATA CONTROLE----
        For col = 1 To 5
            'Arrete la procèdure Worksheet_Change de la feuille Data Controle
            bArret = True
            Sheets("Data controle").Cells(NbDataControle + 1, col) = Sheets("New Data").Cells(i, col)
    
        Next col
        
           NbDataControle = NbDataControle + 1
        
     End If
     
Next ValeurCellule
     
       
'Suppression des lignes contenues dans la variable Tableau
'avant la phase 2
On Error Resume Next
For i = UBound(Tableau) To 0 Step -1
    Sheets("New Data").Cells(Tableau(i), 1).EntireRow.Delete
Next i
 
'Efface la variable tableau de la mémoire
Erase Tableau
 
'Fin d'arrêt du blocage de la procèdure
bArret = False
Application.EnableEvents = True
 
Application.ScreenUpdating = True
 

End Sub
 

repcheks

XLDnaute Junior
Re : Check datas entre 2 feuilles

Si je comprends bien, tu cherches des valeurs numeriques en format nombre (2) a partir de valeurs numeriques en format texte ("02") ?

Si c'est le cas tu peux forcer Excel a traiter le texte comme valeur numerique avec une operation ne modifiant pas sa valeur.

Typiquement:

Code:
ValeurCherchee = (ValeurCellule.Value)*1

Par contre declare ta variable en Integer ou Long, mais pas en String.
 

Neptune64

XLDnaute Nouveau
Re : Check datas entre 2 feuilles

Hello

Merci pour ta réponse mais malheureusement ça ne marche toujours pas.
ValeurCellule =1
ValeurCherchee = 1
retour = 10 ??

J'ai joint le fichier si tu veux essayer !

quand je modifie les information sous New Data, et que je sélectionne la macro dans Data controle la primière ligne ne se met pas à jour !!!

Si tu peux m'aider ce serait cool

Merci
 

Pièces jointes

  • Check test_V2.zip
    19.4 KB · Affichages: 27

Neptune64

XLDnaute Nouveau
Re : Check datas entre 2 feuilles

Bonjour,

Je constate que dans la colonne A si j'ai seulement un chiffre, "retour" est juste, si j'ai deux chiffres, "retour" prend le premier à deux chiffres ainsi de suite.

Comment faire pour que "retour" trouve la donnée juste qu'il y ai 1 chiffre ou plusieurs ?

Merci de votre aide !!
 

Discussions similaires

Réponses
11
Affichages
297

Statistiques des forums

Discussions
312 295
Messages
2 086 958
Membres
103 404
dernier inscrit
sultan87