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 :

Problème de compilation [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Par défaut Problème de compilation
    Salut à tous,

    J'ai un petit soucis, je ne maîtrise absolument pas les macros Excel et pourtant ma demande est très simple :

    Je veux que ma macro affiche dans une case G1 "1" si la somme des cases allant de A1 à A6 est >= 5 et 0 sinon.

    Je voulais avancé a taton en mettant d'abord le résultat de A1 à A6 dans C1 ( Il me suffirait de faire dans C1 "=sum(A1:A6)" mais je voudrais tout traité par macro)
    J'ai donc essayé de créer une macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ScoreIG()
     
        If (Sum("W20:W25")) >= 5 Then
            Range("Y26").Select = Sum("W20:W25")
        End If
     
    End Sub
    Et cela me rend une erreur Erreur de Compilation : Sub ou Function non définie

    Pourriez vous m'éclairer, je pense que c'est tout bête .. mais comme c'est un outil que je ne maîtrise absolument pas ..

    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 86
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Par défaut
    Bonjour,
    Dans l'aide d'Excel on trouve l'explication. Vous n'utilisez pas WorkSheetFunction.Sum()

    --------------------------------------------------------------------------------------------
    WorksheetFunction.Sum, méthode
    Ajoute tous les nombres d'une plage de cellules.
    Syntaxe

    expression.Sum(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)

    expression Variable représentant un objet WorksheetFunction.

    Paramètres

    Nom Obligatoire/Facultatif Type de données Description
    Arg1 - Arg30 Obligatoire Variante Number1, number2, ... - 1 à 30 arguments pour lesquels vous voulez connaître la valeur totale ou le total.

    Valeur renvoyée
    Double

    Remarques


    Nombres, valeurs logiques et représentations textuelles des nombres que vous saisissez directement dans la liste des arguments pris en compte. Reportez-vous au premier et au deuxième exemples ci-dessous.
    Si un argument est un tableau de référence, seuls les nombres dans ce tableau ou cette référence sont pris en compte. Les cellules vides, les valeurs logiques ou le texte dans le tableau ou la référence sont ignorés. Reportez-vous au troisième exemple ci-dessous.
    Les arguments qui comportent des valeurs d'erreur ou du texte qui ne peuvent pas être convertis en nombres génèrent des erreurs.

  3. #3
    Membre averti
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Par défaut
    En ayant pris en compte vos remarque, le code actuel est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ScoreIG()
     
        If ((WorksheetFunction.Sum("W20:W25")) >= 5) Then
            Range("Y26").Select = WorksheetFunction.Sum("W20:W25")
        End If
     
    End Sub
    mais une erreur persiste, erreur définie par l'application ou par l'objet

    Comme vous pouvez le voir mes connaissance en Visual Basic sont vraiment limitées

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    Pourquoi ne pas mettre plutôt ceci dans la cellule y26 tout simplement surtout si ca doit être dynamique

    =SI(SOMME(W20:W25)>=5;SOMME(W20:W25);"")
    moi ce que j'en dis
    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 86
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Par défaut
    Bonjour,
    Votre code est faux essayez comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ScoreIG()
     
     If ((WorksheetFunction.Sum(Range("W20:W25"))) >= 5) Then
        Range("Y26") = WorksheetFunction.Sum(Range("W20:W25"))
     End If
     
     End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Etudiant L3 MIAGE
    Inscrit en
    Juin 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant L3 MIAGE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 36
    Par défaut
    Pourquoi ne pas écrire directement dans la cellule ?

    Simplement parce que j'ai envie de jouer avec les macros, rien de plus ! ^^

    Et merci Rjamin, ton code marche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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