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 :

Problème de test de variable exportée d'Access [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut Problème de test de variable exportée d'Access
    Bonsoir,
    je butte lamentablement sur un code destiné a testé la valeur d'une cellule exportée d'un champ Boolean depuis access.

    A la vision dans Excel le champ vaut FAUX ou VRAI.
    J'ai pu déterminer que le type de la cellule est Vbboolean, mais je ne parviens pas à tester FALSE ou TRUE, ou quoi que ce soit de Boolean.

    Si quelqu'un peut m'éclairer

    Voici l'extrait de mon code
    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
    'Convert Status of UM (Unacompanied Minor) from FAUX(FALSE)/VRAI(TRUE) to *BLANC ou UM
     
        Dim IDx         As Long
        Dim cell_test   As Boolean
     
        For IDx = 2 To lrow
            Select Case VarType(Range("A" & lrow))
                Case vbBoolean
                    cell_test = Range("A" & lrow)
                    Select Case cell_test
                        Case True
                             Range("A" & IDx) = "UM"
                        Case Else
                             Range("A" & IDx) = ""
                    End Select
                Case Else
                    Range("A" & IDx) = ""
            End Select
        Next
    J'obtiens invariablement une mise à blanc de mes cellule à TRUE ou FALSE.

    Merci d'avance.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    A mon avis tu devrais tester la chaine (String) VRAI ou FAUX, et non un booléen, car même si je ne suis pas un spécialiste Excel, je ne pense pas que cela soit applicable dans ce cas.

    Philippe

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour, Godzestla

    A tenter :

    1) on regrde bien ce que fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    toto = "FAUX"
      MsgBox CBool(0) = toto
      MsgBox CBool(1) = toto
      toto = "VRAI"
      MsgBox CBool(0) = toto
      MsgBox CBool(1) = toto
    2) on essaye alors de voir ce que ferait cela (je n'ai pas essayé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Case vbBoolean
                    cell_test = Range("A" & lrow)
                    Range("A" & IDx) = iif(cbool(1) = cell_test,"UM","")
               Case Else
                    Range("A" & IDx) = ""
    EDIT : je préfère tenter cette approche plutôt que de comparer avec "VRAI" ou "FAUX" (strings) pour éviter des mauvaises surprises en cas de distribution sur une version non française.

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 467
    Points : 493
    Points
    493
    Par défaut
    Bonjour
    remplace ces lignes de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select Case VarType(Range("A" & lrow))
                Case vbBoolean
                    cell_test = Range("A" & lrow)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select Case TypeName(Range("A" & lrow).Value)
                Case "Boolean"
                    cell_test = Range("A" & lrow).Value
    Bonne journée

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut

    VRAI = 1 en Excel, mais VRAI = TRUE = -1 en VBA

    Donc,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cellule.Value = IIf(Cellule.Value = -1, "UM", "")
    Tu peux alléger ton code en te passant de compteur de boucle et de variable Range... et je me demande si, dans ton code, tu utilises la bonne variable sur la ligne "Select case" en utilisant lrow, car je pense que tu dois utiliser idx... Me trompé-je?

    Tu peux avoir un code qui serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each Cellule in range("a2:a" & idx) ' idx à déterminer d'une manière ou d'une autre
        Cellule.Value = IIf(Cellule.Value = -1, "UM", "")
    next cellule
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour, Pierre Fauconnier,

    Oui.

    Encore que, sous VBA, toute valeur différente de 0 est TRUE et qu'on pourrait donc tester sur Cellule.Value <> 0

    Une chose me titille toutefois depûis le début :
    Godzestla est-il certain de bien rentrer dans le
    ?

    Pour en être certain, il devrait, dans son test, ne pas donner la même valeur dans le cas "booléen" et dans le cas "non booléen" ....
    Si confirmé ===>> OK . Si non confirmé ===>>> tout à repenser ...

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Encore que, sous VBA, toute valeur différente de 0 est TRUE et qu'on pourrait donc tester sur Cellule.Value <> 0
    Cette assertion est fausse car on est en Excel, et on doit donc tester ce qui est VRAI dans Excel.

    De plus, en Excel, tester ce qui est explicitement VRAI (-1) ne revient à tester ce qui n'est pas FAUX (<>0), même si l'on peut considérer que la remontée de données d'Access est conforme à nos attentes (VRAI, FAUX ou VIDE(=0 pour Excel)). Car, par une extension de ton raisonnement, on pourrait considérer comme FAUX tout ce qui vaut 0 (ou que tout ce qui n'est pas vrai est faux), alors qu'une donnée vide n'est pas une donnée dont la valeur est FAUX, mais plutôt une donnée dont la valeur est indéterminée.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Waw.... Salut tout le monde,
    je vois que ma question à déchainé les passions.

    Merci à tous. Je teste tout cela quand mes yeux tiennent ouverts
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut Ousk...

    Citation Envoyé par ouskel'n'or Voir le message
    ...J'ajouterais juste que si on a une valeur > 1 dans la cellule, Excel comme VBA diront VRAI...
    C'est un peu n'importe quoi, ça!

    Pour Excel, est VRAI ce qui vaut 1, est FAUX ce qui vaut 0...
    Pour VBA, est VRAI ce qui vaut -1, est FAUX ce qui vaut 0...

    Et il faut noter que non(FAUX) n'équivaut pas à VRAI

    "Tout ce qui est différent de 0 n'est pas faux" ne veut pas dire "Tout ce qui est différent de 0 est vrai"
    et
    "Tout ce qui est différent de 1 (-1 en VBA) n'est pas vrai" ne veut pas dire "Tout ce qui est différent de 1 (-1 en VBA) est faux"...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Voilà,

    j'ai essayé la proposition de Ucfoutu, cela ne donne apparement rien, par contre celle de Pierre marche Nickel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each Cellule in range("a2:a" & idx) ' idx à déterminer d'une manière ou d'une autre
        Cellule.Value = IIf(Cellule.Value = -1, "UM", "")
    next cellule
    Merci beaucoup. je cloture

    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut Ousk...



    C'est un peu n'importe quoi, ça!
    ...
    "Tout ce qui est différent de 1 (-1 en VBA) n'est pas vrai" ne veut pas dire "Tout ce qui est différent de 1 (-1 en VBA) est faux"...
    Oui ? Eh bien non ! teste donc ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	A	B
    1	125	=SI(A1;VRAI;FAUX)
    Et dans le cas où tu aies un doute, teste également ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	A	B
    1	0	=SI(A1;VRAI;FAUX)

  12. #12
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Et ceci également :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
     Dim toto As Boolean
     toto = 2
     If toto Then MsgBox "oui" Else MsgBox "non"
     toto = 0
     If toto Then MsgBox "oui" Else MsgBox "non"
     Dim titi As Integer
     titi = 2
     If titi Then MsgBox "oui" Else MsgBox "non"
     titi = 0
     If titi Then MsgBox "oui" Else MsgBox "non"
    End Sub
    Que la variable utilisée soit ou non un booléen...


    A Godzestla :
    Je n'aime pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each Cellule in range("a2:a" & idx) ' idx à déterminer d'une manière ou d'une autre
        Cellule.Value = IIf(Cellule.Value = -1, "UM", "")
    next cellule
    Où est passé ton test sur le type booléen, dans cette affaire ?
    Et quid si pas booléen et contient -1 ?

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Ousk,

    Si tu veux tester que 125 en A1 est vrai, tu ne peux pas faire comme tu fais, tu dois faire
    => FAUX

    Relis ce que je dis plus haut
    De plus, en Excel, tester ce qui est explicitement VRAI (-1) ne revient à tester ce qui n'est pas FAUX (<>0)
    Or, lorsque tu utilises
    tu ne testes pas explicitement si A1 est VRAI, mais tu utilises un raccourci syntaxique de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =si(NON(A1=FAUX);VRAI;FAUX)

    Godzestla,

    Pour résoudre le problème soulevé par Ucfoutu dans son dernier message (-1 n'est pas forcément vrai), tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For Each Cellule In Range("a1:a10")
            Cellule.Value = IIf(VarType(Cellule.Value) = vbBoolean And Cellule.Value = -1, "UM", "")
        Next Cellule
    Ucfoutu,

    Tu lèves là un problème de VBA, car il est illogique que VBA accepte 2 pour une variable "as boolean"... Mais la conclusion est la même. VBA teste si c'est FALSE ou "NOT FALSE", mais NOT FALSE <> TRUE
    == > pour être sûr que c'est vrai, il faut tester si =-1 ET vbBoolean...

    Le test suivant illustre cela, avec toto as boolean et titi as integer alors que toto = 2 et titi = 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim toto As Boolean
        Dim titi As Integer
     
        toto = 2
        titi = 2
        If toto = True Then MsgBox "toto = VRAI" Else MsgBox "toto = FAUX"
        If titi = True Then MsgBox "titi = VRAI" Else MsgBox "titi = FAUX"
        If toto = titi Then MsgBox "Egalité" Else MsgBox "Inégalité"
    Le premier message renvoie "toto = VRAI"
    Le second message renvoie "titi = FAUX"
    Le troisième message renvoie "Inégalité" alors que Toto = 2 (au départ) et titi = 2
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Sur le plan de la logique, tu as raison, mais cela ne change rien à 1 ou -1 dans une cellule. Avec mon double test, 1 ou -1 renverra FAUX, et il n'y a que VRAI dans la cellule qui renverra TRUE...

    Et pour reprendre le test d'Ucfoutu, il faut comprendre qu'il y a une transformation de valeur de toto effectuée par VBA et que toto est transformé en TRUE sur la ligne
    Il suffit de tester ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim Toto As Boolean
     
        Toto = 2
        If Toto = 2 Then MsgBox "Toto = 2" Else MsgBox "toto a changé de valeur"
        MsgBox Toto * 1
    qui renvoie toto a changé de valeur puis -1 ( et pas 2)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    La VRAIE (puisqu'on discute ici de booléens ) question est : est-il certain de tester (ou de pouvoir le faire) le type de sa variable ?

  16. #16
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    ...La VRAIE (puisqu'on discute ici de booléens ) question est : est-il certain de tester (ou de pouvoir le faire) le type de sa variable ?...
    L'export des valeurs d'un champ booléen d'Access "type" bien les cellules concernées en vbboolean, si c'est cela le sens de ta question
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    A tous,

    le test VBboolean est à mon sens inutile puisque le champ Access exporté est de type Boolean, donc je ne peux avoir que FALSE ou TRUE et que mon fichier est intégralement crée par l'export avant reformattage via excel.

    Le test que j'effectuais était dans le but de tester la valeur TRUE, alors désolé si j'ai faussé le débat.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Dors tranquille, Godzestla, de la discussion jaillit la lumière. Ça m'évitera déjà d'utiliser les raccourcis pour tester une cellule dans VBA, c'est déjà ça de gagné outre que je me suis bien amusé

    (Bon ben j'ai du nettoyage à faire...)

  19. #19
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    (Bon ben j'ai du nettoyage à faire...)
    Et moi je dois me repoudrer le nez.

    A+
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  20. #20
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    C'est pour cela que, dans un premier temps, je ne suis pas tracassé du type de la variable, ni même de la différence TRUE <> -1, puisque tes cellules sont remplies à l'export soit avec TRUE, soit avec FALSE, mais jamais avec une autre valeur ou une absence de valeur (Access n'accepte pas NULL comme valeur dans un champ booléen, ou plutôt transforme automatiquement NULL en FALSE et tout autre valeur numérique en TRUE).

    La discussion présente aura eu le mérite de mettre en évidence quelques pièges de VBA lorsque l'on utilise des tests implicites, ainsi que sur les problèmes du cast implicite de VBA (changement de type de valeur en fonction du contexte)...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/12/2009, 22h29
  2. [Tableaux] Problème de test sur une variable
    Par Laurent64 dans le forum Langage
    Réponses: 7
    Dernier message: 20/05/2007, 14h04
  3. Problème exportation table Access dans Excel
    Par Thiazung dans le forum Access
    Réponses: 5
    Dernier message: 02/10/2006, 17h12
  4. Réponses: 4
    Dernier message: 29/08/2006, 16h37
  5. Réponses: 4
    Dernier message: 16/06/2005, 15h37

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