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 :

Aide Appliquer une formule a une plage


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut Aide Appliquer une formule a une plage
    Voila mon code fonctionne mais je voulais savoir si une methode sans boucle avec la propriete du range , permetait par exemple d'appliquer la fonction abs a une colonne ou une ligne

    je met mon code pour donner le principe. Je veux que dans mon range , vba applique la fonction abs sur chaque cellule pour ensuite les ranger.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    'TEN LARGEST NOMINAL POSITIONS
     
    Set AllRange = Range("A1:c82")
    For Each MyRange In AllRange.Columns(3).Cells
    MyRange.Value = Abs(MyRange)
    Next MyRange
    AllRange.Sort Key1:=AllRange.Columns(2), order1:=xlAscending
     
    End Sub
    Allez le RC LEns

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    une piste avec une colonne intermédiaire

    je te laisse bricoler, y'a sûrement moyen de faire ça directement sur la cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set plage = Range(Cells(1, 1), Cells(10, 1))
    plage.Offset(0, 1).FormulaArray = "=ABS(" & plage.Address & ")"
    plage.Offset(0, 1).Value = plage.Offset(0, 1).Value

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set plage = Range(Cells(1, 1), Cells(10, 1))
    plage.Offset(0, 1).FormulaArray = "=ABS(" & plage.Address & ")"
    plage.Offset(0, 1).Value = plage.Offset(0, 1).Value
    Peux tu me dire pourquoi un FormulaArray ? , apparement c'est pour les formule matricielle, ce n'est pas vraiment le cas si?
    Allez le RC LEns

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    essaye à la main :

    mets des chiffres négatifs de A1 à A10
    en B1, met la formule matricielle =ABS(A1:A10)
    étend la formule jusque B10

    regarde le résultat


    c'est la seule méthode que j'ai trouvé pour renvoyer la valeur absolue de toute une plage, sans utiliser de boucle

    mais je ne doute pas qu'une proposition plus élégante sera trouvée ... je n'ai pas voulu passer par un Array qui aurait probablement nécessité une boucle

  5. #5
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set plage = Range(Cells(1, 1), Cells(10, 1))
    plage.Offset(0, 1).FormulaArray = "=ABS(" & plage.Address & ")"
    plage.Offset(0, 1).Value = plage.Offset(0, 1).Value
    Effectivement la fonction est pas mal je pense pas qu'il y ai d'autre solutions en fait donc je clos la conversation et encore une fois merci pour ton aide , tu m'es d'une grande aide et c'est pas la premiere fois.
    Allez le RC LEns

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

Discussions similaires

  1. [Toutes versions] Imbriquer une formule dans une formule à l'aide de l'outil Insertion de fonction
    Par Philippe Tulliez dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/08/2014, 11h21
  2. [XL-2007] Savoir si une cellule est une formule ou une valeur
    Par Syvolc dans le forum Excel
    Réponses: 3
    Dernier message: 23/06/2014, 14h50
  3. [XL-2010] Formule : attribuer une formule dans une cellule
    Par popi33370 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2014, 18h06
  4. Réponses: 3
    Dernier message: 06/03/2013, 13h00
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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