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 :

Annuler InputBox en format date. Incompatibilité de type


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2009
    Messages : 117
    Par défaut Annuler InputBox en format date. Incompatibilité de type
    Bonjour,

    J'ai une InputBox dans laquelle je demande une DATE. J'aimerais que cette InputBox se ferme si le bouton Annuler est pressé ou s'il n'a eu aucun choix.

    Mon problème est que j'ai réussi à le faire avec des InputBox contenant des chiffre, mais ça ne fonctionne pas pour une DATE. Dans l'InputBox, je demande une date sous le Format AAAA-MM-JJ Puisque qu'elle est en lien avec Access. Voici mon code (qui fonctionne, mais qui ne fonctionne pas avec le If. Ça me dit que j'ai une incompatibilité de type)

    J'ai besoin d'aide....Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim sDate As Date
     
    sDate = InputBox("Entrez la date de début voulu" & vbCrLf & "format (AAAA-MM-JJ)")
     
        If sDate = "" Then
                MsgBox "opération annulée"
     
                Else
    'LE RESTE DE MON CODE
    Merci de me donner un coup de pouce.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    le mieux pour récupérer une valeur issue d'une InputBox, ca reste le type de variable Variant
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre éprouvé Avatar de Brunodm13
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 129
    Par défaut
    Bonjour,

    Le contenu renvoyé par une InputBox est toujours de type String.
    C'est la raison de ton incompatibilité de type.

    Cordialement

    Bruno

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2009
    Messages : 117
    Par défaut
    Je vais essayer ça alors..merci

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2009
    Messages : 117
    Par défaut
    Ca ne fonctionne pas. Mon problème est que je demande:

    DATEDÉBUT une date de début (par inputbox)
    PLAGE une plage (combien de jours à sortir par inputbox)
    ce qui me donne la date de fin
    DATEFIN= DATEDEBUT + PLAGE - 1 (pour ne pas avoir 1 jours en trop)

    et J'ai du code qui va appliquer le tout dans une requête Access avec DATEDEBUT et DATEFIN car mes champs dans Access sont en format Date (que je ne peux pas changer)

    Or, si je ne rajoute pas la fonction If pour quitter si le bouton annuler est cliquez, mon programme fonctionne très bien.

    J'Ai DATEDÉBUT AS DATE
    PLAGE AS STRING
    DATEFIN AS DATE
    Je vous rapel que tout fonctionne si j'enlève la fonction If., Dès que je demande
    If DATEDEBUT = "" Then
    MsgBox "opération annulée"

    Le programme plante

    à l'Aide Merci!

  6. #6
    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
    Or, si je ne rajoute pas la fonction If pour quitter si le bouton annuler est cliquez, mon programme fonctionne très bien.
    ce n'est pas le cas chez moi le code plante dès le test avec l'inputbox

  7. #7
    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
    Regarde un message plus haut, (ne pas déclarer sDate As date)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim sDate
    sDate = InputBox("Entrez la date de début voulu" & vbCrLf & "format (AAAA-MM-JJ)")
    If sDate = "" Then
        MsgBox "opération annulée"
    '......

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/05/2015, 09h54
  2. [OL-2010] sync access 2010 : comparaison de date: incompatibilite de type
    Par sebinator dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 10/02/2013, 01h43
  3. [AC-2007] Intervalle pour un format Date/Heure de type heure
    Par Manilla dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 21/08/2012, 12h20
  4. [AC-2002] Requête SQL avec date => Incompatibilité de type
    Par waici dans le forum VBA Access
    Réponses: 3
    Dernier message: 31/08/2009, 09h59
  5. [VB6]Aide pour mettre format date avec inputbox
    Par Geliwy77 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 28/01/2006, 20h13

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