Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Appel de fonction perso qui bug

  • Initiateur de la discussion Initiateur de la discussion Carnage029
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Carnage029

XLDnaute Occasionnel
Bonjour à tous,

J'ai crée 4 fonctions persos, mais quand je les appelle dans une cellule de mon tableur, il me met un magnifique #VALEUR alors que quand je fais afficher les étapes de calcul ou que je séléectionne la cellule puis reclic à coté il me donne le bon résultat...

Est-ce un problème courant ?

Ce problème est assez embêtant car j'ai énormément de macro qui viennent chercher la valeur de ces cases...

merci de votre aide :


au cas ou je met mes 4 fonctions persos :

Code:
Function montant_a_rembourser_soldes_completes() As Single

    Dim I As Integer
    montant_a_rembourser_soldes_completes = 0
    
    For I = 25 To 2000
        ' Factures, payés entièrement '
        If Application.WorksheetFunction.CountIf(Range("B25:B10000"), Range("B" & I)) = 1 Then
            If Sheets("Balance").Range("H" & I).Value >= 0 Then
                If Sheets("Balance").Range("J" & I).Value = Sheets("Balance").Range("C14").Value Then
                    montant_a_rembourser_soldes_completes = montant_a_rembourser_soldes_completes + Sheets("Balance").Range("H" & I).Value
                End If
            End If
        End If
        
    Next I
    

End Function

Function montant_a_rembourser_soldes_completes_avec_avoirs() As Single

    Dim I As Integer
    montant_a_rembourser_soldes_completes_avec_avoirs = 0
    
    For I = 25 To 2000
        ' Factures, payés entièrement '
        If Application.WorksheetFunction.CountIf(Range("B25:B10000"), Range("B" & I)) = 1 Then
            If Sheets("Balance").Range("J" & I).Value = Sheets("Balance").Range("C14").Value Then
                    montant_a_rembourser_soldes_completes_avec_avoirs = montant_a_rembourser_soldes_completes_avec_avoirs + Sheets("Balance").Range("H" & I).Value
            End If
        End If
        
    Next I
    

End Function


Function montant_a_rembourser_soldes_incompletes() As Single

    Dim I, J As Integer
    montant_a_rembourser_soldes_incompletes = 0
    J = 0
    For I = 25 To 2000
        ' Factures, payés partiellement '
        If Application.WorksheetFunction.CountIf(Range("B25:B10000"), Range("B" & I)) = 2 Then
            If Sheets("Balance").Range("H" & I).Value >= 0 Then
                If Sheets("Balance").Range("J" & I).Value = Sheets("Balance").Range("C14").Value Then
                    If Sheets("Balance").Range("H" & I).Value <> Application.WorksheetFunction.VLookup(Sheets("Balance").Range("B" & I).Value, Sheets("Balance").Range("B" & I + 1 & ":H1000"), 7, False) Then
                        montant_a_rembourser_soldes_incompletes = montant_a_rembourser_soldes_incompletes + Sheets("Balance").Range("H" & I).Value
                        montant_a_rembourser_soldes_incompletes = montant_a_rembourser_soldes_incompletes - Application.WorksheetFunction.VLookup(Sheets("Balance").Range("B" & I).Value, Sheets("Balance").Range("B" & I + 1 & ":H1000"), 7, False)
                    End If
                End If
            End If
        End If
    Next I

End Function


Function montant_a_rembourser_soldes_incompletes_avec_avoirs() As Single

    Dim I, J As Integer
    montant_a_rembourser_soldes_incompletes_avec_avoirs = 0
    J = 0
    For I = 25 To 2000
        ' Factures, payés partiellement '
        If Application.WorksheetFunction.CountIf(Range("B25:B10000"), Range("B" & I)) = 2 Then
            If Sheets("Balance").Range("J" & I).Value = Sheets("Balance").Range("C14").Value Then
                If Sheets("Balance").Range("H" & I).Value <> Application.WorksheetFunction.VLookup(Sheets("Balance").Range("B" & I).Value, Sheets("Balance").Range("B" & I + 1 & ":H1000"), 7, False) Then
                    montant_a_rembourser_soldes_incompletes_avec_avoirs = montant_a_rembourser_soldes_incompletes_avec_avoirs + Sheets("Balance").Range("H" & I).Value
                    montant_a_rembourser_soldes_incompletes_avec_avoirs = montant_a_rembourser_soldes_incompletes_avec_avoirs - Application.WorksheetFunction.VLookup(Sheets("Balance").Range("B" & I).Value, Sheets("Balance").Range("B" & I + 1 & ":H1000"), 7, False)
                End If
            End If
        End If
    Next I

End Function
 
Re : Appel de fonction perso qui bug

Bonjour,

si tu as #VALEUR! c'est qu'un argument passé à la function n'est pas du type attendu.
Hors elle n'attend aucun paramètre (tu n'en as pas mis) et je pense que tu en mets un.
Telle qu'écrite la syntaxe est :
=montant_a_rembourser_soldes_completes()
et non
=montant_a_rembourser_soldes_completes(plage)

Rien à voir avec ton pb mais ces fonctions je les typerais Double et non Single.

eric

PS: si pas ça joint un fichier...
 
Re : Appel de fonction perso qui bug

Désolé je peux pas joindre de fichier, l'excel fait 12Mo et est très confidentiel...

En fait je m'aperçois que quand je regarde la formule et qu'elle se recalcule c'est tout bon... mais dans la case j'écris ça

=SI(nomentreprise<>"";montant_a_rembourser_soldes_completes_avec_avoirs()+montant_a_rembourser_soldes_incompletes_avec_avoirs();0)

et l'autre

=SI(nomentreprise<>"";montant_a_rembourser_soldes_completes() + montant_a_rembourser_soldes_incompletes();0)


mais rien a faire...
 
Re : Appel de fonction perso qui bug

Bonjour,
peut-être y-a-t-il dans la colonne des chiffre à additionner une valeur de texte ? un - ? un Div#0 ?
essayes de tester dans une colonne voisine esttexte(cellule)
Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
703
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
580
Réponses
2
Affichages
330
Réponses
4
Affichages
671
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
805
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…