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 :

Celulle vide ou non vide [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut Celulle vide ou non vide
    Bonjour,

    J'ai un gros souci avec mon programme VBA Excel 2007.
    En effet, je teste si une cellule est non vide et non nulle alors je teste l'existence du contenu de la cellule. Cela fonctionne. Seulement si je supprime le contenu de la cellule et que je reteste, il considère que ma cellule est encore remplie, et donc le test d'existence dans la base renvoie une erreur (car "" n'existe pas dans la base).

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Not IsNull(Cells(Ligne, Colonne)) And Not IsEmpty(Cells(Ligne, Colonne)) Then
        TesteExistence "SELECT COUNT(*) FROM BPARTNER WHERE BPRNUM_0 = '" & Cells(Ligne, Colonne).Value & "'", Ligne, Colonne
    End If
    Ligne
    et
    Colonne
    sont correctes, les valeurs de
    Cells(Ligne, Colonne)
    sont également correctes (remplie lors du premier test, puis "" lors du second).

    Bref, je ne comprends pas le comportement d'Excel là dessus.
    Aidezzzzz-moi

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    une petite question, comment supprime tu le contenu de la cellule??

    sinon tu peux toujours faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If Not IsNull(Cells(Ligne, Colonne)) And Not IsEmpty(Cells(Ligne, Colonne))  and not cells(ligne,colonne)=vbnullstring Then
    ...

  3. #3
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Merci de ta réponse MayeKeul,

    Je supprime le contenu de la cellule manuellement en fait, via la touche "Suppr".
    J'ai déjà fait le test avec le vbNullString, et cela ne change rien, il voit que :

    Not IsNull(Cells(Ligne, Colonne)) => Vrai
    Not IsEmpty(Cells(Ligne, Colonne)) => Vrai
    Not Cells(Ligne, Colonne) = VbNullString => Vrai

    Alors qu'ils sont censés être tous faux (c'est vrai parce qu'il y a le Not devant bien sûr )

    Bref, je ne saisi pas ce que fait Excel là

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    tout d'abord, une rectification le code devrais etre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not IsNull(Cells(ligne, colonne)) Or Not IsEmpty(Cells(ligne, colonne)) Or Not Cells(ligne, colonne) = vbNullString Then

  5. #5
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Tu as raison,

    Cependant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not IsNull(Cells(Ligne, Colonne)) Or Not IsEmpty(Cells(Ligne, Colonne)) Or Cells(Ligne, Colonne) <> vbNullString Then
          TesteExistence "SELECT COUNT(*) FROM BPARTNER WHERE BPRNUM_0 = '" & Cells(Ligne, Colonne).Value & "'", Ligne, Colonne
    End If
    ne change rien à mon problème.

    Mon code me semble correct ... mais Excel réagit comme si une valeur était saisie, or le contenu est vide ...

  6. #6
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    question bete!
    est-tu certain de tester la bonne cellule sur la bonne feuille??

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

Discussions similaires

  1. [phpMyAdmin] Champ non vide et non NULL
    Par Eveanne dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 13
    Dernier message: 08/06/2015, 16h27
  2. [WebI Xi3] Filtre sur données vides et non vides dans la base
    Par gwena2b dans le forum Débuter
    Réponses: 1
    Dernier message: 04/02/2015, 13h51
  3. Remonter le contenu d'une ligne non vide à une ligne vide
    Par sossso112333 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/08/2014, 12h58
  4. recherche de champ vide ou non vide dans une table
    Par milan dans le forum Requêtes
    Réponses: 4
    Dernier message: 22/07/2008, 10h42
  5. requête avec résultat vide ou non vide
    Par speedev dans le forum Langage SQL
    Réponses: 14
    Dernier message: 11/07/2007, 13h10

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