Problème dans mon code

Résolu
theo1222 Messages postés 11 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai fait une formule vba mais le problème c'est que ma formule ne m'affiche que "total" ou partiel " et non "accepté" ou "rejete"
voici mon code :
Public Sub TypeDeRemboursement3()
For ligne = 2 To 9
    If Cells(ligne, 6) = "Oui" Then
    'si c'est vrai
    Cells(ligne, 10).Value = "Accepté"

        If Cells(ligne, 5) >= Cells(ligne, 8) Then
            'si c'est vrai
            Cells(ligne, 10) = " Total"
        Else
            'si c'est faux
            Cells(ligne, 10).Value = " Partiel"
        End If
        
    Else 'si c'est faux
        Cells(ligne, 10).Value = " Rejeté"
    End If
Next ligne
End Sub


Merci de bien vouloir m'aider à identifier l'erreur que j'aurais pu commettre

6 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour

    Qu'as tu comme valeurs dans tes colonnes E , F et H ?
    0
  2. theo1222 Messages postés 11 Statut Membre
     
    la colonne E se nomme "montant demandé" donc c'est un nombre comme 1500€ par exemple
    la colonne F c'est "Remboursement" il y a "oui" si le remboursement est accepté et si il est rejeté c'est "non"
    la colonne H c'est "Montant remboursé" donc si le montant demandé c'est 1500€ le montant remboursé est soit 1500€ ou moins comme 1200€
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Oui ou oui ?
      Attention à la majuscule... Dans ton code tu as utilisé Oui avec un O majuscul ..

      dans l'idéal, il faudrait que tu nous montre un fichier d'exemple avec les données de façon à ce qu'on puisse vérifier le fonctionnement de ta macro.

      tu pourrais également exécuter cette macro en mode pas à pas et vérifier à chaque instruction la valeur des différentes variables en positionnant le pointeur de ta SOURIS dessus.
      0
  3. theo1222 Messages postés 11 Statut Membre
     
    Oui avec une majuscule oups, voici une image montrant ce que j'aimerais faire, donc en fait mon code normalement aurais du m'afficher "Accepté" si c'est "Oui" et "Rejeté" si c'est "Non" et rajouter après "Total" ou "Partiel" suivant si le montant demandé est le même ou inférieur au montant remboursé
    Merci de m'aider, vraiment c'est sympas ^^

    0
  4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    J'ai l'impression que ce que tu veux faire c'est ça
    Sub TypeDeRemboursement()
    Dim l As Integer
    Dim valRemboursement As String ' colonne B
    Dim MontantR ' Montant remboursé colonne A
    Dim MontantD ' montant demandé colonne C
    Dim TypeR As String ' Type de remboursement colonne D
    
    
    For l = 1 To 10
        valRemboursement = Cells(l, 2).Value
        If UCase(valRemboursement) = "OUI" Then
            MontantD = Cells(l, 1).Value ' colonne A
            MontantR = Cells(l, 3).Value ' colonne C
            TypeR = "Accepté"
            If MontantD <= MontantR Then
                TypeR = TypeR & " Total"
            Else
                TypeR = TypeR & " Pariel"
            End If
        Else
          TypeR = " Rejeté"
        End If
        
        'On écrit dans la cellule
        Cells(l, 4).Value = TypeR
    Next
    
    

    0
    1. theo1222 Messages postés 11 Statut Membre
       
      j'ai essayé et ça fonctionne aussi comme ce que j'ai trouvé, mais le votre à l'air plus complexe et plus complet, merci beaucoup de votre en tout cas et je retiens pour la prochaine fois qu'il faut utiliser les balises de code.

      Bonne soirée
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > theo1222 Messages postés 11 Statut Membre
         
        Il n'est pas plus "complexe".
        Il est juste un peu plus découpé ... de façon à utiliser des variables (ayant des noms "parlants" ) de façon à rendre le code plus lisible que des simple cells(ligne,xxx ) dans tous les sens...
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. theo1222 Messages postés 11 Statut Membre
     
    J'ai tenté quelque chose d'autre mais c'est pas fini, c'est une test
    Public Sub TypeDeRemboursement3()
    For ligne = 2 To 9

    If Cells(ligne, 3) >= Cells(ligne, 1) Then
    Cells(ligne, 4).Value = "Accepté et Total"
    Else
    Cells(ligne, 4).Value = "Accepté et Partiel"

    End If

    Next ligne
    End Sub

    Mais malheureusement, je ne sais pas comment et ou ajouté un "esle" pour dire "Rejeté"
    ça donne ceci comme résultat
    0
  7. theo1222 Messages postés 11 Statut Membre
     
    Et bien voilà j'ai résolu mon problème, merci de votre aide
    0