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 et EXCEL et MACRO


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 31
    Points : 13
    Points
    13
    Par défaut VBA et EXCEL et MACRO
    Salut :
    Avec Excel , je veux ecrire dans la case H12 de EXCEL le resultat de la fonction
    fx = MOYENNE(G11:G54) (de EXCEL)
    mais à partir de Outils\Macro\Visual Basic Editor en utilisons une procédure simple :
    comme j'ai essayé avec:

    Sub Test()
    ActiveSheet.Range("H12").Value = MOYENNE(G11:G54)
    End Sub

    Mais ça n'a pas marché.!!??
    Quel est le code que je dois utiliser ??

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    N'oublie pas d'utiliser les balises de code, c'est quand même plus lisible...
    Sinon, pour ton problème, tu n'es pas loin. Essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub Test() 
    ActiveSheet.Range("H12").Formula = "=MOYENNE(G11:G54)" 
    End Sub

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Mais si tu veux, tu peux aussi écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.Range("H12").FormulaR1C1 = "=AVERAGE(R11C7:R54C7)"
    Mais c'est plus compliqué...

    Par contre, si tu demande la formule VBA... comme j'ai cru comprendre... Tu dis

    A+

  4. #4
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Ouskel'n'or, le dernier des Dodos vivants, oui, mais le premier qui parle anglais !!

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Salut !!?
    Message bien reçu 5/5.
    Mille merci à Megaxel et ouskel'n'or .

  6. #6
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Alors rajoute le tag "Résolu", et on sera hyper contents !

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Questions ?
    Salut
    Je viens de tester les solutions ..........
    Celui de ouskel'n'or a marché............
    Celui de Megaxel n'a pas marché.......
    C'est quoi le tag "Résolu"?
    Comment rajouter le tag "Résolu".
    Avec l'Exel et son Outils\Macro\Visual Basic Editor j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ActiveSheet.Range("H15").Formula= 
     " =DROITEREG(G11:G14;F11:F14;FAUX;VRAI)"
    Mais ça n'a pas marché
    Quel est le bon code pour que ça marche?

    Autre cas j'ai fait une boucle simple comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Dim cpt As Integer
     cpt = 10
     While cpt <> 0
     ActiveSheet.Range("H(cpt)").Value=(ActiveSheet.Range("B(cpt)").Value +
     ActiveSheet.Range("C(cpt)").Value +  
     ActiveSheet.Range("D(cpt)").Value)/3
     cpt = cpt - 1 
     Wend
    Mais ça n'a pas marché aussi
    Quel est le bon code pour que ça marche?

  8. #8
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Pour la première question: le tag résolu sert à marquer dans la page principale du forum dans lequel tu te trouves que ton problème a été résolu. Tu as un bouton en bas de ton post.
    Pour "DroiteReg", je ne sais pas trop, mais peut-être que tu devrais le dire en anglais, comme MOYENNE qui est devenu AVERAGE.
    Et enfin, c'et un problème de syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveSheet.Range("H" & cpt).Value = ...

  9. #9
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut Re: Questions ?
    Citation Envoyé par life is magic
    Salut
    Je viens de tester les solutions ..........
    Celui de ouskel'n'or a marché............
    Celui de Megaxel n'a pas marché.......
    C'est quoi le tag "Résolu"?
    Comment rajouter le tag "Résolu".
    Avec l'Exel et son Outils\Macro\Visual Basic Editor j'ai fait :

    ActiveSheet.Range("H15").Formula=
    " =DROITEREG(G11:G14;F11:F14;FAUX;VRAI)"

    Mais ça n'a pas marché
    Quel est le bon code pour que ça marche?

    Autre cas j'ai fait une boucle simple comme

    Dim cpt As Integer
    cpt = 10
    While cpt <> 0
    ActiveSheet.Range("H(cpt)").Value=(ActiveSheet.Range("B(cpt)").Value +
    ActiveSheet.Range("C(cpt)").Value +
    ActiveSheet.Range("D(cpt)").Value)/3
    cpt = cpt - 1
    Wend

    Mais ça n'a pas marché aussi
    Quel est le bon code pour que ça marche?
    Salut,

    1 : le tag résolu est tout en bas à gauche et signale que ton problème a trouvé une solution

    2 : il serait bon que tu utilises les balises pour encadrer le code que tu nous fournis, c'est plus clair comme cela.

    3 : je peux pas te donner comme cela de tête la traduction de la fonction DROITEREG : utilise l'aide contextuelle "F1"

    4 : Pour ta boucle essaie la chose suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Dim cpt As Integer
     cpt = 10
     While cpt <> 0
        ActiveSheet.Range("H" & Cstr(cpt)).Value=(ActiveSheet.Range("B" & Cstr(cpt)).Value + _
            ActiveSheet.Range("C" & Cstr(cpt)).Value +  _
            ActiveSheet.Range("D" & Cstr(cpt)).Value)/3
        cpt = cpt - 1 
     Wend
    Bonne continuation

    Théo
    Forums VB : lire la notice
    La touche existe pour être utilisée
    Pensez au tag
    Pour ceux n'ayant pas l'aide installée :
    - Aide MSDN pour VB6
    - Aide MSDN pour VBA
    Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.

  10. #10
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Questions
    Salut moi c'est :
    Mille merci pour vos aides précis et précieux.......
    Les dernieres solutions proposées ont bien marché............
    J'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub test()
     
    ActiveSheet.Range("H15").Formula =
     "=DROITEREG(G11:G14;F11:F14;FAUX;VRAIE)"
     
    End sub
    Mais ça n'a pas marché
    ( "Peut être la syntaxe en Anglais est bon!!!!?? Mais je ne le sais pas")

    Donnez une petite Sub test() comme j'ai fait dans les balises de code en
    haut.

    MERCI.

  11. #11
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    You can try
    Faithfully Yours,
    Megaxel

    (qui parle moins bien anglais que le Dodo du Nord, mais qui se débrouille un petit peu quand même...)

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    pour aller dans le sens de la solution de Megaxel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("H15").Formula = "=LINEST(G11:G14,F11:F14,FALSE,TRUE)"

    bonne journée
    michel

  13. #13
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Yes, you're parfaitement right. English for "VRAI" is "TRUE", and FALSE for "FAUX".

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Comme je reprends en route et quye je ne sais plus où vous en êtes, je ferai remarquer que si...
    ActiveSheet.Range("H15").Formula=
    " =DROITEREG(G11:G14;F11:F14;FAUX;VRAI)"
    ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Range("H15").FormulaLocal= 
     " =DROITEREG(G11:G14;F11:F14;FAUX;VRAI)"
    marche.

    Faut juste dire qu'elle est locale... la formula...

    A+

    C'était un message à MémoiLeSel

  15. #15
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 31
    Points : 13
    Points
    13
    Par défaut BONNE REPONSE
    Ouf enfin mon projet est bien fini !!!!!
    Mille merci à tous comme je vous l'ai déjà dis vos aides sont toujours très précis et térriblement efficace.
    De plus avec Megaxel on s'amuse bien........et on aime ça.....
    Cette fois ci Silkyroad et Theocourant ont trouvé la bonne réponse........
    La solution proposée par ouskel'n'or n'a pas marché .......
    Enfin je peut rajouter le tag résolu.
    Merci à tous
    A+

  16. #16
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Ok, j'ai compris, je vais aller m'acheter un bonnet avec des grelots, et un costume rouge, vert et jaune, et un paquet de Carambars pour faire une provision de blagues...
    Et si je ne fais pas rire, je deviendrai prof d'anglais.


  17. #17
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    rebonjour

    la solution d'Ouskel'n'or fonctionne chez moi (testé avec Excel2002 )

    j'ai juste supprimé l'espace entre la guillemet et le 2eme signe égal


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Range("H15").FormulaLocal = _
    "=DROITEREG(G11:G14;F11:F14;FAUX;VRAI)"

    bonne soiree
    michel

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

Discussions similaires

  1. [VBA][Excel]Exécution macro avec fichiers source
    Par ouezon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/12/2005, 00h00
  2. Réaliser une macro en VBA pour excel afin de créer un graphe
    Par xavier le breuil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 14h41
  3. Probleme d'enregistrement sur Macro/VBA de Excel
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 17h23
  4. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 10h51
  5. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15

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