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 :

étendre une formule à toute la colonne.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Par défaut étendre une formule à toute la colonne.
    Bonjour voila j'ai ce problème. Je dois étendre ma formule à tout les cellules de la colonne mais le soucis c'est que ma colonne est variable.
    J'ai essayé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     i = Range("A1").End(xlUp).Select
        Range("U2").FormulaLocal = "=NB.SI(A:A;A2)>1"
        Selection.AutoFill Destination:=Range("U2:U" & i), Type:=xlFillDefault
    Mais excel me retourne l'erreur suivante :

    La méthode Range de l'objet _Global a échoué.

    j'ai vraiment besoin d'une solution svp.

    Merci d'avance pour vos réponses.

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Attention aux selects ajoutés avec l'editeur de macro, je pense que ton code comme ça doit fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    i = Range("A1").End(xlUp)  '==> pas besoin de selectionner la cellule ici
    Range("U2").FormulaLocal = "=NB.SI(A:A;A2)>1"
    Range("U2").AutoFill Destination:=Range("U2:U" & i), Type:=xlFillDefault
    Voilà, tu dis.

  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
    Par défaut
    C'est vrai, on a souvent tendance à se compliquer la vie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        i = Range("A" & Rows.Count).End(xlUp).Row
        Range("U2").FormulaLocal = "=NB.SI(A:A;A2)>1"
        Range("U2").copy Range("U2:U" & i)
    Edit
    J'ai regardé la formule et il serait intéressant que tu précises ce que tu veux obtenir : Veux-tu que la cellule comparée soit toujours A2 ou veux-tu que ce soit A2 puis A3 puis A4 ?
    Telle quelle, le code correspond à la seconde proposition.
    Pour une comparaison systématique avec A2, corrige comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range("U2").FormulaLocal = "=NB.SI(A:A;A$2)>1"

  4. #4
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Par défaut
    Merci pour vos réponses aalex et oukselnor.

    aalex38 il y avait une erreur que tu n'avais pas repérée dans mon code, dans la variable i je cherchais la derniere cellule non vide de la colonne A alors qu'il fallait chercher celle de la colonne U. Mais meme avec ca le code ne marchait pas j'avait déjà essayé ce que tu m'avais suggéré.
    Par contre ton code est impeccable oukselnor le premier me permet exactement de faire ce que je souhaite c a dire comparer chaque cellule de la colonne U avec chacune donc le premier code.
    Merci encore a vous c'est super gentil.
    Franchement c'est génial l'entraide en plus des reponses aussi rapides merci les gars.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        i = Range("A" & Rows.Count).End(xlUp).Row
        Range("U2").FormulaLocal = "=NB.SI(A:A;A2)>1"
        Range("U2").copy Range("U2:U" & i)
    Par contre j'ai un autre soucis sur ce code lorsque je réinsère le meme code en changant seulement la formule il me met l'erreur une erreur de compilation : attendue : fin d'instruction.
    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        j = Range("A" & Rows.Count).End(xlUp).Row
        Range("V2").FormulaLocal = "=SI(A2=A3;"SUPPR";"")"
        Range("V2").Copy Range("V2:V" & j)
    Encore merci d'avance pour vos réponses.

  5. #5
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        j = Range("A" & Rows.Count).End(xlUp).Row
        Range("V2").FormulaLocal = "=SI(A2=A3;""SUPPR"";"""")"
        Range("V2").Copy Range("V2:V" & j)

  6. #6
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Par défaut
    Merci c super exactement ce que je voulais super forum encore merci.

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

Discussions similaires

  1. Impossible d'étendre une formule
    Par _guillom dans le forum Excel
    Réponses: 2
    Dernier message: 12/12/2012, 17h45
  2. [XL-2007] Étendre une formule à l'aide de VBA sur une plage variable
    Par cyril7751 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/07/2012, 16h23
  3. [XL-2003] Appliquer une formule à toutes les lignes d'une colonne sans en connaitre le nombre à l'avance
    Par Chevrefeuille dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/04/2010, 14h43
  4. [XL-2003] Décaler la source d'une formule de plusieurs colonnes
    Par tranzebou dans le forum Excel
    Réponses: 3
    Dernier message: 18/08/2009, 15h48
  5. Réponses: 1
    Dernier message: 16/05/2007, 15h52

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