Problème dans mon code

Résolu/Fermé
theo1222 Messages postés 11 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 14 décembre 2020 - Modifié le 2 déc. 2020 à 23:25
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 - 3 déc. 2020 à 00:27
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
A voir également:

6 réponses

jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
2 déc. 2020 à 23:36
Bonjour

Qu'as tu comme valeurs dans tes colonnes E , F et H ?
0
theo1222 Messages postés 11 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 14 décembre 2020
2 déc. 2020 à 23:41
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
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
2 déc. 2020 à 23:47
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
theo1222 Messages postés 11 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 14 décembre 2020
2 déc. 2020 à 23:59
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
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
3 déc. 2020 à 00:16
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
theo1222 Messages postés 11 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 14 décembre 2020
3 déc. 2020 à 00:24
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
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > theo1222 Messages postés 11 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 14 décembre 2020
3 déc. 2020 à 00:27
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
theo1222 Messages postés 11 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 14 décembre 2020
3 déc. 2020 à 00:17
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
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
3 déc. 2020 à 00:19
N'oublie pas d'utiliser les BALISES DE CODE pour poster du code sur le forum...

QUoi qu'il en soit, la réponse est là : https://forums.commentcamarche.net/forum/affich-36976658-probleme-dans-mon-code#5
0
theo1222 Messages postés 11 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 14 décembre 2020
3 déc. 2020 à 00:19
Et bien voilà j'ai résolu mon problème, merci de votre aide
0