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 :

Inputbox sans valeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingenieur
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Points : 16
    Points
    16
    Par défaut Inputbox sans valeur
    Bonjour, bonsoir,

    Je vous contact ici car apres plusieurs recherches je n'arrive pas a trouver exactement comment resoudre mon probleme. Un probleme qui me paraissait simple au depart mais au final qui m'a bouffe toute mon apres midi.

    j'ai un imput box qui me permet je renseigner une date.
    Mon imputbox arrive a gerer losqu'on rentre une valeur, lorsqu'on appuie sur annuler mais pas lorqu'on appuie ok sans entrer de valeur. J'ai l'erreur d'execution '13' : Incompabilite de type qui s'affiche.

    Voici 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
    20
    21
    Dim dat As Date
     
    For k = 4 To Sheets("Planning").Range("U65536").End(xlUp).Row
        If Target.Column = 21 And Target.Row = k Then
           myvalk = Cells(k, 21)
           For Each cellulek In Target.Cells
                If cellulek.Value = "Yes" Then
                    dat = Application.InputBox("Please enter the expiry date of your HSE document", , "DD/MM/YYYY")
                            If IsEmpty(dat) Then
                                Cells(k, 21).Value = "No"
                            Exit Sub
                            ElseIf dat = False Then
                                Cells(k, 21).Value = "No"
                            Else
                                Cells(k, 22).Value = dat
                            End If
                End If
            Next
        End If
     Next
    End Sub
    Quoi que je fasse ca me met une erreur a la ligne dat = Application.InputBox("Please enter the expiry date of your HSE document", , "DD/MM/YYYY")

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Quiro Voir le message
    Bonjour,

    Votre variable Dat ne peut pas être de type Date car la valeur de la réponse peut être vide d'où l'erreur. InputBox est de type Variant : https://docs.microsoft.com/fr-fr/off...ation.inputbox

    A tester :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Option Explicit
     
    Sub MiseAJourColonneU()
     
    Dim I As Long, Derniereligne As Long
    Dim dat As Variant
    Dim AirePlanning As Range
     
        With Sheets("Planning")
     
             Derniereligne = .Cells(.Rows.Count, 21).End(xlUp).Row
             Set AirePlanning = .Range(.Cells(4, 21), .Cells(Derniereligne, 21))
     
             For I = 1 To AirePlanning.Count
     
                 With AirePlanning(I)
                      If .Value = "Yes" Then
     
                            dat = Application.InputBox("Please enter the expiry date of your HSE document", , Format(Date, "DD/MM/YYYY"))
     
                          If IsDate(dat) Then
                             .Offset(0, 1).Value = Format(dat, "MM/DD/YYYY") ' A adapter si le le format ne convient pas. 
                          Else
                             .Offset(0, 1).ClearContents ' En toute logique
                          End If
                          .Value = "No"
                      End If
                  End With
             Next I
             Set AirePlanning = Nothing
     
        End With
     
    End Sub

  3. #3
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    En complément de la réponse d'Eric :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub essaidate()
    Dim dat As Variant
        dat = InputBox("Please enter the expiry date of your HSE document", , "DD/MM/YYYY")
        If StrPtr(dat) = 0 Then
            MsgBox "Vous avez annulé", vbCritical + vbOKOnly, "Annulation utilisateur"
        ElseIf dat = vbNullString Then
            MsgBox "Aucune saisie", vbCritical + vbOKOnly, "Pas de saisie utilisateur"
        ElseIf IsDate(dat) Then
            MsgBox dat
        Else
            MsgBox "Mauvaise saisie", vbCritical + vbOKOnly, "L'utilisateur est un GROS BOULET"
        End If
    End Sub
    A noter l'utilisation de InputBox en lieu et place de Application.InputBox.
    Cela permet de différencier l'appui sur "ANNULER"...
    Cordialement,
    Franck

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingenieur
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Messieurs,
    Je vous tire mon chapeau.

    Un grand merci.
    Ca marche parfaitement

    Chapeau bas les artistes

Discussions similaires

  1. InputBox sans l'unité Dialogs
    Par dvarrel dans le forum Delphi
    Réponses: 14
    Dernier message: 28/05/2007, 14h05
  2. Evénement sur une inputbox sans bouton ?
    Par The Molo dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/04/2007, 13h59
  3. checkbox sans valeur
    Par Mat_DZ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/10/2006, 15h02
  4. access : calcul d'une somme de 0 sans valeur par défaut
    Par ericbelgium dans le forum Access
    Réponses: 6
    Dernier message: 06/10/2005, 09h05
  5. Liste déroulante sans valeur par défaut ?
    Par magic8392 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/02/2005, 16h59

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