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 probleme compilation


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut InputBox probleme compilation
    Bonsoir , j'ai ce code ci et j'ai quelques questions dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub name()
    p = Application.InputBox(m, Type:=2)
    End Sub
    1. le programme ne compile pas , il me dit : erreur de compilation , attendu : expression . Or le m est bien une expression ici , non ?

    2.Le type :=2 à quelle signification et quelle utilité ici ?

    3.ce programme doit bien m'afficher un boite de dialogue dans lequel je peux taper quelquechose ?

    merci de votre aide .

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonsoir,
    Je sais pas où tu à trouvé cette formule moi je ne la connais pas, par contre, c'est exemple fonctionne, que ce soit dans un UF ou un événement feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sub EntreDT()
    dim Str as string
         Str = InputBox("La question", "Le titre", "Par Défaut")
    end sub
    A+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    personne ne peut répondre à mes questions ?

    leforestier , le Dim sert à quoi?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Maxence45 Voir le message
    personne ne peut répondre à mes questions ?

    leforestier , le Dim sert à quoi?
    Tu as une touche sur ton clavier que s'appelle , tu doubles-cliques sur ce mot pour le mettre en sur-brillance, et ensuite tu appuies sur F1.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Citation Envoyé par Maxence45 Voir le message
    personne ne peut répondre à mes questions ?

    leforestier , le Dim sert à quoi?
    qu'est-ce que j'ai fait à ton avis ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    ben je ne sais tjs pas à quoi correspond dans un InputBox ,e type :=2 , c'est pas noté dans mon bouquin...

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Citation Envoyé par Maxence45 Voir le message
    Bonsoir , j'ai ce code ci et j'ai quelques questions dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub name()
    p = Application.InputBox(m, Type:=2)
    End Sub
    1. le programme ne compile pas , il me dit : erreur de compilation , attendu : expression . Or le m est bien une expression ici , non ?

    2.Le type :=2 à quelle signification et quelle utilité ici ?

    3.ce programme doit bien m'afficher un boite de dialogue dans lequel je peux taper quelquechose ?

    merci de votre aide .
    Salut à tous
    Moi, je n'ai pas le même message d'erreur : C'est un problème de nom qui est réservé. Il faut éviter d'utiliser des noms qu'Excel utilise déjà, ça évite des erreurs de ce style

    Change name en name_1 par exemple
    Comme tu ne déclare pas tes variables, je ne peux que supposer que m est une variable texte, qui est ce qui doit s'afficher dans le corps de la boîte de dialogue.

    Si tu as été dans l'aide, tu as du voir que le type est le dernier des paramètre de l'inputbox. Celui sur lequel tu as pompé l'instruction a préférer nommé le paramètre, plutot que de mettre une série de virgules :
    p = Application.InputBox(m, Type:=2)
    p = Application.InputBox(m, , , , , , , 2)
    sont équivalente pour Excel

    Le type 2 veut dire que le retour sera un texte (string)
    Si tu entres un nombre, il sera considéré comme une cheîne de caractères.

    A+
    Edit
    Dim sert à déclarer une variable
    Comme c'est tellement évident avec les utilisateur d'Excel, je n'ai pas pensé que tu n'as peut-être pas l'aide VBA d'installéee (hé oui, microsoft pense que ce n'est pas utile de la mettre par défaut ).
    Donc, si tu ne l'as pas, je te conseille de l'installer en custom/personnalisé. Même si tu t'en sers peu, elle t'aidera pour la syntaxe.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    je n'ai malheuresement pas trouvé d'aide et je n'ai pas de documentation sur les InputBox , j'ai de légères interrogations néanmoins :

    Pour afficher une fenetre qui demande quelquechose on est obligé de le faire dans une variable de type string comme :

    Dim nom As String
    nom = InputBox("....")

    ?

    Ensuite , dans mon exemple je n'ai pas eu d'explication mais pq ils mettent Application.InputBox et non InputBox tt seul ?
    Le := 2 est il nécessaire ? Où puis je avoir une liste des types ? car tu m'as dit que type := 2 c'etait pour string , j'aimerais connaitre les autres ...

    merci de votre aide , je travaille de mon coté et dsl si je saisis pas tjs vos réponses , je ne suis pas encore expérimentée...

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bon, puisque tu n'a pas l'aide je me dévoue..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Cet exemple montre comment demander à l'utilisateur de taper un nombre.
    myNum = Application.InputBox("Enter a number")
    Comme tu vois, les paramètres ne sont pas obligatoires.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)
    Type : Argument de type Variant facultatif. Spécifie le type des données renvoyées. Si vous ne spécifiez pas cet argument, la boîte de dialogue renvoie du texte. Le type peut avoir une ou la somme des valeurs suivantes.

    Valeur Signification
    0 Une formule.
    1 Un nombre.
    2 Texte (une chaîne).
    4 Une valeur logique (True ou False).
    8 Une référence de cellule, sous la forme d'un objet Range.
    16 Une valeur d'erreur, telle que #N/A.
    64 Un tableau de valeurs.
    quand tu met...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p = Application.InputBox(m, Type:=2)
    en spécifiant Type:=2 cella évite de mettre toutes les virgules
    Mais tu devrais dimentionné tes variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Question()
    Dim P as string
    Dim m as string, T as string
       m = "La question que je vais posé"
       T = "Le titre de la fenêtre inputbox"
       P = Application.InputBox(m, T,Type:=2) 'le retour doit être un texte
    end sub
    J'ai testé c'est OK
    A+

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    ok c'est clair , mais si je mets Application.InputBox au lieu de InputBox c'est parce que c'est du vba et non du vb c'est çà ? car j'ai déjà vu des inputbox seuls...

    et je voulais aussi savoir si on est tjs obligé de faire passer intpubox par une variable genre nom = inputbox(...) , on peut pas directement écrire inputbox(...) ?

    en fait on est obligé à chaque fois d'utiliser un inputbox de déclarer avant des variables avec Dim c'est çà?

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    C fonctionne aussi SANS application.
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      P = InputBox("La question que je vais posé", "Le titre de la fenêtre inputbox",Type:=2)
    J'avais mis des variables c'était pour illustrer ton exemple
    A+
    Edit:
    Mettre Dim n'est pas obligatoir mais dans certain cas oui, et en plus ca sert à être sur que la variable contient bien ce que l'ont veux, tel du texte, ou un nombre ou....Tu ferais bien de te documenté sur DIM, Voir FAQ et Tuto due DVP, il y en a des masses.
    Et ne pas mettre de variable devant inputbox, comment tu va récupérer ce qui a été entrer dans l'inputbox ?

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut fonction second degré
    Bonsoir j'ai écrit une fonction qui calcul le discriminant d'une équation du seconde degré ax²+bx+c , la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function delta(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer
    delta = b * b - 4 * a * c
    End Function
    Quand je tape sur F5 , au lieu de s'exécuter , çà me lance une fenêtre où je dois taper le nom de la macro , quelqu'un sait pq ?

    merci

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Faudrait 1°) si tu pose une autre question le faire sur un autre poste si tu veux une réponse. A plus forte raison si tu le tag résolu.
    2°) Que tu te mette sérieusement à étudier le VB6
    La réponse à ta question demanderait Beaucoups, Beaucoups, Beaucoups trop d'explications.
    A+

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    je précise que je fais les exercices de débutants de mes livres , j'ai pas encore étudié le vb , on donne çà sans cours , on me demande pas forcément de comprendre le code maintenant mais comme je suis curieuse je pose des questions...

  15. #15
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Citation Envoyé par Maxence45 Voir le message
    Bonsoir j'ai écrit une fonction qui calcul le discriminant d'une équation du seconde degré ax²+bx+c , la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function delta(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer
    delta = b * b - 4 * a * c
    End Function
    Quand je tape sur F5 , au lieu de s'exécuter , çà me lance une fenêtre où je dois taper le nom de la macro , quelqu'un sait pq ?

    merci
    Salut
    Si tu es sous VBEditor et que ton curseur se trouve sur une ligne de macro, F5 lance la macro en cours. Si ton curseur est hors macro, il te demande quelle macro lancer.
    A+

  16. #16
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Gorfael Voir le message
    Salut
    Si tu es sous VBEditor et que ton curseur se trouve sur une ligne de macro, F5 lance la macro en cours. Si ton curseur est hors macro, il te demande quelle macro lancer.
    A+
    Vérifiez vos réponses svp

    Dans le cas présenté, F5 ne fonctionne pas car la macro demande des paramètres!!

    Maxence, nous sommes plusieurs à avoir répondu à cette question sur d'autres discussions que tu lances, notamment celle-ci. Merci de lire nos réponses. Que tu débutes dans Excel et dans VBA ne te dispense pas de faire l'effort de nous lire et d'essayer de nous comprendre...
    "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 Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Vérifiez vos réponses svp

    Dans le cas présenté, F5 ne fonctionne pas car la macro demande des paramètres!!

    Maxence, nous sommes plusieurs à avoir répondu à cette question sur d'autres discussions que tu lances, notamment celle-ci. Merci de lire nos réponses. Que tu débutes dans Excel et dans VBA ne te dispense pas de faire l'effort de nous lire et d'essayer de nous comprendre...
    Salut
    Effectivement, ce ,'est pas une macro mais une funtion
    J'ai donc regardé un peu trop vite
    A+

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

Discussions similaires

  1. [GCC]Probleme compilation FLAT BINARY sur windows
    Par Hexanium dans le forum Autres éditeurs
    Réponses: 10
    Dernier message: 24/07/2005, 18h07
  2. [DEBUTANT] problem compilation eclipse
    Par roninou dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 14/01/2005, 15h59
  3. [JAR]Probleme compilation avec jdom
    Par ronaldgis dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 04/08/2004, 11h31
  4. probleme compilation classe avec Borland c++ compiler 5.5
    Par softblue dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 17/06/2004, 15h16
  5. [Debian] problème compilation jbuilder 9...
    Par Ancien_Do.Urden dans le forum JBuilder
    Réponses: 5
    Dernier message: 20/03/2004, 15h02

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