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

Macros et VBA Excel Discussion :

Probleme #VALEUR lors du coloriage d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut Probleme #VALEUR lors du coloriage d'une cellule
    Voici ma macro, qui fonctoinne très bien sauf lorsque j'ai rajouté le coloriage d'une cellule, la macro na plus marché et affiche #VALEUR. Lorsque je met en comentaire la ligne ou je colore la cellule, la macro remarche.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Function aurore(ByVal Nombre_de_chiffre As Integer, ByVal Numero_du_compte As String)
     
    Dim test As String
    Dim j As Integer
    Dim i As Integer
    Dim somme As Long
    Dim numColonne As Integer
    somme = 0
     
    For j = 1 To 20
     
    If Worksheets(2).Cells(1, j).Value = "SOLDE" Then
    numColonne = j
    End If
     
    Next
     
    For i = 1 To 200
     
    test = Mid(Worksheets(2).Cells(i, 1).Value, 1, Nombre_de_chiffre)
     
    If test = Numero_du_compte Then
    somme = somme + Worksheets(2).Cells(i, numColonne).Value
    End If
     
    If test = Numero_du_compte Then
    Worksheets(2).Cells(i, numColonne).Interior.Color = RGB(200, 200, 200)
    End If
     
    Next
     
    resultat = somme
    aurore = resultat
     
    End Function
    D'ou ma question, qqn peut il me dire pkoi cette ligne
    Worksheets(2).Cells(i, numColonne).Interior.Color = RGB(200, 200, 200)
    ait -elle planté toute ma macro.
    Merci

  2. #2
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    Chez moi ça fonctionne.
    Est ce que par hasard ta feuille ne serait pas protégée ?
    (\ _ /)
    (='.'=)
    L'erreur est humaine. Mais pour une véritable catastrophe il faut un ordinateur
    (")-(") Lorsque votre problème est solutionné, merci de cliquer sur

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Non, mais le coloriage marche, c'est juste qu'il fait planter le reste de la macro.
    Si je met pas la ligne pour colorier, la marco marche, si je la met, elle colorie les bonne cellule mais le calcul a effectuer ne marche plus. C'est très bizarre.

  4. #4
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    J'ai toujours pas trouvé, sa n'a vraiment aucun sens que sa ne marche pas.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu quelque chose qui pourrait interférer sur l'évènement Change de la feuille , Où une mise en forme conditionnelle ?

    Starec

  6. #6
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Bonjour Starec,
    Qu'entend tu exactement par cela?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Re

    Citation Envoyé par Djaiffe Voir le message
    Bonjour Starec,
    Qu'entend tu exactement par cela?
    Ce que j'entends par là, c'est un code qui pourrait contrecarrer ton changement de couleur.

    Ex : Tu as une Mise en forme conditionnelle qui change la couleur au changement d'une valeur, et en même temps tu changes la couleur d'une autre manière.

    En fait c'est juste une idée qui m'est passée par la tête.

    Starec

  8. #8
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Ok je vois.
    Et bien je n'ai rien de tout sa, c le seul endroit dans ma macro ou je cahnge la couleur d'une cellule. Et je n'ai qu'une seule macro sur ce fichier.
    Le pire c que le code avec juste le cahngement de couleur fonctionne.
    Cest la combinaison du calcul et du changement de couleur qui renvoie #valeur.

  9. #9
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    Deux suggestions peut être un peu bête mais .....
    1. Remplacer tes deux conditions par une seule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If test = Numero_du_compte Then
       somme = somme + Worksheets(2).Cells(i, numColonne).Value
       Worksheets(2).Cells(i, numColonne).Interior.Color = RGB(200, 200, 200)
    End If
    2. Tester avec une couleur connue en constante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If test = Numero_du_compte Then
       somme = somme + Worksheets(2).Cells(i, numColonne).Value
       Worksheets(2).Cells(i, numColonne).Interior.Color = vbBlue
    End If
    Je sais ça semble idiot mais là je ne comprend vraiment pas d'où peut venir le pb
    (\ _ /)
    (='.'=)
    L'erreur est humaine. Mais pour une véritable catastrophe il faut un ordinateur
    (")-(") Lorsque votre problème est solutionné, merci de cliquer sur

  10. #10
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Toujours pareil, les cellules sont bien coloriés en bleues mais le calcule ne marche. Si je met la ligne du code ou s'effectue le coloriage en commentaire, le calcul marche.

    Comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If test = Numero_du_compte Then
       somme = somme + Worksheets(2).Cells(i, numColonne).Value
       'Worksheets(2).Cells(i, numColonne).Interior.Color = vbBlue
    End If

  11. #11
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut besoin d'éclairage
    Tu peux nous expliquer comment tu appel cette fonction ? par le code ou en dur dans une fonction Excel dans ta feuille et dans ce cas la cellule sur laquelle tu applique ta mis en forme contient'elle cette fonction ?

    j'suis pas certain d'avoir été limpide...
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  12. #12
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Ma fonction se trouve dans le module du calsseur personnel qui permet d'appeler des marco a partir de tous les documents.
    Pour l'utiliser on se positionne sur une cellule on click sur Fx, on va dans fonction personnalisé et on choisi la fonction. On rempli les parametre et go.

  13. #13
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Worksheets(2).Cells(1, j).Value = "SOLDE" Then
    numColonne = j
    End If

    Et quand la cellule Worksheets(2).Cells(1, j) est différente de "SOLDE"... numcolonne=0
    et donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(2).Cells(i, numColonne).Value
    avec un nméro de collone =0 ça se plante....

    il y a peut être autre chose mais il y a au moins déjà ça
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  14. #14
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    j'ai remplacé numColonne par 7 et j'ai toujours le meme probleme
    Dommage , ji croyais ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If test = Numero_du_compte Then
       somme = somme + Worksheets(2).Cells(i, 7).Value
       Worksheets(2).Cells(i, 7).Interior.Color = vbBlue
    End If

  15. #15
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Ouai moi aussi j'y croyais... Il n'en reste pas moins que ce pb existe mais que cela ne résoud pas ton problème...

    Je continue à chercher...
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  16. #16
    Membre averti Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Points : 323
    Points
    323
    Par défaut
    Question subsidiaire:

    A quoi sert la variable resultat qui d'ailleur n'est pas définie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    resultat = somme
    aurore = resultat
    Pourquoi ne pas faire directement:
    On test, on test .....
    (\ _ /)
    (='.'=)
    L'erreur est humaine. Mais pour une véritable catastrophe il faut un ordinateur
    (")-(") Lorsque votre problème est solutionné, merci de cliquer sur

  17. #17
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    Pour l'utiliser on se positionne sur une cellule on click sur Fx, on va dans fonction personnalisé et on choisi la fonction. On rempli les parametre et go.
    Une fonction appelée depuis une feuille de calcul ne peut que renvoyer une valeur à cette cellule, elle ne peut en aucun cas modifier le format d'une cellule.

    Pour ce qui concerne #Valeur, le probleme peut survenir si la feuille 2 n'existe pas ou si cette feuille n'est pas une feuille de calcul.

    Cordialement,

    Tirex28/

  18. #18
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Bon ben voilà je crois qu'on est d'accord on ne peut pas modifier un format dans une fonction.... Merci Tirex28 de confimer ce que je pensais

    J-M c'est pire que ça en fait "somme" en sert à rien pas plus que "resultat" puisqu'en fait c'est la fonction Aurore elle même...

    démonstration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        For I = 1 To 200
            test = Mid(Worksheets(2).Cells(I, 1).Value, 1, Nombre_de_chiffre)
            If test = Numero_du_compte Then
                Aurore = Aurore + Worksheets(2).Cells(I, NumColonne).Value
                Worksheets(2).Cells(I, NumColonne).Interior.Color = RGB(200, 200, 200)
                Selection.Interior.Color = RGB(200, 200, 200)
            End If
        Next I
    ça fait la même chose...
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  19. #19
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Moi aussi, et je n'ai toujours pas trouvé.

  20. #20
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par Djaiffe Voir le message
    Moi aussi, et je n'ai toujours pas trouvé.
    Je crois qu'il n'y a plus rien à trouver sur ce sujet. C'est juste infaisable de cette façon.

    Par contre si tu nous explique quel est ton objectif, alors nous pourrons peut-être envisager d'autres solutions.

    voili, voilà.
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 12
    Dernier message: 14/05/2008, 17h15
  2. changer les valeurs graphique sans passer par une cellule
    Par mennix dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/11/2007, 19h56
  3. vba recuperer la valeur et la range d'une cellule séléctionée
    Par yucf_miagiste dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/09/2007, 17h17
  4. [VBA-EXCEL] format de date lors d'écriture dans une cellule
    Par ustilago dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/02/2007, 17h44
  5. Changement de style lors du focus sur une cellule
    Par zyg dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/12/2005, 10h29

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