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 :

VBA code IF - Else IF - Else [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Par défaut VBA code IF - Else IF - Else
    Bonjour a tous,

    Je vous ecris pour un sujet qui me semblent facile pour autant j'ai beau chercher sur de nombreux forums et sites, je n'arrive pas pas a resoudre mon probleme.

    Je souhaite creer un fichier excel pour la coupe du monde qui permet de comparer les resultats des matchs (colonnes C et E) avec les pronostics remplis dans le fichier (colonne J et L).
    Exemple : france - angleterre (1 - 0) C = 1 et E = 0.

    L'idee est que pour un pronostics parfait (bon resultat et bon score (nbre de buts pour les 2 equipes)) le nombre de points est de 3.
    Pour un bon resultat (victoire, nul, defaite) sans le bon score le nombre de point est de 1.
    Pour tout autre resultat, le nombre de point est 0.

    le resultat est affiche dans le colonne numero 30.

    Je ne pense pas qu'il s'agisse du meilleurs moyen mais je voulais utiliser des IF, ELSEIF et ELSE mais j'ai toujours des erreurs de type Elseif without IF, End IF without block IF et quand j'essaye de les corrgier, je n'arrive plus au bon resultat.

    POurriez vous m'aider svp ?

    Voici mon code ci dessous.

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Dim x As Integer
    Dim y As Integer
     
    Dim RowNumber As Integer
    For RowNumber = 2 To 100
     
        If Cells(RowNumber, 5) = "" Then Exit Sub
     
     
        If Cells(RowNumber, 5) > Cells(RowNumber, 7) Then
     
            If Cells(RowNumber, 10) > Cells(RowNumber, 12) Then
     
                If Cells(RowNumber, 5) - Cells(RowNumber, 7) = Cells(RowNumber, 10) - Cells(RowNumber, 12) Then Cells(RowNumber, 30) = "3"
     
                Else: Cells(RowNumber, 30) = "1"
     
                End If
     
             Else: Cells(RowNumber, 30) = "0"
     
             End If
     
     
        ElseIf Cells(RowNumber, 5) < Cells(RowNumber, 7) Then
     
         If Cells(RowNumber, 10) < Cells(RowNumber, 12) Then
     
            If Cells(RowNumber, 5) - Cells(RowNumber, 7) = Cells(RowNumber, 10) - Cells(RowNumber, 12) Then Cells(RowNumber, 30) = "3"
     
            Else: Cells(RowNumber, 30) = "1"
     
            End If
     
         Else: Cells(RowNumber, 30) = "0"
     
        End If
     
     
     
        ElseIf Cells(RowNumber, 5) = Cells(RowNumber, 7) Then
     
         If Cells(RowNumber, 10) = Cells(RowNumber, 12) Then
     
            If Cells(RowNumber, 5) = Cells(RowNumber, 10) Then Cells(RowNumber, 30) = "3"
     
            Else: Cells(RowNumber, 30) = "1"
     
            End If
     
           End If
     
     
     
     
      Next RowNumber
     
    End Sub
    merci

    Guillaume

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 69
    Par défaut
    Bonjour, merci tout d'abord de baliser ton code sur le forum ça sera plus simple pour tout le monde.
    Ensuite pour les If regarde bien la structure de l'exemple suivant et essaye de faire pareil, mettre des tabulations améliore grandement la lisibilité du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If count = 0 Then
        message = "There are no items."
    ElseIf count = 1 Then
        message = "There is 1 item."
    Else
        message = "There are " & count & " items."
    End If

  3. #3
    Invité
    Invité(e)
    Par défaut Bonjour, regardes ça
    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
    Dim RowNumber As Integer
    For RowNumber = 2 To 100
     
    If Cells(RowNumber, 5) = "" Then Exit Sub
     
    If Cells(RowNumber, 5) > Cells(RowNumber, 7) Then
        If Cells(RowNumber, 10) > Cells(RowNumber, 12) Then
            If Cells(RowNumber, 5) - Cells(RowNumber, 7) = Cells(RowNumber, 10) - Cells(RowNumber, 12) Then Cells(RowNumber, 30) = "3" Else Cells(RowNumber, 30) = "1"
        Else
            Cells(RowNumber, 30) = "0"
        End If
    Else
        If Cells(RowNumber, 10) < Cells(RowNumber, 12) Then
            If Cells(RowNumber, 5) - Cells(RowNumber, 7) = Cells(RowNumber, 10) - Cells(RowNumber, 12) Then Cells(RowNumber, 30) = "3" Else Cells(RowNumber, 30) = "1"
        Else
            Cells(RowNumber, 30) = "0"
        End If
    End If

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Par défaut
    Héhé ca marche

    Merci beaucoup de votre aide !!

    Guillaume

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Par défaut
    Avec les tabulations, cela donne ceci. J'ai effectivement essaye de suivre cette mise en forme mais je ne comprends pas mes erreurs.

    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
     
     
    Dim x As Integer
    Dim y As Integer
    Dim RowNumber As Integer
    For RowNumber = 2 To 100
     
    If Cells(RowNumber, 5) = "" Then Exit Sub
                    If Cells(RowNumber, 5) > Cells(RowNumber, 7) Then
                                        If Cells(RowNumber, 10) > Cells(RowNumber, 12) Then
                                        If Cells(RowNumber, 5) - Cells(RowNumber, 7) = Cells(RowNumber, 10) - Cells(RowNumber, 12) Then Cells(RowNumber, 30) = "3"
                                        Else: Cells(RowNumber, 30) = "1"
                                        End If
                   Else: Cells(RowNumber, 30) = "0"
                   End If
    ElseIf Cells(RowNumber, 5) < Cells(RowNumber, 7) Then
                   If Cells(RowNumber, 10) < Cells(RowNumber, 12) Then
                                        If Cells(RowNumber, 5) - Cells(RowNumber, 7) = Cells(RowNumber, 10) - Cells(RowNumber, 12) Then Cells(RowNumber, 30) = "3"
                                        Else: Cells(RowNumber, 30) = "1"
                                        End If
                  Else: Cells(RowNumber, 30) = "0"
                  End If
    ElseIf Cells(RowNumber, 5) = Cells(RowNumber, 7) Then
                  If Cells(RowNumber, 10) = Cells(RowNumber, 12) Then
                                        If Cells(RowNumber, 5) = Cells(RowNumber, 10) Then Cells(RowNumber, 30) = "3"
                                        Else: Cells(RowNumber, 30) = "1"
                                        End If
                  End If
    End If
     
     
     
    Next RowNumber
     
    End Sub
    [/QUOTE]

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

Discussions similaires

  1. refactoring de plusieurs if-else-if-else .
    Par elekis dans le forum Langage
    Réponses: 3
    Dernier message: 05/04/2007, 16h56
  2. Réponses: 8
    Dernier message: 08/03/2007, 16h54
  3. [VBA] code pour recherche automatique de données
    Par lg022 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/02/2007, 10h20
  4. [VBA] Code presse papier
    Par bernard38 dans le forum Général VBA
    Réponses: 3
    Dernier message: 24/04/2006, 15h55
  5. [VBA] Code entre forms
    Par Virgile59 dans le forum Access
    Réponses: 3
    Dernier message: 28/12/2005, 21h57

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