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 :

Choisir sur quelle feuille exécute l'AutoFill


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 21
    Par défaut Choisir sur quelle feuille exécute l'AutoFill
    Bonjour,

    Mon problème est que je voudrais que l'autofill s'exécute sur la feuil1 car dans mon fichier j'ai 2 feuilles Excel.

    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ActiveCell.FormulaR1C1 = "=(RC[-1]/(COUNTA(R8C10:R14C10)))"
     
    Dim DernLigne As Long
     
    DernLigne = Sheets("Feuil1").Range("K" & Rows.Count).End(xlUp).Row
    Range("L8").AutoFill Destination:=Range("L8:L" & DernLigne)
     
    End Sub

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonsoir
    si ça fonctionne sur ton feuille et non pas sur la feuille 1 essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ActiveCell.FormulaR1C1 = "=(RC[-1]/(COUNTA(R8C10:R14C10)))"
     
    Dim DernLigne As Long
     
    DernLigne = Sheets("Feuil1").Range("K" & Rows.Count).End(xlUp).Row
     Sheets("Feuil1").Range("L8").AutoFill Destination:=Range("L8:L" & DernLigne)
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 21
    Par défaut
    Quand je vais ça il y a un message d'erreur qui dit
    Erreur 1004 La méthode 'Range' de l'objet'_Global' a échoué

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    peux tu joindre un fichier exemple avec qq ligne de données fictives et explique davantage ce que tu cherches à faire stp

  5. #5
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 21
    Par défaut
    oui voici le fichier Excel la macro c'est Test au module 1
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Sans rappeler le rattachement nécessaire, voire obligatoire, des objets, je me permets d'insister.
    Si une formule doit affecter plusieurs cellules, alors cette action peut s'exécuter simultanément.
    Il n'est donc pas besoin d'utiliser la méthode - lourde - Autofill.

    Quant à la formulation, mieux vaut utiliser Formulalocal.

    Voir le 2ème code du post #10 de cette discussion.

    C'est juste mon avis.

  7. #7
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    le code doit s'exécuter sur la feuille 2 non ?

    si c'est le cas (y a une erreur dans ta formule ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    With Sheets("Feuil2")
     .Activate
     .Range("G5").Select
     ActiveCell.FormulaR1C1 = "=((NUMBERVALUE(RC[-2]))*10)+(RC[-1]*10000)"
     .Range("G5").Select
     Selection.AutoFill Destination:=Range("G5:G25"), Type:=xlFillDefault
     .Range("G5:G25").Select
     .Range("G26").Select
     ActiveCell.FormulaR1C1 = "=(SUM(R[-21]C:R[-1]C))+(SUM(R[-21]C:R[-1]C)/10)"
     Selection.NumberFormat = "0.00"
     
      End With

  8. #8
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 21
    Par défaut
    Oui une partie du code doit s"exécute sur la Feuil2 mais la derniere partie du code sur la Feuil1 car les infos que j'affiche j'ai besoin de les voir a la Feuil1 dans la colonne L

  9. #9
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    pour la partie du code qui concerne la feuil1 comme indiqué ci haut utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with sheets("feuil1")
        .
        .
        .traitement
        ...
    end with
    sans oublier de mettre un point devant le range et/ou cells (exemple : .range("A" & i) ou bien .cells(i,1) quand vous êtes encore entre le with et le end with.

  10. #10
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 21
    Par défaut
    Voila mon code ça fonctionne comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ActiveWorkbook.Sheets("Feuil1").Select
     
    Range("L8").Select
     ActiveCell.FormulaR1C1 = "=(RC[-1]/(COUNTA(R8C10:R20C10)))"
     
    Dim DernLigne As Long
     
    DernLigne = Sheets("Feuil1").Range("K" & Rows.Count).End(xlUp).Row
    Range("L8").Select
    Selection.AutoFill Destination:=Range("L8:L" & DernLigne)

  11. #11
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Sans les select et sans l'autofill

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
     
    With Worksheets("Feuil1")
        .Range("L8:L" & .Cells(.Rows.Count, 11).End(xlUp).Row).FormulaR1C1 = "=(RC[-1]/(COUNTA(R8C10:R20C10)))"
    End With
    End Sub

  12. #12
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut mercatog,

    C'est ce que j'ai écrit plus haut.
    A cette différence près, je préfère Formulalocal.
    Cette propriété offre, à mon avis, plus de lisibilité.

  13. #13
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour Marcel

    Oui effectivement j'avais vu. Mais comme l’intéressé n'a probablement pas pu s'en sortir, je me suis permis de l'écrire clairement au cas où.

  14. #14
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Aucun problème, tu penses bien.

    Je voulais juste attirer l'attention sur la priorité donnée à Formulalocal.
    C'est l'enregistreur de macro qui orientent, pour la plupart, nos amis vers FormulaR1C1.
    Et ce, à mon sens, à tort.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/06/2016, 11h56
  2. Réponses: 1
    Dernier message: 02/06/2010, 11h44
  3. Réponses: 10
    Dernier message: 27/11/2008, 17h36
  4. [Vba-Excel] Exécuter une requete SQL sur une feuille de donnée
    Par Spacy_green dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2006, 10h27

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