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 :

Macro avec pb de point


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut Macro avec pb de point
    Bonjour à vous tous

    Voici une macro de mon cru qui bug :

    Lorsque je rentre le 1er versement sans le point du pavé numérique (exemple:14), la macro se déroule correctement, mais quand je tape 14.5, j'ai le message suivant (la ligne de code en gras est la source du problème) :


    Message erreur execution 13

    type incompatible


    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    R = MsgBox("Le 1er versement est-il fixe ?", vbYesNo + vbInformation, "Calcul automatique")
     
    If R = vbYes Then
     
    Message = "Veuillez entrer le montant du 1er versement."
    Titre = "Calcul automatique"
    Montant1 = InputBox(Message, Titre)
     
     
     
    'delai en moins de 12 mois
    numéro_erreur = "Référence de l'erreur : [calcul_auto_2]"
     
    If NbEch > 1 Then
    Range("F18:F29").ClearContents
    Range("H18:H29").ClearContents
     
    
    Range("F18").Value = Montant1
     
     
     Ech = (MontantDelai - Montant1) \ (NbEch - 1)
     N = NbEch - 2
     DernierVers = (MontantDelai - Montant1) - (Ech * N)
     DateEch = Datedebut
     
        
        
        For h = 1 To N + 1
        K = h + 17
        Cells(K, 8).Value = DateEch
        DateEch = DateAdd("m", 1, DateEch)
        Next h
        
        K = K + 1
        Cells(K, 8).Value = DateEch
        
        
        
        For i = 1 To N
        J = i + 18
        Cells(J, 6).Value = Ech
        Next i
         
        J = J + 1
        Cells(J, 6).Value = DernierVers
    Merci beaucoup !

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    ce qui est inscrit dans une inputbox est considéré comme du texte, il te faut le convertir. regarde du coté de la fonction val

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut
    Je ne suis pas un expert en macros

    Comment utiliser cette fonction val ?

    Merci

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    SAlut
    Au lieu de mettre un point met une virgule et hop ca marche
    Par contre tu risque d'avoir le meme probleme su d'autre micro mùais en sens inverse, cherche un peu sur le forum y'a deja eu une question a se sujet, "separateur decimal" je crois, un truc dans le genre.

    Pour l'utilisation de val tu peux faire
    Val(l'expression a convertir)

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut
    En effet, ce fichier sera installé sur un grand nombre de micros et je ne peux pas être sûr de la configuration de chacun

  6. #6
    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
    Et pour éviter une erreur par la saisie de l'utilisateur qui pourrait taper un point...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Dim Montant1
        Montant1 = InputBox("Montant=")
        Montant1 = Replace(Montant1, ".", ",")
    A+

  7. #7
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Citation Envoyé par LeForestier Voir le message
    Et pour éviter une erreur par la saisie de l'utilisateur qui pourrait taper un point...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Dim Montant1
        Montant1 = InputBox("Montant=")
        Montant1 = Replace(Montant1, ".", ",")
    A+
    Re
    Le soucis en faisant ca c'est qu'on obtient le probleme inverse si l'utilisateur a defini le point comme separateur decimal
    il me semblais que tu avais participé a la resolution d'un probleme similaire LeForestier, non ?
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonsoir

    tu peux aussi convertir la valeur inputbox en numeric

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Montant1
        Montant1 = Val(InputBox("Montant="))

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

Discussions similaires

  1. problème macro avec nuage de point
    Par Razekiel_ dans le forum Macros et VBA Excel
    Réponses: 35
    Dernier message: 14/06/2011, 15h03
  2. [CSV] Problème avec CSV et point virgules
    Par Lotz dans le forum Langage
    Réponses: 6
    Dernier message: 09/03/2006, 15h11
  3. [VBA][Excel]Exécution macro avec fichiers source
    Par ouezon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/12/2005, 00h00
  4. macro avec visual
    Par moldavi dans le forum MFC
    Réponses: 4
    Dernier message: 02/04/2005, 20h14
  5. [Debug]Pb avec les breaks points
    Par RoMinoU dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 13/05/2004, 12h36

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