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 :

VBA: problème format cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut VBA: problème format cellule
    Bonjour,

    J'ai un petit problème sous vba.
    J'utilise un sommeprod sous vba et renvoi le résultat sous excel.

    Mais j'ai un problème de #valeur? sur ma réponse.
    Après plusieurs tests, je me suis rendu compte que cela provenai du format d'une cellule.

    En fait, je compare un chiffre entré manuellement et un chiffre obtenu grâce à une formule.

    Je pense que cela doit être cause de la synthaxe de mon code sous vba avec les guillements mais je n'y arrive pas.

    Voici le code:

    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
    Sub calcul_2()
    '
    ' calcul_2 Macro
    '
    Dim r&
    Dim ShA As Worksheet
    Set ShA = ActiveWorkbook.Sheets("A")
    Dim ShB As Worksheet
    Set ShB = ActiveWorkbook.Sheets("B")
    Dim cpte As Range
    Dim montant As Range
     
     
    ShA.Activate
     
    With ShA
    r = ShA.Cells(100, 1).End(1).Row
     
    Set cpte = ShA.Range(Cells(1, 1), Cells(r, 1))
    Set montant = ShA.Range(Cells(1, 2), Cells(r, 2))
     
     
    ShB.Cells(3, 2) = Application.Evaluate("SUMPRODUCT((cpte= " & ShB.Cells(3, 1) & " )*(montant))")
     
    End With
    '
    End Sub
    Merci d'avance.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Déjà en mettant Set tu implémente la réponse comme un Objet.
    Puis tu ne déclare pas tes variables.
    Enlève les Set et déclare tes variables en fonction de ce qu'elle doivent contenir.
    A+
    EDIT: En fait je n'avais pas bien évaluer ta fonction, mais je verais plutôt..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShB.Cells(3, 2) = Application.Evaluate("SUMPRODUCT((cpte= " & ShB.Cells(3, 1) & " )*(" & montant & "))"")
    Et probablement des double guillements ??

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut
    Non cela ne marche toujours pas.

    Le problème selon moi, vient en fait du tableau où se trouvent les valeurs.

    En effet, en faisant la meme formule sous excel (sommeproduct), j'obtient aussi le résultat #valeur! .

    J'ai donc modifié le format de mon tableau pour que celui ci apparaisse sous forme numérique.
    La formule excel fonctionne alors normalement, mais la macro m'indique toujours #valeur! .

    Il y a t-il une manip à faire sous vba identique à cette dernière??

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    oui, tu peu le modifier, mais tu ne dis pas quel valeur tu a passer en nombre ? alors supposon que c'est ShB.Cells(3, 1), tu met alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A = Val(ShB.Cells(3, 1))
    mais si c'est avec des virgule faut encore un peu compliquer..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A = val(Replace(ShB.Cells(3, 1),",","."))
    Ca remplace la virgule par le point et ça transforme alors en nombre.
    Eh oui, les joies du VBA en excel c'est par exemple 3,25 mais en VBA ça DOIT être 3.25
    A+

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut
    Après plusieurs recherche j'ai trouvé d'où le problème vient mais là je bloque.

    Explications:
    Le problème vient de la zone "montant".
    En prenant en compte cette zone, le résultat affiche #valeur! .
    Cependant, j'ai couper/coller les données présente dans cette zone pour les mettre ds une autre colonne et là ca fonctionne.

    J'ai également essayé avec une colonne neutre, ca fonctionne également.
    J'ai donc couper/coller les valeurs de la colonne neutre donc la zone "montant". Et là ca ne fonctionne toujours pas.

    En résumé, la macro fonctionne avec toutes les colonnes sauf la zone "montant" !!!!!

    Les colonnes sont de format identique, les données sont identique mais la colonne avec la zone montant "bug".

    Je ne sais pas comment résoudre le problème...j'ai essayé les changements de format, réduction/ augmentation de la zone "montant" mais rien y fait...


    Donc si vous avez une idée, je suis preneur...

  6. #6
    Membre émérite
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Par défaut
    Bonjour,

    Ma remarque ne servira peut-être à rien mais, existe-t-il dans ta zone montant, une cellule considérée comme (ou contenant) du texte (par exemple l'entête ?)
    Si c'est le cas exclu-la de ta plage (et ajuste les autres plages en conséquence).

Discussions similaires

  1. [XL-2007] Formulaire VBA problème avec cellules contenant des dates
    Par Sudeki dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/10/2013, 12h54
  2. Multiplication en VBA + problème format
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2008, 11h46
  3. [VBA-E] Format cellule
    Par peon3 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/02/2006, 18h35
  4. [VBA] problème choix de cellule dans feuille excel
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/02/2006, 10h48
  5. [VBA] Problème récup texte d'une cellule dans un tableau
    Par Marco le Pouillot dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/01/2006, 17h06

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