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 :

syntaxe If Else


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut syntaxe If Else
    bonjour à tous,

    P'tite question sur un programme tout bête..

    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
    
    Sub test()
    
    Dim i%
    
    For i = 5 To 14
            
                If Sheets("page1").Cells(3, 1) = Sheets("page1").Cells(i, 1) Then
                Sheets("page1").Cells(i, 1).Select
                End If
            Next
    End Sub
    
    Private Sub CommandButton1_Click()
    
    Application.Run "Classeur1.xls!Feuil1.test"
    
    End Sub
    
    Private Sub CommandButton2_Click()
    
    Range("A3").Select
        Selection.ClearContents
        
        Range("D10").Select
        Selection.ClearContents
        
    End Sub
    Je voudrais que dans la partie rouge de mon programme, si mon test échoue, la cellule D10 par exemple, affiche un message du type :"Recommencez"

    je ne sais pas où insérer le "ELSE" sans que ma cellule D10 n'affiche à chaque fois le message "Recommencez" après éxecution de la macro...

    Merci par avance,

    ++

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Et un simple message ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                If Sheets("page1").Cells(3, 1) = Sheets("page1").Cells(i, 1) Then
                     Sheets("page1").Cells(i, 1).Select
                   else
                     msgbox "Recommencer !"
                End If

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Merci pour ta réponse...

    Malheureusement la fenêtre "Recommencer" apparaît puis disparait après 15 clics dessus...

    à cause du next je pense...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    En fait, si mon test échoue...l'affichage "Recommencez§" est équivalent à une nouvelle saisie de la part de l'utilisateur...

    Merci par avance de votre aide pour résoudre mon prob

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu ne dis pas si tu préfères recommencer le test à zéro ou le continuer pour les 9 lignes concernées. A tout hasard :
    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()
     
    Dim i%
     
    For i = 5 To 14      
                If Sheets("page1").Cells(3, 1) = Sheets("page1").Cells(i, 1) Then
                     Sheets("page1").Cells(i, 1).Select
                  else
                     Msgbox "Recommencer !"
                     exit for
                End If
            Next
    End Sub
    A+

  6. #6
    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
    Salut lolove94
    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
    Sub test()
    Dim i%
    With Sheets("page1")
         For i = 5 To 14
              If .Range("A3") <> .Cells(i, "A") Then .range("D10")="Recommencer"
         Next
    end with
    End Sub
     
    Private Sub CommandButton1_Click()
         Application.Run "Classeur1.xls!Feuil1.test"
    End Sub
     
    Private Sub CommandButton2_Click()
    Range("A3,D10").ClearContents
    End Sub
    Je voudrais que dans la partie rouge de mon programme, si mon test échoue, la cellule D10 par exemple, affiche un message du type :"Recommencez"

    je ne sais pas où insérer le "ELSE" sans que ma cellule D10 n'affiche à chaque fois le message "Recommencez" après éxecution de la macro...
    Pour que la cellule D10 soit vide, il faut qu'aucune des cellule de la colonne A ne soit différente de A3. c'est comme ça que j'ai interprêté ton code (faire un select dans une boucle, sans l'utiliser de plus ne sert à rien)

    Le plus simple dans un problème de ce genre, c'est d'expliquer le but à atteindre et d'analyser les réponses données.
    Là, ce n'est pas une erreur de code, mais d'algorythme. Et si on peut trouver un mauvais codage, on ne peut trouver l'erreur de raisonnement qu'en ayant une idée de ce que doit faire le code.

    A+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    T'as solution a le mérite de n'afficher qu'une seule fenêtre "recommencez"...

    Malheureusement lors de la saisie par l'utilisateur, le programme ne selectionne plus la ligne correspondant à la saisie...

    Pour être clair, admettons que dans les cellules A1 à A14 il y a les valeurs 1, 2, 3, 4.....jusqu'à 11.

    l'utilisateur saisie dans la cellule A3 un chiffre....

    si ce chiffre est compris entre 1 à 11...alors le curseur se place sur la ligne correspondante....

    Si non une fenêtre apparaît "Recommencez"...ce qui veut dire qu'il faut que l'utilisateur saisisse de nouveau un chiffre dans la cellule A3

    rappel du prog

    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
    
    Sub test()
    
    Dim i%
    
    For i = 5 To 15
            
                If Sheets("page1").Cells(3, 1) = Sheets("page1").Cells(i, 1) Then
                Sheets("page1").Cells(i, 1).Select
                
                    Else
                    MsgBox "recommencez!!!"
                    Exit For
                End If
            Next
    End Sub
    Private Sub CommandButton1_Click()
    
    Application.Run "Classeur1.xls!Feuil1.test"
    
    End Sub
    
    Private Sub CommandButton2_Click()
    
    Range("A3").Select
        Selection.ClearContents
        
    End Sub

  8. #8
    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
    Salut lolove94
    Quand on donne le but, ça va tout de suite mieux
    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
     
    Sub test()
    Dim i%
    dim Flg as Boolean
    For i = 5 To 15
               If Sheets("page1").Cells(3, 1) = Sheets("page1").Cells(i, 1) Then
                   Sheets("page1").Cells(i, 1).activate
                   Flg = True
                   Exit For
               End If
    Next
    if Flg = false then
        MsgBox "Same player Shoot Again"
        [A3].clearcontents
        [A3].activate
    end if
    End Sub
    Devrait être mieux
    Je préfère ACTIVATE à SELECT : C'est la même chose quand ça ne concerne qu'une cellule, mais c'est plus parlant dans le code
    A+
    PS Heureusement que ton code est là, par ce que si tu entres les valeurs dans la plage de A1 à A14 et que la valeur de référence est A3.... ça va souvent tomber sur A3, non ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Merci beaucoup...

    ouais c'est vrai que dans le descriptif de mon problème ce n'était pas clair

    en tout cas ça fonctionne parfaitement maintenant...

    Merci beaucoup à toi....

    vraiment bien la solidarité sur ce forum....

    ++

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

Discussions similaires

  1. Erreur de syntaxe avec else
    Par nicolas76210 dans le forum Langage
    Réponses: 4
    Dernier message: 23/03/2015, 15h34
  2. [Batch] Syntaxe if else shell
    Par lozeba dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 10/09/2014, 16h21
  3. Problème syntaxe If .. Else
    Par NeverKevin dans le forum Excel
    Réponses: 2
    Dernier message: 02/02/2014, 17h59
  4. [CR XI] Problème de syntaxe IF-ELSE || IF-ELSEIF-ELSE
    Par ygyongy dans le forum Formules
    Réponses: 3
    Dernier message: 23/07/2013, 17h30
  5. syntaxe ereur else if
    Par strepoetlo dans le forum Général Python
    Réponses: 13
    Dernier message: 09/01/2010, 19h03

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