IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comparaison de formule entre deux fichiers excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Comparaison de formule entre deux fichiers excel
    Bonjour,

    J'ai réalisé une macro qui à partir de l'import d'un fichier va comparer feuille par feuille des formules par rapport à un autre et en fonction du résultat j'affiche Ok ou NOK.
    Le problème est que lorsque dans les formules il y a des espaces ou une "," à la place d'un ";". La valeur passe a NOK alors qu'en réalité la formule est correct.
    J'ai entendu parle de la fonction Trim est ce que cela peut marcher pour mon cas je vous joins mon code ci dessous. Merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Function comparCh(ch1, ch2)
    Dim lg1%, lg2%, i%
    Application.Volatile True
    If ch1 = ch2 Then
    comparCh = "identique"
    Else
    lg1 = Len(ch1)
    lg2 = Len(ch2)
    i = 1
    While Mid(ch1, i, 1) = Mid(ch2, i, 1)
    i = i + 1
    Wend
    comparCh = i - 1
    End If
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Sub CheckParameter()
        Dim StrFormula As String
        Dim StrCell As String
        Dim StrSheet As String
        Dim Test As String
        Dim StrFichier As String
        Dim StrFichierWithPath As String
        Dim wb As Workbook
        Dim ws As Worksheet
        Dim StrNameOfVerif As String
     
        ' Get the name of the Verification File
        Set wb = ActiveWorkbook
        StrNameOfVerif = wb.Name
     
        StrFichierWithPath = Application.GetOpenFilename("Fichier RTI, *.xls", , "Open RTI File")
     
        If StrFichierWithPath = "Faux" Then
            MsgBox "Select file"
        Else
     
     
                Set wb = Workbooks.Open(StrFichierWithPath)
                Set ws = wb.Worksheets(1)
                StrFichier = ActiveWorkbook.Name
     
                'To accelerate the operation the screen is not updated.
                Application.ScreenUpdating = False
     
                '' All Sheet are displayed to allow the verification
                Sheets("anticipation_Train1_D").Visible = True
                Sheets("anticipation_Train2_D").Visible = True
                Sheets("anticipation_Train3_D").Visible = True
                Sheets("anticipation_Train4_D").Visible = True
                Sheets("anticipation_Train5_D").Visible = True
     
                StrCell = "Init"
                i = 2
     
                Windows(StrNameOfVerif).Activate
                StrFormula = Range("D" & i).Value
                StrCell = Range("C" & i).Value
                StrSheet = Range("B" & i).Value
     
                Do While StrCell <> ""
     
                    Windows(StrFichier).Activate
     
                    Sheets(StrSheet).Select
                    ActiveSheet.Range(StrCell).Select
                    Test = ActiveSheet.Range(StrCell).Formula
     
                    Windows(StrNameOfVerif).Activate
     
                    If Test = StrFormula Then
                        ActiveSheet.Range("E" & i) = "OK"
                    Else
                        ActiveSheet.Range("E" & i) = "KO"
                    End If
                    ActiveSheet.Range("F" & i) = "'" & Test
     
                    i = i + 1
                    Windows(StrNameOfVerif).Activate
                    StrFormula = Range("D" & i).Value
                    StrCell = Range("C" & i).Value
                    StrSheet = Range("B" & i).Value
                Loop
                Application.ScreenUpdating = False
     
                wb.Close
        End If
     
    End Sub

  2. #2
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    bonjour.

    il te faut peut-être une méthode, si tu veux une fonction indépendante qui élimine les caractères indésirables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function FiltreTexte(texte As String, table_exclus(), Optional nouveau As String = "")
        Dim i As Byte
     
        For i = 0 To UBound(table_exclus)
            texte = Replace(texte, table_exclus(i), nouveau)
        Next
     
        FiltreTexte = texte
     
    End Function

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ch1 = FiltreTexte (ch1, array ( "," , ";" , " "))
    ch2 = FiltreTexte (ch2, array ( "," , ";" , " "))
     
    if ch2 like ch1 then
    ...
    Ousmane


    Quand on tombe dans l'eau, la pluie ne fait plus peur.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Ok merci par contre je ne vois pas à quel moment je dois faire appel a ta fonction pour que cela fonctionne. Pourrais tu m'eclairer car mes souvenirs de programmation date de la période de Néanderthal

    Lorsque j'ai essaye j'ai une erreur de compilation
    Type d'argument ByRef incompatible sur les paramètres ch1 et ch2

  4. #4
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    bonjour,

    tu dois comprendre que la fonction n'accepte que des variables du même type correspondant à ses arguments.
    Ousmane


    Quand on tombe dans l'eau, la pluie ne fait plus peur.

Discussions similaires

  1. Copie de données entre deux fichiers Excel
    Par qltmi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/03/2008, 19h20
  2. Communication entre deux fichiers excel dont l'un reste ferme
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 21/03/2008, 12h19
  3. Communication entre deux fichiers Excel
    Par typiquement dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/03/2008, 14h38
  4. Communication entre deux fichiers excel
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/10/2007, 14h18
  5. [VBA-E] Transfert D'images Entre Deux Fichiers Excel
    Par Kevin_18 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/04/2007, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo