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 :

copier/incrémenter les feuilles d'Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut copier/incrémenter les feuilles d'Excel
    Bonjour à tous,
    Voilà mon problème. J'ai 12 feuilles une par mois (nommées janvier, février, etc..)
    Sur celle de janvier j'ai en A12 un nombre x
    J'aimerai en une seule opération (macro) copier cette cellule (A12) sur les autres feuilles (au même endroit) mais
    - sur la feuille de février il y a [=janvier!A12]
    - sur la feuille de mars il y a [=février!A12]
    - etc...

    Penses-vous que se soit possible ?
    Quelqu'un peux m'aider ?

    Merci à tous
    A bientôt
    Robby

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut Cycliste (Dirt , MTB, ou route ?)

    je ne comprends pas du tout ta question car si tu as ceci
    - sur la feuille de février il y a [=janvier!A12]
    - sur la feuille de mars il y a [=février!A12]
    ....
    Il me semble que ton problème est déja résolu.

    De plus, en lisant cela, tu pourrais de février à décembre avoir = [=janvier!A12]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut
    Hello Godzestla

    Route, route, bien sûr... je suis un vieux motard resté aux années 70

    Alors je m'explique mieux.
    J'ai 12 feuilles vides une par mois.
    sur la 1ère en A12 il y a un chiffre (par exemple 51)
    (les autres feuilles sont vides)
    J'aimerai d'un click copier ce chiffre 51 sur les autres feuilles (toujours dans la cellule A12 de feuilles respectives).

    Actuellement je fais ceci :
    Je vais sur la 2ème feuille (février) et je tape dans la cellule A12 : =janvier!A12 (la copie se fait)

    Puis je vais sur la feuille de mars et je tape dans la cellule A12 : =février!A12

    Et ainsi de suite jusqu'au mois de décembre et dans cette feuille j'aurai en A12 ceci : =novembre!A12

    Ainsi dans chaque nouvelle feuille il-y-a la formule avec le nom de la feuille du mois précédent (sauf la première).

    Bien évidemment il n'y a pas que ce calcul dans la feuille, ce n'est qu'une partie du problème. Mais cette tâche est assez fastidieuse et j'aimerai la faire de façon automatique (si c'est possible).

    Qu'en penses-tu ?
    Merci beaucoup
    Robby

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Si manuellement, je clique sur l'onglet 1, que je maintiens Shift enfoncé, et que je cliques sur l'onglet 10 (je sélectionne les 10 feuilles quoi). Quand je rentre une donnée et un format dans une case de l'onglet1, elle est répercutée dans les 9 autres...

    en vba idem, en employant la méthode FillAcrossSheets (cf l'aide VBA)

    un exemple perso plus lourd que l'aide, mais qui me permet d'indexer un nom autre que Feuil, tu peux tester avec "mois" en portant la chose à 12..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MultiCopie()
    Dim I As Byte
    Dim tabpass(10) As Variant
    Dim tabpass2 As Variant
     
    For I = 1 To 10
            tabpass(I) = "Feuil" & I
    Next I
    tabpass2 = Array(tabpass(1), tabpass(2), tabpass(3), tabpass(4), tabpass(5), tabpass(6), tabpass(7), tabpass(8), tabpass(9), tabpass(10))
    Sheets(tabpass2).FillAcrossSheets Worksheets("Feuil1").Range("B4")
     
    End Sub
    note : attention à bien inclure la feuille où est la donnée de base dans la collection cf l'aide

    cordialement,

    Didier

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut
    Citation Envoyé par Ormonth Voir le message
    Bonjour,

    Si manuellement, je clique sur l'onglet 1, que je maintiens Shift enfoncé, et que je cliques sur l'onglet 10 (je sélectionne les 10 feuilles quoi). Quand je rentre une donnée et un format dans une case de l'onglet1, elle est répercutée dans les 9 autres...
    Hello Didier
    Tu as raison, mais en sélectionnant toutes les feuilles les données sont répercutés sans aucun changement (dans mon cas j'aurais 11 fois la formule =janvier!A12) alors que moi j'aimerai avoir janvier!A12, février!A12, mars!A12, avril!A12,...

    J'ai essayé ton code mais il me donne un message d'erreur "impossible d'afficher les symboles du plan..."
    Quoi faire ?
    Cordialement
    Robby

  6. #6
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    ne poursuivons pas su le code, car comme indiqué si tu as lu l'aide vba, tu as vu qu'il fait la même chose que la méthode manuelle....

    Sinon, sauf pb de notre part, ta question tourne en rond, si tu met sur une feuille un formule qui dit que la valeur d'une case est la même que cette case de la feuille précédente... tu arrives bien au résultat qu'on te donne !

    Sauf si ton problème n'est pas celui que tu exposes, auquel cas, poses la bonne question

    cordialement,

    Didier

  7. #7
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour le fil c est pas un truc dans ce genre que tu veux faire avoir les formules
    decallees je vois pas bien le but!!!

    Option Explicit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1()
    Application.ScreenUpdating = False
    Sheets("février").Select: [a12]: ActiveCell.FormulaR1C1 = "=janvier!RC"
    Sheets("mars").Select: [a12]: ActiveCell.FormulaR1C1 = "=février!RC"
    Sheets("avril").Select: [a12]: ActiveCell.FormulaR1C1 = "=mars!RC"
    'ect....
    Sheets("janvier").Select
    Application.ScreenUpdating = True
    End Sub

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut
    Bonjour Laetitia,

    C'est tout à fait ça !

    Je ne savais plus comment reformuler mon problème....

    Seulement que chez moi la retranscription des données de la cellule A12 de janvier se retrouve sur la feuille de février en C37 ou dans une cellule différente (à chaque exécution de la macro) alors qu'elle devrait rester toujours dans la même colonne et ligne (dans mon cas A12).
    Ce phénomène se retrouve aussi sur les autres feuilles.
    Est-il possible de bloquer la cellule source et les cellules de destination ?

    Merci beaucoup

    Cordialement
    Robby

  9. #9
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    rebonjour le fil si je comprends !!!

    peut etre en rajoutant activate . la macro est brute a simplifier par une boucle

    Option Explicit
    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 Macro1()
    Application.ScreenUpdating = False
    Sheets("février").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=janvier!RC"
    Sheets("mars").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=février!RC"
    Sheets("avril").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=mars!RC"
    Sheets("mai").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=avril!RC"
    Sheets("juin").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=mai!RC"
    Sheets("juillet").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=juin!RC"
    Sheets("août").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=juillet!RC"
    Sheets("septembre").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=août!RC"
    Sheets("octobre").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=septembre!RC"
    Sheets("novembre").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=octobre!RC"
    Sheets("décembre").Select: [a12].Activate: ActiveCell.FormulaR1C1 = "=novembre!RC"
    Sheets("janvier").Select
    Application.ScreenUpdating = True
    End Sub

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut
    Hello Laetitia,

    C'est parfait !
    Mille mercis

    et merci aussi à tous ce qui m'ont aidé.

    Robby

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

Discussions similaires

  1. [XL-2010] copier toutes les feuilles d'un ensemble de fichiers Excel
    Par dimitri.evrard24 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 29/12/2011, 13h59
  2. [XL-2003] Nommer les feuilles d'excel avec vba
    Par foughaa01 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/01/2010, 11h27
  3. Copier les feuilles d'un fichier excel vers un autre
    Par zaki_1982 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/04/2008, 00h47
  4. Réponses: 2
    Dernier message: 10/09/2007, 16h40
  5. [VBA]activer les feuilles d'un classeur Excel
    Par jemigo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/01/2006, 17h58

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