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 :

Copie de feuilles sélectionnées dans un même classeur


Sujet :

Macros et VBA Excel

  1. #1
    TNC
    TNC est déconnecté
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Copie de feuilles sélectionnées dans un même classeur
    Citation Envoyé par bbil Voir le message
    tiens tu pourrai essayer ainsi : copie de la feuille compléte dans nouveau classeur puis suppression des formules :
    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
     
    Function SaveClasseur()
      Dim ClasseurSource As Workbook
      Dim ClasseurCible As Workbook
     
      Set ClasseurSource = ActiveWorkbook
     
      ClasseurSource.Sheets(3).Copy 'Copie la feuille compléte..
      Set ClasseurCible = ActiveWorkbook 'Au cas ou .. pour garder un accés au nouveau classeur
     
      'Suppression des formules
      Cells.Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
          False, Transpose:=False
        Application.CutCopyMode = False
        Cells(1, 1).Select
    End Function

    Bonjour BBIL, Bonjour à tous,

    Je viens de reprendre le code que je trouve très utile.
    Cependant lorsque l'on a plusieurs feuilles à copier dans un nouveau et même classeur comment fait-on ?
    J'ai copié plusieurs fois la ligne suivante en modifiant le nombre entre paranthère. Donc en autant de fois que j'ai de feuilles à copier.
    ClasseurSource.Sheets(3).Copy 'Copie la feuille compléte

    Cependant il m'a copié chaque feuille dans un classeur différent.
    Comment faire pour que toutes les feuilles copiées aillent dans le même classeur ?
    Merci pour votre aide,
    Cordialement.

    Thierry

  2. #2
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Jète un oeil ici, en espérant que ça puisse t'aider.
    bonne journée

    Nb - Il est bien de créer une nouvelle discussion quand une discussion a été taguée Résolu

  3. #3
    TNC
    TNC est déconnecté
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Copier plusieurs feuilles Excel dans un nouveau classeur sans les formules
    Bonjour à Tous,

    Voici le code VBA associé à un bouton que j'ai adapté.
    Il copie bien les feuilles cependant les formules ne sont pas supprimées dans le classeur de destination !
    Ce que je voudrais c'est que les cellules ne contiennent que la valeur.
    Merci pour votre aide,
    Cordialement.

    TNC

    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
    Sub Copie()
    '
    ' Copie Macro
    ' Macro enregistrée le 23/09/2008 par CHAUVIER-00430
        SaveClasseur
        ActiveWorkbook.Colors(27) = RGB(221, 221, 221)
        ActiveWorkbook.Colors(28) = RGB(255, 255, 102)
     
    End Sub
     
     
    Function SaveClasseur()
      Dim Classeursource As Workbook
      Dim ClasseurCible As Workbook
     
      Set Classeursource = ActiveWorkbook
     
      Classeursource.Sheets(Array("Accueil", "P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9", "P10", "P11", "P12", "P13", "P14")).Select
      Classeursource.Sheets(Array("Accueil", "P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9", "P10", "P11", "P12", "P13", "P14")).Copy 'Copie les feuilles sélectionnées
     
      Set ClasseurCible = ActiveWorkbook 'Au cas ou .. pour garder un accés au nouveau classeur
     
      'Suppression des formules
      Cells.Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
        Cells(1, 1).Select
    End Function

  4. #4
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu as ça dans le lien que je t'ai mis, macro copie()
    L'explication se trouve dessous (Pour conserver les formules.... etc) qui t'indique (le code à supprimer) le code à utiliser pour ne copier que les valeurs.

    La méthode utilisée consiste à copier la feuille puis sur la feuille à copier les valeurs seules. Ainsi le format est conservé mais les valeurs remplacent les formules.

    L'autre méthode pour conserver le format numérique consiste à ajouter une feuille vierge au classeur principal et, en utilisant l'argument xlPasteValuesAndNumberFormats du paramètre Paste de la méthode Pastespecial, à copier le contenu de la feuille à dupliquer.
    Bonne soirée

  5. #5
    TNC
    TNC est déconnecté
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour Ouskel'n'or, bonjour à Tous sur le forum,

    Merci pour ton aide mais je ne suis pas doué en VBA et je n'ai pas compris ta 2ème solution.
    Ce que je ne comprends pas dans le code VBA que j'ai récupéré c'est que les cellules de destinations contiennent toujours la formule alors que ma fonction VBA prévoit bien de les supprimer puisque j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      'Suppression des formules
      Cells.Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
        Cells(1, 1).Select
    Par ailleurs, je ne sais plus s'il faut mettre false ou true pour le CutCopyMode...
    Alors je crie au secours !!! car je désespère...
    Merci à tous ceux qui m'aideront à y voir plus clair.
    Bien cordialement.

    Thierry

    Re-bonjour,

    Petite précision : dans mon classeur source j'ai des cellules fusionnées.
    1/Si je fais un copier/coller valeurs puis copier/coller format j'ai un message d'erreur qui m'indique que les cellules fusionnées doivent être de taille identique...
    2/Si je fais un copier/coller valeurs puis un copier/coller format ça marche, je n'ai pas de formule dans mes cellules le problème c'est que je n'ai pas les graphiques associés.
    Quel serait le code qui :
    1/ Qui ferait un copier/coller des valeurs dans un nouveau classeur
    2/ Puis qui ferait un copier/coller du format dans ce même nouveau classeur
    3/ Permettrait de copier également les graphiques

    Merci à tous pour votre aide,
    Cordialement.

    TNC

  6. #6
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Hello,
    Tiens, j'ai fait ça mais ne peux pas le tester. Tu peux faire ça pour moi ?
    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 SaveClasseur()
    Dim Tablo As Variant
    Dim CL1 As Workbook 'Classeur récapitulatif (contient la macro)
    Dim CL2 As Workbook 'Classeur source
    Dim ClasseurCible As Workbook
        Set CL1 = ThisWorkbook 'Classeur récap contenant la macro
        Set CL2 = Workbooks.Open("D:\Chemin\Classeur source.xls") ' tu adaptes
        Tablo = Array("Accueil", "P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9", "P10", "P11", "P12", "P13", "P14")
        For i = 0 To UBound(Tablo)
            CL2.Worksheets(Tablo(i)).Copy After:=CL1.Sheets(CL1.Sheets.Count)
            CL2.Worksheets(Tablo(i)).Cells.Copy
            CL2.Worksheets(Tablo(i)).Range("A1").PasteSpecial Paste:=xlValues
            Application.CutCopyMode = False
        Next
    End Sub
    Tu dis
    A+

Discussions similaires

  1. [VBA] : Copier feuille Excel dans le même classeur (erreur 9 ou 1004)
    Par Jordmund dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/03/2015, 16h09
  2. [Débutant] Créer plusieurs feuilles excel dans un même classeur- VB.NET
    Par Aiman.elmachi dans le forum VB.NET
    Réponses: 0
    Dernier message: 12/06/2014, 03h18
  3. Réponses: 4
    Dernier message: 02/07/2008, 12h32
  4. Réponses: 1
    Dernier message: 10/07/2007, 18h14
  5. [VBa-e] Copie 1 feuille (valeur) dans new classeur ?
    Par leonserbe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/05/2007, 22h08

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