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 :

La formule appropriée


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 7
    Par défaut La formule appropriée
    J'ai obtenu ce code qui m'a permis de régler le problème qui se posait à moi. Pour adapter ce code à mes situations, je me retrouve toujours bloquer. J'avoue être un débutant en VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set Plage = Range("BM9:BM" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
      Formule = "=IF(BA9=""Déf."",IF(BB9=""Déf."",""Déf.""),sum(BA9,BB9)/2)" ' Transcription de la formule "française" au format international (perso, je préfère)
      Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
      ' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
      Plage.Copy
      Plage.PasteSpecial xlPasteValues
      Application.CutCopyMode = False
    Lorsque cette séquence s’exécute, j’obtiens dans la cellule de BM9 (soit "Déf." lorsque "Déf." se trouve dans BA9 et BB9 ; soit le total des valeurs divisé par 2 même si l’une des cellules (BA9 ou BB9 renferme "Déf."). Bon résultat recherché.

    Deux autres problèmes se posent à moi :
    1) Je me retrouve dans le cas de 3 cellules c'est-à-dire BA9, BB9 et BC9, j’ai tenté cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Formule = "=IF(BA9=""Déf."",IF(BB9=""Déf."",IF(BC=""Déf."",""Déf."")),sum(BA9,BB9,BC9)/3)" ' Transcription de la formule "française" au format international (perso, je préfère)
    Lors de l’exécution de cette formule, lorsqu’il y a "Déf." dans les trois cellules, il m’affiche "#NOM ?" dans la cellule BM9. Alors comment faire pour obtenir "Déf."

    2) Je veux obtenir la somme des valeurs de (C8 à J8) dont les moyennes de (C9 à J9) sont supérieures ou égales à 10 dans la cellule K9. Formule que je veux qu’elle s’exécute automatiquement pour les autres cellules ("K9 :K")
    J’ai donc tenté ceci qui ne donne rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set Plage = Range("K9:K" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
      Formule = "=SumIf("C9:J9", ">=10", "C8:J8")" ' Transcription de la formule "française" au format international (perso, je préfère)
      Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
      ' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
      Plage.Copy
      Plage.PasteSpecial xlPasteValues
      Application.CutCopyMode = False

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    1) tu as oublié le 9 à BC

    2) enlève les guillemets pour les plages, mais pas les conditions comme celle-ci.
    Si tu dois additionner les valeurs de la ligne 8 pour toutes les lignes, ça prend des $
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Formule = "=SumIf(C9:J9, "">=10"", $C$8:$J$8)"

  3. #3
    Membre habitué
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 7
    Par défaut Remerciement
    Bonjour chers tous,
    Je vous remercie très sincèrement de me faire avancer lentement mais surement en VBA

Discussions similaires

  1. Quel est le moyen le plus approprié pour formuler un code
    Par medreg dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2010, 18h53
  2. [Crystal] Formules ...
    Par Antichoc dans le forum Formules
    Réponses: 3
    Dernier message: 25/11/2003, 10h52
  3. évaluateur de formule mathématique
    Par lyrau dans le forum Générateurs de compilateur
    Réponses: 5
    Dernier message: 28/03/2003, 22h50
  4. [Formule] Lever et coucher du soleil
    Par psl dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/10/2002, 16h37
  5. [reseaux] Comment creer un compte user à partir d'un formul avec perl
    Par oulai_evado dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 01/10/2002, 19h54

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