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

Excel Discussion :

fonction personnalisée : pas de recalcul


Sujet :

Excel

  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut fonction personnalisée : pas de recalcul
    Bonjour,

    j'ai créé cette fonction personnalisée :

    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
    Function SommeCellulesCouleur(PlageEntree As Range, CouleurPlage As Range) As Double
    Application.Volatile
    Dim Cell As Range, TempSum As Double, ColorIndex As Integer
    ColorIndex = CouleurPlage.Cells(1, 1).Interior.ColorIndex
    TempSum = 0
    On Error Resume Next
    For Each Cell In PlageEntree.Cells
        If Cell.Formula <> "" Then
            If Cell.Interior.ColorIndex = ColorIndex Then TempSum = TempSum + Cell.Value
        End If
    Next Cell
    On Error GoTo 0
    Set Cell = Nothing
    SommeCellulesCouleur = TempSum
    End Function
    Pour pouvoir calculer une somme par rapport à une couleur de cellules.

    J'ai ajouté un :

    pensant que ça allait calculer à chaque fois qu'il y avait une modification. Or, ce n'est pas le cas. Quand je change de couleur une cellule de ma plage, rien ne se passe.

    Quelqu'un sait pourquoi la valeur ne change pas quand je change de couleur de cellule ? et si oui, comment faire pour que ça recalcule a chaque fois ?

    Merci par avance pour votre aide
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, déjà ColorIndex est un mot réservé ( à eviter comme nom de variable), mais même avant cela je lirais l'aide en ligne sur Volatile : la réponse y est explicite

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    oui je l'ai lu merci..ça me dit comment faire pour qu'elle s'actualise
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonjour

    oblige Excel à recalculer la fonction personnalisée lors d'un recalcul. Il faut donc... recalculer.

    Donc, la fonction sera actualisée lorsqu'une modification sur la feuille amène un recalcul (modification de valeur ou de formule, par exemple), lors d'une pression sur la touche F9 qui force un recalcul, ou par code, par exemple, mais cela risque d'être lourd, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        ActiveSheet.Calculate
    End Sub
    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Merci Pierre; je vais essayer

    L'inconvénient est que cette fonction je l'utilise sur plusieurs feuilles bon il n'y en a que 5, mais bon c'est pas pratique

    M'enfin merci quand meme, je vais quand meme essayer voir sic 'est pas trop lourd
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Les couleurs pourraient-elles résulter d'un format conditionnel?

    Sinon, il y bien la possibilité de gérer un évènement au niveau du classeur, mais si ton classeur est gros ou que le recalcul prend du temps, ce n'est pas top comme solution
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Non le classeur est pas gros, il fait 400 Ko a tout casser

    Et non les couleurs ne résultent pas d'un résultat conditionnel, enfin si mais des conditions "humaines".

    Pour explication, en fait ce sont des commandes de clients, qui en fait passent par 3 stades : créé, facturé et parfois annulée.

    Quand la commande est facturée, en fait on change la couleur de la ligne, et de ce fait le montant change (je pense que tu comprendra qu'il n'y a pas qu'une commande). C'est pour ça que j'avais créé cette fonction
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  8. #8
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    J'ai essayé de le mettre la dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        ActiveSheet.Calculate
    End Sub
    Mais il faut quand meme cliquer à coté de la cellule, si tu ne fait que changer la couleur ça marche pas. A moins que ça soit une autre qu'il faille utiliser ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Personnellement, je préfère devoir modifier la valeur d'une cellule pour informer qu'une commande a été facturée...

    Pourquoi?

    Parce que cela permet de traiter statistiquement les infos: Filtre automatique, récupération de données ailleurs que dans Excel, tableau statistique et Pareto sur le nombre de commandes facturées par mois, le délai entre la prise de commande et sa facturation, ...

    Et comme, de plus, cela permet d'appliquer automatiquement une mise en forme conditionnelle sur la ligne ET un recalcul, tout le monde y gagne.

    Donc, je conseillerais, si c'est possible (mais c'est toujours possible...), de modifier le classeur pour avoir une colonne supplémentaire avec la date de facturation (qui signalerait donc qu'il y a eu facturation) ou, à tout le moins, une validation dont la cellule avec "OUI/NON" dans une colonne "Facturée ?"

    Mais ce n'est que mon avis...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par illight Voir le message
    J'ai essayé de le mettre la dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        ActiveSheet.Calculate
    End Sub
    Mais il faut quand meme cliquer à coté de la cellule, si tu ne fait que changer la couleur ça marche pas. A moins que ça soit une autre qu'il faille utiliser ?

    Non, c'est bien celle-là, mais il faut qu'il y ait changement dans une cellule (valeur ou formule) pour que le recalcul se fasse. Le recalcul n'est pas forcé sur la modification d'une couleur, puisque cela n'affecte pas la valeur de la cellule...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Merci Pierre

    Déja qu'elle est très réticente à l'idée d'utiliser une nouvelle formule, alors imagine si je lui change le fichier

    Ahlala ces anciens...

    Je suis d'accord avec toi dans le fond mais bon les vieux ont leurs habitudes

    merci pour ton aide
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/10/2011, 13h53
  2. [XL-2003] macro/fonction simple qui ne recalcule pas après modif
    Par akka01 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/03/2011, 08h17
  3. [Toutes versions] Validation de données - Fonction personnalisée ne fonctionne pas
    Par Philippe Tulliez dans le forum Excel
    Réponses: 7
    Dernier message: 05/02/2011, 00h38
  4. Fonction personnalisée qui ne fonctionne pas
    Par ANOVA dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/07/2010, 15h29
  5. [VBA-E] Fonction personnalisée moyenne à fin M
    Par Geoffray dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2006, 20h58

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