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 :

Run-time error '13': Type mismatch lors d'une comparaison [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 7
    Par défaut Run-time error '13': Type mismatch lors d'une comparaison
    Bonjour,

    Je precise pour commencer que je suis debutant en VBA.

    J'essaye de comparer deux cellules, mais pas moyen, l'erreur est :
    Run-time error '13': Type mismatch

    Alors que si j'ai bien compris les posts parlant du meme probleme sur le forum, ca devrait fonctionner vu que je precise qu'il faut comparer le texte.

    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
    Sub Update_machines_list()
     
    Dim WS1machines As Worksheet, WS2export As Worksheet
    Dim FileName As String
     
        FileName = "G:\Michael\BTTC\Draft\export_mv8.xls"
        Set WS1machines = ThisWorkbook.Worksheets("Sheet1")
        Set WS2export = Workbooks.Open(FileName).Worksheets("Sheet1")
     
    If WS1machines.Cells("A1").Text = WS2export.Cells("A1").Text Then
    MsgBox ("Yes")
    Else
    MsgBox ("no")
    End If
     
    End Sub
    Merci d'avance

    Solution : WS1machines.Cells("A1").Text = WS2export.Cells("A1").Text Then WS1machines.Range("A1").Text = WS2export.Range("A1").Text

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Pour la comparaison des valeurs on utilise .value et non pas .text ou même la cellule sans propriétés, remplace ta condition par celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If WS1machines.Cells("A1") = WS2export.Cells("A1") Then

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 7
    Par défaut
    Bonjour aalex_38, merci de ta reponse.

    Ca me donne le meme resultat, que ce soit avec .value ou sans rien (c'etait comme ca que j'avais commence).

    Dans mes tableaux, les cellules A1 sont de type "general" et contiennent du texte (identique).

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Re,

    cette syntaxe me semble etrange (je ne sais pas si ça fonctionne, mais je n'aurai pas fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Set WS2export = Workbooks.Open(FileName).Worksheets("Sheet1")
    J'aurai plutot fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim wk as workbook
    Set Wk  = Workbooks.Open(FileName)
    Set WS2export = wk.Worksheets("Sheet1")
    Edit : essai msgbox WS2export.name pour voir ce que ça donne dans ton code.

    EDIT2: Cells et "A1", mon Dieu ça aurait du me sauter aux yeux, mais c'est passé comme une lettre à la poste

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 7
    Par défaut
    Rebonjour,

    MsgBox WS2export.Name me donne "Sheet1".

    Par contre quand je mets MsgBox (WS2export.Cells("A1").Text) ou (WS2export.Cells("A1")) juste apres, j'obtiens Run-time error '13': Type mismatch de nouveau.

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Essaie comme ceci
    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
    Sub Update_machines_list()
    Dim WB2export As Workbook 
    Dim WS1machines As Worksheet, WS2export As Worksheet
    Dim FileName As String
     
        FileName = "G:\Michael\BTTC\Draft\export_mv8.xls"
        Set WS1machines = ThisWorkbook.Worksheets("Sheet1")
        Set WB2export = Workbooks.Open(FileName)
        Set WS2export = WB2export.Worksheets("Sheet1")
     
    If WS1machines.Range("A1").Value= WS2export.Range("A1").Value Then
    MsgBox ("Yes")
    Else
    MsgBox ("no")
    End If
     
    End Sub
    à propos, tu as quoi dans tes cellules A1 respectives?

    EDIT: Range au lieu de Cells, oups

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Run-time error '13' type mismatch
    Par celia78 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/05/2014, 21h18
  2. [XL-2010] Run-Time error '13' Type mismatch
    Par celia78 dans le forum Excel
    Réponses: 3
    Dernier message: 06/05/2014, 20h33
  3. GetSetting() => Run-time error '13' Type mismatch
    Par Daejung dans le forum Général VBA
    Réponses: 3
    Dernier message: 12/02/2014, 21h37
  4. [E07] - Run time error 13 : Type mismatch
    Par jmh51 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 05/11/2008, 13h22
  5. run time error 13, type mismatch
    Par robert_trudel dans le forum Access
    Réponses: 6
    Dernier message: 27/10/2006, 02h30

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