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 :

[E-03] automatiser la fonction "=si(estnum(x);x;y)"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 71
    Par défaut [E-03] automatiser la fonction "=si(estnum(x);x;y)"
    Bonjour,
    manipulant dans le cadre de mon travail beaucoup de tableaux sous E-03, j'utilise souvent la fonction "=si(estnum(x);x;y).
    Concrètement je voudrais pouvoir faire une macro qui change les formule des cellules sélectionnées pour y ajouter ce fameux si(estnum(...
    ex : dans une plage de cellules données, supposons A1:B1, j'ai les formules suivantes :
    en A1 : "=C2/D2"
    en B1 : "=E4/F4"
    la macro devrait me donner :
    en A1 : "=si(estnum(C2/D2);C2/D2;0)" (ex : je mets 0 par défaut)
    en B1 : "=si(estnum(E4/F4);E4/F4;0)"

    j'avais pensé à une macro de la forme "for each cel in selection..."
    mais mes tentatives ne donnent rien.
    Merci d'avance pour votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut kokoVBA et le forum
    N'ayant pas plus de précision, je ne peux pas définir le choix des cellules à modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim cel As Range
    For Each cel In Range([A1], Range("B" & Rows.Count).End(xlUp))
        If Not IsEmpty(cel) Then
            cel.FormulaLocal = "=si(estnum(" & Right(cel.FormulaLocal, Len(cel.FormulaLocal) - 1) & ");" & _
                Right(cel.FormulaLocal, Len(cel.FormulaLocal) - 1) & ";0)"
        End If
    Next cel
    End Sub
    C'est pour la plage A1 à dernière cellule de B. Testes
    A+
    Nota : à mon sens, esterr() serait plus approprié

  3. #3
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 71
    Par défaut
    Bonjour Gorfael,
    et 1000 merci pour ta réponse à la fois rapide et précise.
    Mon problème est résolu et je vais grâce à toi gagner de précieuses heures de travail. Voici en définitive le code employé, j'ai changé le début "in range..." par "in selection" comme ça je selectionne la plage de cellules que je veux modifier et je fais tourner le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub siestnum()
     
    Dim cel As Range
    For Each cel In Selection
        If Not IsEmpty(cel) Then
            cel.FormulaLocal = "=si(estnum(" & Right(cel.FormulaLocal, Len(cel.FormulaLocal) - 1) & ");" & _
                Right(cel.FormulaLocal, Len(cel.FormulaLocal) - 1) & ";0)"
        End If
    Next cel
    End Sub
    Encore merci!

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

Discussions similaires

  1. [PHP 5.0] PHP et simpleXML, automatiser les fonctions
    Par cinhic dans le forum Langage
    Réponses: 0
    Dernier message: 21/06/2010, 17h12
  2. [AJAX] Automatiser lancement fonction en php
    Par Korben_Debile dans le forum AJAX
    Réponses: 1
    Dernier message: 01/06/2010, 00h11
  3. Automatiser une fonction en php
    Par Gwendolyne dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/06/2008, 20h05
  4. comment automatiser la fonction rechercher/remplacer ?
    Par tristan_sauvage dans le forum Access
    Réponses: 4
    Dernier message: 28/12/2006, 17h05
  5. Automatiser la fonction export dans outlook
    Par sev54 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 03/02/2005, 14h49

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