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 :

Ajouter un bouton annuler à une InputBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut Ajouter un bouton annuler à une InputBox
    Bonjour,

    Ce code me permet d'ouvrir une ImputBox d'y saisir du texte afin de créer une sauvegarde sous un autre nom. Mais voilà, je n'ai pas la possiblité d'annuler l'affichage en cas d'erreur. Comment dois-je procéder ?
    Merci par avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub CommandButton10_Click()
    Dim vNom As String
    vNom = Trim(InputBox("Nom du fichier"))
    ActiveWorkbook.SaveAs Filename:=vNom & Sheets("Accueil").Range("A1").Value + 1
    For N = 1 To 52
        Sheets("S" & N).Visible = True
    Next N
    Sheets("Accueil").Visible = True
    Sheets("Accueil").Activate
        Range("A1").Select
    End Sub
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

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

    J'imagine que tu as une erreur ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vNom = Trim(InputBox("Nom du fichier"))
    Si c'est le cas, déclares vNom en Variant au lieu de String, et fais un test sur la nullité de cette variable avec la fonction IsNull.

    Philippe

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    Utilise la méthode InputBox pour bénéficier du bouton Annuler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Test_V04()
        Dim Donnee As Variant
     
        Donnee = Application.InputBox("Saisissez une valeur:", "Le titre")
     
       'Intercepte l'utilisation du bouton "Annuler" et la croix de fermeture.
       If VarType(Donnee) = vbBoolean Then
            MsgBox " opération annulée"
            Exit Sub
        End If
     
        MsgBox Donnee
    End Sub

    Quelle est la différence entre InputBox et Application.InputBox ?



    bon week end
    michel

  4. #4
    Invité
    Invité(e)
    Par défaut


    Je ne fais pas assez d'Excel , comme je passes toujours par des UserForm.

    Philippe

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Citation Envoyé par SilkyRoad Voir le message
    bonsoir

    Utilise la méthode InputBox pour bénéficier du bouton Annuler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Test_V04()
        Dim Donnee As Variant
     
        Donnee = Application.InputBox("Saisissez une valeur:", "Le titre")
     
       'Intercepte l'utilisation du bouton "Annuler" et la croix de fermeture.
       If VarType(Donnee) = vbBoolean Then
            MsgBox " opération annulée"
            Exit Sub
        End If
     
        MsgBox Donnee
    End Sub

    Quelle est la différence entre InputBox et Application.InputBox ?



    bon week end
    michel
    Bonjour SilkyRoad,

    Est-ce que ton code remplace le mien ou vient en complément ?
    Merci
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  6. #6
    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
    Bonjour,
    il me semble qu'il vient à la place de ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vNom = Trim(InputBox("Nom du fichier"))
    (\ _ /) Cordialement G@dz
    (='.'=)

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

  7. #7
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Voici le code au complet. Par contre je voudrais que le disque de sauvegarde soit le C\: par défaut, où dois-je le mettre ?
    J'ai essayé quelque chose mais ça beug de partout alors je l'ai retirer. (ce qu'il y a en violet)
    Merci par avance pour votre aide

    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
    Private Sub CommandButton10_Click()
    Dim donnee As Variant
        donnee = Application.InputBox("Saisissez le nom du fichier:", "Enregistrement de l'application")
        If VarType(donnee) = vbBoolean Then
        MsgBox "Opération annulée"
        Exit Sub
        End If
        MsgBox donnee
    ActiveWorkbook.SaveAs Filename:= (C\: &) donnee & Sheets("Accueil").Range("A1").Value + 1
    For N = 1 To 52
        Sheets("S" & N).Visible = False
    Next N
    Sheets("Accueil").Visible = True
    Sheets("Accueil").Activate
    End Sub
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  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
    Alors, tu devrais plutot utiliser les méthodes standard de Excel et te servir de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Filedialog(msoFileDialogSaveAs )
    Regarde dans l'aide en ligne.

    je crois qu'en utilisant CHDRIVE & CHDIR avant tu peux te positionner où tu veux avant.
    (\ _ /) Cordialement G@dz
    (='.'=)

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

  9. #9
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Voici mon code et il fonctionne. Qu'en pensez-vous ?

    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
     
    Private Sub CommandButton10_Click()
    Dim donnee As Variant
    Dim vChem As String
        vChem = "C:\Documents and Settings\CLAS\"
        donnee = Application.InputBox("Saisissez le nom du fichier:", "Enregistrement de l'application")
        If VarType(donnee) = vbBoolean Then
        MsgBox "Opération annulée"
        Exit Sub
        End If
        MsgBox donnee
    ActiveWorkbook.SaveAs Filename:=vChem & donnee & Sheets("Accueil").Range("A1").Value + 1
    For N = 1 To 52
        Sheets("S" & N).Visible = False
    Next N
    Sheets("Accueil").Visible = True
    Sheets("Accueil").Activate
    End Sub
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  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
    Re,
    j'en pense différentes choses :
    1) s'il fonctionne tant mieux.
    2) je ne comprends pas pourquoi tu caches tes feuilles APRES le saveas.
    3) si l'utilisateur choisit un nom qui n'est pas supporté par l'OS, . D'où l'avantage d'utiliser Filedialog qui ne lui permettra pas de saisir un mauvais nom.
    (\ _ /) Cordialement G@dz
    (='.'=)

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

  11. #11
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Moi non plus je ne sais pas pourquoi j'ai fait ça. De plus cela ne sert à rien.
    Je vais supprimer cette ligne.
    Merci pour ton éclairage
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

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

Discussions similaires

  1. [XL-2010] Utilisation du bouton Annuler de inputbox comme sortie d'instruction pour une date
    Par will-1981 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/09/2014, 09h46
  2. [FLEX] Ajouter un bouton sur une image
    Par miya dans le forum MXML
    Réponses: 2
    Dernier message: 02/03/2009, 17h29
  3. [waitbar] Ajouter un bouton "Annuler"
    Par Sinistro dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 12/05/2008, 17h47
  4. Maitriser le bouton annuler de InputBox
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/05/2008, 13h36

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