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 :

utiliser une macro sur plusieurs feuilles [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Points : 14
    Points
    14
    Par défaut utiliser une macro sur plusieurs feuilles
    bonjour,
    j'ai besoin d'aide au sujet d'un macro, alors j'aimerais pouvoir crée une macro qui copie une colone entiere et qui la copie sur plusieur feuilles, bien sur ce nombre de feuilles et variable et la variable est contenue dans une cellule de mon fichier de depart.
    et j'aimerais aussi apres pouvoir copier la colonne deux la copier sur la feuille 2 puis la 3 sur la feuille 3 ainsi de suite, le nombre de colone est égale au nombre de feuilles
    j'etait partie sur quelque chose comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Range("A18").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        For i = Sheets("Cylindre1") To Sheets("cylindre" & nbfeuilles)
        Sheets(i).Copy
        ActiveSheet.Paste
        Next i

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Salut.

    Tu parles de colonne entière, puis tu sélectionnes une plage qui va de la ligne 18 à la prochaine ligne vide

    Tu ne dis pas non plus sur quelles feuilles tu veux coller ta plage source. Toutes sauf la feuille source? autre?

    Précise ta question stp.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    oui enfin je parle de colone mais pour moi c'est de la ligne 18 jusqu'a la fin , j'aimerais coller cette plage sur les feuilles que j'ai crée ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nbfeuilles = Sheets("donner traiter").Range("C11")
    For i = 1 To nbfeuilles
      Sheets.Add after:=Sheets(Worksheets.Count)
      Sheets(Worksheets.Count).Name = "Cylindre" & i
    Next i

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Voici un code qui fait cela

    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
    Sub Copie()
      Dim Plage As Range
      Dim i As Integer
      Dim ws As Worksheet
     
      Set Plage = Worksheets("feuil1").Range("a18")
      Set Plage = Range(Plage, Plage.End(xlDown))
      Plage.Copy
      For i = 1 To Worksheets("donner traiter").Range("c11")
        Set ws = Worksheets.Add(after:=Sheets(Sheets.Count))
        ws.Name = "Cylindre " & i
        ws.Range("a18").PasteSpecial xlPasteAll
      Next i
      Application.CutCopyMode = False
    End Sub
    Attention que sans vérifier que les feuilles sont inexistantes, la relance du code sur le même classeur plantera sur la création des feuilles.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    alors , il me rennome toute mes pages et il me crée 2 fois les pages cylindre 1 a 4
    voici mon code , si quelqu'un pouvait m'aider a comprendre , deja que c'est bien sympa de m'aider
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub Macro2()
    '
    'Ouvrire boite de dialogue
     
    Application.Dialogs(xlDialogOpen).Show
    'copie du fichier
           Range("A1:E57618").Select
        Range(Selection, Selection.End(xlDown)).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets.Add before:=Sheets(Sheets.Count)
        ActiveSheet.Paste
        Sheets("Feuil1").Select
        Sheets("Feuil1").Name = "donner traiter"
     
    'suppresion d'une ligne sur deux
     
    Dim i As Long
     
    For i = Range("A" & Rows.Count).End(xlUp).Row To 20 Step -2
        Rows(i).Delete
    Next i
     'creation nombre de feuille
    nbfeuilles = Sheets("donner traiter").Range("C11")
    For i = 1 To nbfeuilles
      Sheets.Add after:=Sheets(Worksheets.Count)
      Sheets(Worksheets.Count).Name = "Cylindre" & i
    Next i
    'copie des cycles
      Set Plage = Sheets("donner traiter").Range("a18")
      Set Plage = Range(Plage, Plage.End(xlDown))
      Plage.Copy
      For i = 1 To Worksheets("donner traiter").Range("c11")
        Set ws = Worksheets.Add(after:=Sheets(Sheets.Count))
        ws.Name = "Cylindre " & i
        ws.Range("a18").PasteSpecial xlPasteAll
      Next i
      Application.CutCopyMode = False
    j'ai beau chercher je trouve pas mon erreur

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par revans Voir le message
    il me crée 2 fois les pages cylindre 1 a 4
    C'est normal, tu as deux boucles dans lesquelles tu crées les feuilles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For i = 1 To nbfeuilles
      Sheets.Add after:=Sheets(Worksheets.Count) '<-- une première fois ici
      Sheets(Worksheets.Count).Name = "Cylindre" & i
    Next i
    'copie des cycles
      Set Plage = Sheets("donner traiter").Range("a18")
      Set Plage = Range(Plage, Plage.End(xlDown))
      Plage.Copy
      For i = 1 To Worksheets("donner traiter").Range("c11")
        Set ws = Worksheets.Add(after:=Sheets(Sheets.Count)) '<-- une seconde fois ici
        ws.Name = "Cylindre " & i
        ws.Range("a18").PasteSpecial xlPasteAll
      Next i

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    alors voila maintenant j'ai résolue le probleme de la création de plusieur feuilles
    mais il ne me copie la plage que sur la feuille cylindre 4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    nbfeuilles = Sheets("donner traiter").Range("C11")
    For i = 1 To nbfeuilles
      Sheets.Add after:=Sheets(Worksheets.Count)
      Sheets(Worksheets.Count).Name = "Cylindre" & i
    Next i
    'copie des cycles
      Set Plage = Sheets("donner traiter").Range("a18")
      Set Plage = Range(Plage, Plage.End(xlDown))
      Plage.Copy
      For i = 1 To Worksheets("donner traiter").Range("c11")
      Name = "Cylindre " & i
      Range("a1").PasteSpecial xlPasteAll
      Next i
      Application.CutCopyMode = False

  8. #8
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Essaie comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        'copie des cycles
        Set Plage = Sheets("donner traiter").Range("A18")
        Set Plage = Range(Plage, Plage.End(xlDown))
        Plage.Copy
     
        'Création des feuilles et collage
        nbfeuilles = Sheets("donner traiter").Range("C11")
        For i = 1 To nbfeuilles
            Sheets.Add after:=Sheets(Worksheets.Count)
            Sheets(Worksheets.Count).Name = "Cylindre" & i
            Range("A1").PasteSpecial xlPasteAll
        Next i
     
        Application.CutCopyMode = False
    Cordialement.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    franchement c'est super , tout fonctionne comme il faut, encore merci a vous

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

Discussions similaires

  1. [XL-2007] Application d'une macro sur plusieurs feuilles
    Par cattivo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/01/2015, 10h24
  2. [XL-2007] Exécuter une macro sur plusieurs feuilles
    Par formabox dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/03/2012, 18h22
  3. utiliser une macro sur plusieurs fichiers
    Par papimcha dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 25/04/2008, 16h23
  4. [VBA-E] Comment appliquer une macro sur plusieurs cellules
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/01/2007, 10h54
  5. macro sur plusieurs feuilles
    Par lolo_bob2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2006, 16h51

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