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 :

Code VBA à la place d'une formule [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Code VBA à la place d'une formule
    Bonjour,

    Je suis a la recherche d'un code VBA à la place d'une formule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI($C3="";"";SI(NBVAL($C$3:$C6)=4;"1 éme table";SI(NBVAL($C$3:$C6)=8;"2 éme table";SI(NBVAL($C$3:$C6)=12;"3 éme table";SI(NBVAL($C$3:$C6)=16;"4 éme table";SI(NBVAL($C$3:$C6)=20;"5 éme table";SI(NBVAL($C$3:$C6)=24;"6 éme table";SI(NBVAL($C$3:$C6)=28;"7 éme table";SI(NBVAL($C$3:$C6)=32;"8 éme table";SI(NBVAL($C$3:$C6)=36;"9 éme table";SI(NBVAL($C$3:$C6)=40;"10 éme table";"")))))))))))
    Ayant 50 tables de belotte je me suis arrêter à la 10 éme vue la longueur de la formule.
    Peut-on remplacer cette formule par un code VBA ou avoir une formule beaucoup plus simple?

    D'avance merci à qui pourra m'aider.
    Cordialement

    Max
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Déjà je serais très étonné que dans une plage référencée $C$3:$C$6 la formule NBVAL te renvoie une valeur supérieure à 4
    Pour remplacer cette formule, je te conseille la création d'une table à 2 colonnes nommée par exemple dbTable dont la première colonne est triée par ordre croissant.
    Où tu aurais
    Colonne1|Colonne2
    0|=""
    4|Première table
    8|Deuxième table
    12|Troisième table
    16|Quatrième table
    etc ...
    La formule qui remplacera efficacement cette suite de SI est RECHERCHEV
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV(NBVAL(C3:C50);dbTable;2)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Ecrire en D3 la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOD(LIGNE();4)=3;QUOTIENT(LIGNES($C$3:C3);4)+1;"")
    Recopier vers le bas dans la colonne D.
    Sélectionner la plage D3 : D82 (ou D3 : Dn n étant la dernière ligne remplie dans la colonne D) et demander le format personnalisé :
    [=1]0" ère table";0" ème table"
    Cordialement
    Claude

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour papouclo

    Je te remercie sa marche très bien mais j'aimerais juste une petite modif si possible.
    Dans le cas ou il n'y a pas de nom dans les cellules "C" j'aimerai que rien ne s'inscrive dans la colonne "D"
    Exemple: si j'ai tiré la formule vers le bas jusque la ligne 150 et que la dernière ou il y a des noms dans la "C" s’arrête à la ligne 100 j'aimerai que rien ne s'inscrive après la ligne 100?

    D'avance merci pour ton aider.

    Cordialement
    Max

  5. #5
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Re,
    Remplacer en D3 la première formule proposée par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(OU(MOD(LIGNE();4)<3;ESTVIDE(C3));"";QUOTIENT(LIGNES($C$3:C3);4)+1)
    Cordialement
    Claude

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    Je te remercie sa fonctionne nickel.

    Bonne soirée

    Max

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

Discussions similaires

  1. [VBA] Macro qui envoie une formule dans une cellule
    Par Okoss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2007, 22h32
  2. [VBA-Excel] transposition d'une formule
    Par cedric59dk dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/01/2007, 15h28
  3. [VBA-Excel] Calcul d'une formule avec une inconnue
    Par micwiss dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/10/2006, 16h04
  4. Réponses: 2
    Dernier message: 09/06/2006, 14h38
  5. [VBA-E]copie d'une formule tant que
    Par arkazar dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/03/2006, 12h27

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