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 :

Problème avec IF , ELSE IF et ELSE


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ergonome
    Inscrit en
    Octobre 2019
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2019
    Messages : 45
    Par défaut Problème avec IF , ELSE IF et ELSE
    Bonjour les amis,

    avec de l'aide j'ai pu programmer une fonction presque parfaite, j'en suis arrivé qu'à un moment le résultat n'est plus escompté car j'ai deux cas de figure...

    cas 1 : la valeur "maVal" contient en fin de chaîne de caractères le caractère "," (par exemple "750,") et là je fais le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maVal2 = Left(maVal, Len(maVal) - 1)
    cas 2 : la valeur "maVal" ne contient pas en fin de chaîne de caractères le caractère "," (par exemple "624" et la je fais le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maVal2 = Left(maVal, Len(maVal))
    NB : la valeur "maVal" n'est jamais le même chiffre

    et ensuite affiche la valeur "maVal2" sur la feuille "Analyse" cellule "K4"



    j'ai essayé cela (voir ci dessous), mais ca ne fonctionne pas (VBA me fait une erreur sur le Else : IF)

    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
        '   Test
            Dim pos1virg As Long
            'InStr = donne la position du caractere ","
            pos1virg = InStr(maVal, ",")
     
            ' Test SI "," présent ou non + Calcul le nombre de caractères restant : Len(maVal)
            Dim maVal2 As String
     
            If pos1virg = 1 Then maVal2 = Left(maVal, Len(maVal) - 1)
            Else: If pos1virg = 0 Then maVal2 = Left(maVal, Len(maVal))
            Else
     
                'renseigne la cellule "N4"
                    Set maFeuil = ThisWorkbook.Sheets("ANALYSE")
                    maFeuil.Range("K4").Value = maVal2
     
            End If
     
    End Sub
    Pouvez vous m'aider s'il vous plait et me dire où j'ai fait ma "boulette"
    Par avance merci et je vous souhaite une agréable journée

    David

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi utilises-tu la fonction Left dans le cas où la virgule n'est pas présente ?
    Ne serait-ce pas plus simple ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If pos1virg Then maval2 = Left(maVal, pos1virg - 1) Else maval2 = maVal
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Ergonome
    Inscrit en
    Octobre 2019
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2019
    Messages : 45
    Par défaut
    Merci philippe,

    ca marche impeccablement,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        '   Test si la chaine restante contient "," ou non à la fin
            Dim pos1virg As Long
            'InStr = donne la position du caractere ","
            pos1virg = InStr(maVal, ",")
            ' si "," retire 1 caractère, sinon prend la valeur "maVal"
            If pos1virg Then maVal2 = Left(maVal, pos1virg - 1) Else maVal2 = maVal
     
            'renseigne la cellule "N4"
            Set maFeuil = ThisWorkbook.Sheets("ANALYSE")
            maFeuil.Range("K4").Value = maVal2

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    regarder ce que fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    valeur = "782,12"
    MsgBox Val(Replace(valeur, ",", "."))
    valeur = "782,"
    MsgBox Val(Replace(valeur, ",", "."))

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

Discussions similaires

  1. Problème avec les "else if"
    Par ookki dans le forum C++
    Réponses: 5
    Dernier message: 22/06/2008, 18h25
  2. Problème avec if ... else. ..
    Par XeoN! dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 25/05/2008, 22h48
  3. problème avec la "ELSE"
    Par amazircool dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 17/12/2007, 14h23
  4. problème avec if..else..endif
    Par casavba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/08/2007, 11h14
  5. Problèmes avec des else if
    Par Kr00pS dans le forum C
    Réponses: 2
    Dernier message: 15/04/2006, 11h04

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