Je voudrais réaliser une fonction personnalisée... mais celle ci ne me
retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne
lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double
Dim i As Long
Dim TDeb
TDeb = 0
i = 1
Do
If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value,
Len(nCpt)) = nCpt Then
TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i,
6).Value
End If
i = i + 1
Loop Until Cells(i, 1).Value = ""
Débit = TDeb
End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je
recherche le total débit (en colone 6) de tout les comptes (en colone 3)
commençant par nCpt. Exemple :
= Débit ("601")
Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0...
du moins quand je l'utilise dans une cellule... :-/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Hd,
à la place de Loop Until Cells(i, 1).Value = ""
ce ne serait pas Loop Until Cells(i, 3).Value = ""
isabelle
HD a écrit :
Bonjour,
Je voudrais réaliser une fonction personnalisée... mais celle ci ne me retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double Dim i As Long Dim TDeb TDeb = 0 i = 1
Do If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value, Len(nCpt)) = nCpt Then TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i, 6).Value End If i = i + 1 Loop Until Cells(i, 1).Value = "" Débit = TDeb End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je recherche le total débit (en colone 6) de tout les comptes (en colone 3) commençant par nCpt. Exemple : = Débit ("601") Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0... du moins quand je l'utilise dans une cellule... :-/
Merci d'avance pour votre aide
bonjour Hd,
à la place de
Loop Until Cells(i, 1).Value = ""
ce ne serait pas
Loop Until Cells(i, 3).Value = ""
isabelle
HD a écrit :
Bonjour,
Je voudrais réaliser une fonction personnalisée... mais celle ci ne me
retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne
lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double
Dim i As Long
Dim TDeb
TDeb = 0
i = 1
Do
If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value,
Len(nCpt)) = nCpt Then
TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i,
6).Value
End If
i = i + 1
Loop Until Cells(i, 1).Value = ""
Débit = TDeb
End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je
recherche le total débit (en colone 6) de tout les comptes (en colone 3)
commençant par nCpt. Exemple :
= Débit ("601")
Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0...
du moins quand je l'utilise dans une cellule... :-/
ce ne serait pas Loop Until Cells(i, 3).Value = ""
isabelle
HD a écrit :
Bonjour,
Je voudrais réaliser une fonction personnalisée... mais celle ci ne me retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double Dim i As Long Dim TDeb TDeb = 0 i = 1
Do If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value, Len(nCpt)) = nCpt Then TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i, 6).Value End If i = i + 1 Loop Until Cells(i, 1).Value = "" Débit = TDeb End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je recherche le total débit (en colone 6) de tout les comptes (en colone 3) commençant par nCpt. Exemple : = Débit ("601") Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0... du moins quand je l'utilise dans une cellule... :-/
Merci d'avance pour votre aide
isabelle
bonjour Hd,
Public Function Débit(plage As Range, nCpt As String) As Double Dim TDeb TDeb = 0 For Each c In plage If Left(c, Len(nCpt)) = nCpt Then TDeb = TDeb + Cells(c.Row, 6) Next Débit = TDeb End Function
=Débit(C1:C20;"601")
isabelle
HD a écrit :
Bonjour,
Je voudrais réaliser une fonction personnalisée... mais celle ci ne me retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double Dim i As Long Dim TDeb TDeb = 0 i = 1
Do If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value, Len(nCpt)) = nCpt Then TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i, 6).Value End If i = i + 1 Loop Until Cells(i, 1).Value = "" Débit = TDeb End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je recherche le total débit (en colone 6) de tout les comptes (en colone 3) commençant par nCpt. Exemple : = Débit ("601") Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0... du moins quand je l'utilise dans une cellule... :-/
Merci d'avance pour votre aide
bonjour Hd,
Public Function Débit(plage As Range, nCpt As String) As Double
Dim TDeb
TDeb = 0
For Each c In plage
If Left(c, Len(nCpt)) = nCpt Then TDeb = TDeb + Cells(c.Row, 6)
Next
Débit = TDeb
End Function
=Débit(C1:C20;"601")
isabelle
HD a écrit :
Bonjour,
Je voudrais réaliser une fonction personnalisée... mais celle ci ne me
retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne
lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double
Dim i As Long
Dim TDeb
TDeb = 0
i = 1
Do
If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value,
Len(nCpt)) = nCpt Then
TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i,
6).Value
End If
i = i + 1
Loop Until Cells(i, 1).Value = ""
Débit = TDeb
End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je
recherche le total débit (en colone 6) de tout les comptes (en colone 3)
commençant par nCpt. Exemple :
= Débit ("601")
Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0...
du moins quand je l'utilise dans une cellule... :-/
Public Function Débit(plage As Range, nCpt As String) As Double Dim TDeb TDeb = 0 For Each c In plage If Left(c, Len(nCpt)) = nCpt Then TDeb = TDeb + Cells(c.Row, 6) Next Débit = TDeb End Function
=Débit(C1:C20;"601")
isabelle
HD a écrit :
Bonjour,
Je voudrais réaliser une fonction personnalisée... mais celle ci ne me retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double Dim i As Long Dim TDeb TDeb = 0 i = 1
Do If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value, Len(nCpt)) = nCpt Then TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i, 6).Value End If i = i + 1 Loop Until Cells(i, 1).Value = "" Débit = TDeb End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je recherche le total débit (en colone 6) de tout les comptes (en colone 3) commençant par nCpt. Exemple : = Débit ("601") Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0... du moins quand je l'utilise dans une cellule... :-/
Merci d'avance pour votre aide
isabelle
ou bien,
=Débit(écritures!$C$1:$C$20;"601")
isabelle
HD a écrit :
Bonjour,
Je voudrais réaliser une fonction personnalisée... mais celle ci ne me retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double Dim i As Long Dim TDeb TDeb = 0 i = 1
Do If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value, Len(nCpt)) = nCpt Then TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i, 6).Value End If i = i + 1 Loop Until Cells(i, 1).Value = "" Débit = TDeb End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je recherche le total débit (en colone 6) de tout les comptes (en colone 3) commençant par nCpt. Exemple : = Débit ("601") Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0... du moins quand je l'utilise dans une cellule... :-/
Merci d'avance pour votre aide
ou bien,
=Débit(écritures!$C$1:$C$20;"601")
isabelle
HD a écrit :
Bonjour,
Je voudrais réaliser une fonction personnalisée... mais celle ci ne me
retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne
lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double
Dim i As Long
Dim TDeb
TDeb = 0
i = 1
Do
If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value,
Len(nCpt)) = nCpt Then
TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i,
6).Value
End If
i = i + 1
Loop Until Cells(i, 1).Value = ""
Débit = TDeb
End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je
recherche le total débit (en colone 6) de tout les comptes (en colone 3)
commençant par nCpt. Exemple :
= Débit ("601")
Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0...
du moins quand je l'utilise dans une cellule... :-/
Je voudrais réaliser une fonction personnalisée... mais celle ci ne me retourne 0 dès que je l'utilise dans mon classeur alors qu'elle fonctionne lorsque je la lance à partir d'une macro...
Voilà ma macro :
Public Function Débit(nCpt As String) As Double Dim i As Long Dim TDeb TDeb = 0 i = 1
Do If Left(ActiveWorkbook.Sheets("écritures").Cells(i, 3).Value, Len(nCpt)) = nCpt Then TDeb = TDeb + ActiveWorkbook.Sheets("écritures").Cells(i, 6).Value End If i = i + 1 Loop Until Cells(i, 1).Value = "" Débit = TDeb End Function
J'ai en fait une feuille "écritures" avec des écritures comptables. Je recherche le total débit (en colone 6) de tout les comptes (en colone 3) commençant par nCpt. Exemple : = Débit ("601") Je cherche ici le total des débits pour les comptes commençant par 601...
Mais voilà... ça ne fonctionne pas... La fonction me retourne toujours 0... du moins quand je l'utilise dans une cellule... :-/
Merci d'avance pour votre aide
HD
Ouille...
J'ai trouvé pourquoi ça bloquait... cela venait de la condition de ma boucle... comme quoi, l'on cherche parfois bien compliqué alors que la solution est sous notre nez...
@+ HD
Ouille...
J'ai trouvé pourquoi ça bloquait... cela venait de la condition de ma
boucle... comme quoi, l'on cherche parfois bien compliqué alors que la
solution est sous notre nez...
J'ai trouvé pourquoi ça bloquait... cela venait de la condition de ma boucle... comme quoi, l'on cherche parfois bien compliqué alors que la solution est sous notre nez...
@+ HD
Caetera
> J'ai trouvé pourquoi ça bloquait... cela venait de la condition de ma boucle... comme quoi, l'on cherche parfois bien compliqué alors que la solution est sous notre nez...
***************
Une fonction personnalisée écrite avec des plages en dur et sans variables, ça n'a pas de sens... Pour ce cas de figure et avec des plages nommées il suffit de ça :
> J'ai trouvé pourquoi ça bloquait... cela venait de la condition de ma
boucle... comme quoi, l'on cherche parfois bien compliqué alors que la
solution est sous notre nez...
***************
Une fonction personnalisée écrite avec des plages en dur et sans variables, ça
n'a pas de sens...
Pour ce cas de figure et avec des plages nommées il suffit de ça :
> J'ai trouvé pourquoi ça bloquait... cela venait de la condition de ma boucle... comme quoi, l'on cherche parfois bien compliqué alors que la solution est sous notre nez...
***************
Une fonction personnalisée écrite avec des plages en dur et sans variables, ça n'a pas de sens... Pour ce cas de figure et avec des plages nommées il suffit de ça :
> Une fonction personnalisée écrite avec des plages en dur et sans variables, ça n'a pas de sens...
Cette plage est amenée à voir très régulièrement bouger ses données... les données récupérées proviennent d'une base de donnée SQL. Et si je passe par des fonctions Débit() ou Crédit() c'est aussi et surtout pour reprendre tel que les paramètres des fonctions OLE d'un autre logiciel... Ainsi les fonctions OLE Débit et Crédit seront remplacées par les fonctions du même nom mais provenant d'une macro complémentaire... Ainsi tout sera directement compatible.
Mais la formule que vous m'avez fournie est très intéressante... Il est donc probable que je la réutilise.
Merci à vous tous ;-)
-- @+ HD
> Une fonction personnalisée écrite avec des plages en dur et sans
variables, ça n'a pas de sens...
Cette plage est amenée à voir très régulièrement bouger ses données... les
données récupérées proviennent d'une base de donnée SQL. Et si je passe par
des fonctions Débit() ou Crédit() c'est aussi et surtout pour reprendre tel
que les paramètres des fonctions OLE d'un autre logiciel... Ainsi les
fonctions OLE Débit et Crédit seront remplacées par les fonctions du même
nom mais provenant d'une macro complémentaire... Ainsi tout sera directement
compatible.
Mais la formule que vous m'avez fournie est très intéressante... Il est donc
probable que je la réutilise.
> Une fonction personnalisée écrite avec des plages en dur et sans variables, ça n'a pas de sens...
Cette plage est amenée à voir très régulièrement bouger ses données... les données récupérées proviennent d'une base de donnée SQL. Et si je passe par des fonctions Débit() ou Crédit() c'est aussi et surtout pour reprendre tel que les paramètres des fonctions OLE d'un autre logiciel... Ainsi les fonctions OLE Débit et Crédit seront remplacées par les fonctions du même nom mais provenant d'une macro complémentaire... Ainsi tout sera directement compatible.
Mais la formule que vous m'avez fournie est très intéressante... Il est donc probable que je la réutilise.