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

VB.NET Discussion :

[VB.Net] Comment comparer deux cellules Excel avec un DataSet ?


Sujet :

VB.NET

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut [VB.Net] Comment comparer deux cellules Excel avec un DataSet ?
    Bonjour tout le monde,

    J'aimerais juste comparer deux cellules Excel.

    Pour faire cela, j'utilise un dataset qui est déclaré et qui fonctionne très bien.

    Le problème est qu'avec cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If appexcel.Cells(i, " 40") = appexcel.Cells(i, " 2") Then
    J'ai un message d'erreur :

    Une exception non gérée du type 'System.InvalidCastException' s'est produite dans microsoft.visualbasic.dll

    Informations supplémentaires : L'opérateur n'est pas valide pour type 'Range' et type 'Range'.
    Est-ce que quelqu'un a déjà rencontré ce problème ?

    Merci d'avance pour votre aide.

    bgs

  2. #2
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Il semblerait que tu ne puisse pas comparer un type Range avec un autre eype Range. Essai de comparer les valeur de Range plutot, ou alors utlise .Equals() si il existe sur cet objet

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par guitoux1
    Il semblerait que tu ne puisse pas comparer un type Range avec un autre eype Range. Essai de comparer les valeur de Range plutot, ou alors utlise .Equals() si il existe sur cet objet
    Bonjour guitoux1,

    Merci pour ta réponse.

    Malheureusement en changeant cells par Range j'ai ce message d'erreur :

    Une exception non gérée du type
    'System.Runtime.InteropServices.COMException' s'est produite dans WindowsApplication1.exe
    Informations supplémentaires*: Exception de HRESULT*: 0x800A03EC.
    J'ai donc fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    If appexcel.Range(i, " 40") Is appexcel.Range(i, " 2") Then
    En plus j'ai dû changer le = par un Is.

    Qu'en penses-tu ?

    Merci pour ton aide.

    bgs

  4. #4
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    C'est pas du tout ce que je voulais dire !!
    Je voulais dire que le type de appexcel.Cells(i, " 40") ne semble pas pouvoir être comparé avec un autre appexcel.Cells(x, x). Je ne connais pas ce type, mais surement qu'il possède une méthide .Equals() dans ce cas, utilise la pour effectuer ta comparaison :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If appexcel.Cells(i, " 40").Equals(appexcel.Cells(i, " 2")) Then
    Ou mieux, peut-être il y a t'il une propriété Value

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Excuse-moi d'avoir mal compris.

    on avance ! il n'y a plus d'erreur ! merci !

    Maintenant, je suis sur d'avoir exactement la même donnée dans l'enregistrement de mon dtt et dans ma cellule Excel mais lui ne les voient pas comme identique.

    voici le code utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If appexcel.Cells(i, " 40").Equals(appexcel.Cells(i, " 2")) Then
          ' Instructiions
    Else
          MessageBox.Show("Les informations entre Excel et Access sont
     différentes", "Attention")
          Exit Sub
    End If
    Je suis sûr que la donnée dans l'enregistrement du dtt et de la cellule excel est même car j'insère dans la même page Excel mais dans une collone éloignée le nom de l'enregistrement du dtt et il correspond exactement à la cellule excel.

    Pour info, appexcel.cells, le appexcel correspond à une variable que j'ai instancié au début du programme pour déclarer le programme excel.

    J'espère que tu pourras encore m'aider.

    Merci d'avance.

    bgs

  6. #6
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    avec avec .Value (ou Value2 je crois sur Excel) ??

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par guitoux1
    avec avec .Value (ou Value2 je crois sur Excel) ??
    idem malheureusement.

    Je pense que je vais devoir trouvé une autre stratégie ?

    Qu'en penses-tu ?

    Merci
    bgs

  8. #8
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    effectivement, c'est assez étrange.
    Les codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If appexcel.Cells(i, " 40").Value2.Equals(appexcel.Cells(i, " 2").Value2) Then
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If appexcel.Cells(i, " 40").Value2 == appexcel.Cells(i, " 2").Value2 Then
    Ne donnent rien (en essayant aussi avec .Value ça existe) ??

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    Et avec un Trim ?

  10. #10
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par guitoux1
    effectivement, c'est assez étrange.
    Les codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If appexcel.Cells(i, " 40").Value2.Equals(appexcel.Cells(i, " 2").Value2)
     Then
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If appexcel.Cells(i, " 40").Value2 == appexcel.Cells(i, " 2").Value2 Then
    Ne donnent rien (en essayant aussi avec .Value ça existe) ??
    Je t'informe que.... ça marche !!!!

    Désolé c'est de ma faute !

    J'avais mis .value qu'au premier appexcel.cells...

    Merci beaucoup guitoux1, c'est avec des gens comme toi qu'on avancent !

    Merci encore et bonne soirée.

    bgs

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

Discussions similaires

  1. Comparer deux colonnes Excel avec VBA
    Par sambrook dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/02/2013, 14h41
  2. Réponses: 6
    Dernier message: 21/10/2007, 17h27
  3. [Formules..]Comment comparer deux cellules ?
    Par Trooper2 dans le forum Excel
    Réponses: 2
    Dernier message: 30/04/2007, 13h59
  4. Comment comparer deux date en SQL Server avec VB.NET
    Par Pedro Varela dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/09/2006, 15h26
  5. Comment lire le contenu en arabe d'une cellule excel avec
    Par deneche dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/03/2006, 10h01

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