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

  1. #1
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 39
    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 : 39
    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 : 39
    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??

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Oui, j'en suis sûr.

    D'ailleurs chose bizarre, cela fonctionne maintenant alors que je n'ai rien changé ... je comprends encore moins !

    Merci quand même

  8. #8
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if len(cells(x,y).text)>0 then

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Oui c'est une idée mercatog, je ne vais pas modifier mon code pour le moment puisque cela fonctionne, mais au besoin, j'appliquerais ton astuce.

    Merci en tout cas à vous tous.

    Je mets le tag Résolu, afin que vous ayez vos primes !!

    Cordialement.

+ 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, 17h27
  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, 14h51
  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, 13h58
  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, 11h42
  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, 14h10

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