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 :

Dupliquer des formules d'une feuille vers les autres feuilles du classeur [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut Dupliquer des formules d'une feuille vers les autres feuilles du classeur
    Salut le forum

    J'ai un classeur contenant plusieurs feuilles.
    Sur chaque feuille, il y'a un tableau et les tableaux ont la même structure.
    A partir des formules de la première feuille, je souhaite dupliquer les même formules sur les autres feuilles de mon classeur.
    Les cellules contenant les formules doivent être coller sur les même cellules des autres feuillles.
    Voici les dites cellules contenant les formules à copier à partir de la feuille "ESSAI" et à coller sur les meme cellules des autres feuilles de mon classeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    D16:D18;D25:D26;D29:D30;D35:D40
    H16:H18;H25:H26;H29:H30;H35:H40
    Je reste à votre disposition pour des compléments d'informations

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Bonjour,

    Si j'ai bien compris, ceci devrait faire l'affaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub CopieFormules()
        Dim I As Long
        Dim arrCellules As Variant
        Dim Feuille As Worksheet
     
        'Plage des cellules à copier
        arrCellules = Array("D16:D18", "D25:D26", "D29:D30", "D35:D40", "H16:H18", "H25:H26", "H29:H30", "H35:H40")
     
        For Each Feuille In Worksheets
            If Feuille.Name <> "ESSAI" Then
                For I = 0 To UBound(arrCellules)
                    Sheets("ESSAI").Range(arrCellules(I)).Copy Feuille.Range(arrCellules(I))
                Next
            End If
        Next
    End Sub

  3. #3
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Bonjour Parmi

    Merci pour votre contribution considérable.
    Je l'ai testé et j'ai rencontré quelque difficultés:
    - le résultat dans les cellules de destination donne 0 partout ce qui n'est pas normal.
    - Aussi lorsque je fais la différence des cellules de destination (D-C), le résultat donne 0 également.
    Pouvez-vous intégrer ce dernier paramètre et revoir pour que les formules fonctionnent bien.
    Voici le nouveau critère à intégrer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "D16-C16", "D17-C17", "D18-C18", "D18-C18", "D25-C25", "D26-C26", "D29-C29", "D30-C30", "D35-C35", "D36-C36", "D37-C37", "D38-C38", "D39-C39", "D40-C40"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "H16-G16", "H17-G17", "H18-G18", "H18-G18", "H25-G25", "H26-G26", "H29-G29", "H30-G30", "H35-G35", "H36-G36", "H37-G37", "H38-G38", "H39-G39", "H40-G40"
    Encore merci pour votre aide

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Peut-être que j'ai mal saisi...(?)
    Dans ton premier message, tu mets des adresses de plage (D16:D18;D25:D26;D29:D30;D35:D40)
    J'ai donc copié les formules (que je ne connais pas) de ces plages
    Si le résultat donne 0, ça peut dépendre de ces formules, donc peux-tu donner un exemple de formule que tu utilises ?

    Dans ton deuxième message, tu mets une formule Dx-Cx (pour valider ?)
    C'est normal que la soustraction donne 0 si les 2 cellules sont à 0...
    Je ne vois pas ce que tu veux faire avec ces formules. Où veux-tu les mettre ?

  5. #5
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Merci pour votre retour.
    Ci-desous un exemple de formule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (SOMMEPROD((STOCK_INTIAL_FINAL!H5:H212="01001")*(STOCK_INTIAL_FINAL!I5:I212={"251170"."251171"."251172"."251174"."251175"."251195"})*(SUBSTITUE(STOCK_INTIAL_FINAL!K5:K212;" ";"")*1))-SOMMEPROD((STOCK_INTIAL_FINAL!A5:A212="01001")*(STOCK_INTIAL_FINAL!B5:B212={"251170"."251171"."251172"."251174"."251175"."251195"})*(SUBSTITUE(STOCK_INTIAL_FINAL!D5:D212;" ";"")*1)))/1000000
    Dans ton deuxième message, tu mets une formule Dx-Cx (pour valider ?)
    Oui c'est bien cela.Le résultat est à placer dans les cellules de la colonne E correspondantes.
    Je ne vois pas ce que tu veux faire avec ces formules
    Je supervise 29 agences dont les données se trouvent dans 29 feuilles.
    A partir des données brutes de chaque agence contenues sur la feuille STOCK_INITIAL_FINAL que le service informatique m'envoie,les formules devront me permettre de répartir les données automatiquement par agence.
    N.B:j'ai omis de preciser qu'il y'a trois (3) feuilles ou la collage ne devrait pas se réaliser.
    Il s'agit des feuilles "ESSAI", "KOTE", AGENCE"

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Lorsque tu roules la macro que je t'ai mise, à quoi ressemble les formules qui ont été copiées ?
    Il doit y avoir une raison pour qu'eles retournent 0...

  7. #7
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Bonjour Parmi

    Afin que je puisse vous donner les réponses souhaitées, j'aimerai que vous intégrer cette condition dans votre code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Feuille.Name <> "ESSAI" Then
    Je disais dans le post précédent qu'il y'a trois feuille ou il ne devrait pas y avoir de collage(duplication) de formule.
    En plus de la feuille "ESSAI", il y'a la feuille "KOTE" et AGENCE".
    J'attend votre retour pour mieux tester.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Feuille.Name <> "ESSAI" and Feuille.Name <> "KOTE" and Feuille.Name <> "AGENCE" Then

  9. #9
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Salut Parmi

    Je viens de tester et les résultats sont concluant.
    Il reste à intégrer le dernier critère que j'ai demandé.D16-C16 signifie soustraction de D16 et C16. Il en est de même pour les autres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "D16-C16", "D17-C17", "D18-C18", "D18-C18", "D25-C25", "D26-C26", "D29-C29", "D30-C30", "D35-C35", "D36-C36", "D37-C37", "D38-C38", "D39-C39", "D40-C40"
    "H16-G16", "H17-G17", "H18-G18", "H18-G18", "H25-G25", "H26-G26", "H29-G29", "H30-G30", "H35-G35", "H36-G36", "H37-G37"
    Merci de voir ce qui est faisable

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Tu pourrais essayer comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub CopieFormules()
        Dim I As Long
        Dim arrCellules As Variant, arrFormules As Variant
        Dim Feuille As Worksheet
     
        'Plage des cellules à copier
        arrCellules = Array("D16:D18", "D25:D26", "D29:D30", "D35:D40", "H16:H18", "H25:H26", "H29:H30", "H35:H40")
     
        For Each Feuille In Worksheets
            If Feuille.Name <> "ESSAI" Then
                For I = 0 To UBound(arrCellules)
                    Sheets("ESSAI").Range(arrCellules(I)).Copy Feuille.Range(arrCellules(I))
                Next
                Feuille.Range("E16:E40").Formula = "=IF(D16<>"""",D16-C16,"""")"
                Feuille.Range("I16:I40").Formula = "=IF(H16<>"""",H16-G16,"""")"
            End If
        Next
    End Sub

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/01/2015, 14h39
  2. Réponses: 3
    Dernier message: 04/02/2014, 19h11
  3. Modification des types d'une table vers un autre
    Par BILLANT dans le forum Développement
    Réponses: 5
    Dernier message: 16/06/2010, 12h41
  4. Recopier des données d'une plage vers l'autre, problèmes rencontrés?
    Par nath-0-0 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/06/2010, 15h59
  5. memoriser une colonne de cellule d'une feuille sur les autres feuilles
    Par iturria64 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/12/2007, 01h33

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