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 feuille d'un classeur à un autre sans les formules des worksheets


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juin 2011
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 80
    Points : 41
    Points
    41
    Par défaut Copier feuille d'un classeur à un autre sans les formules des worksheets
    Bonjour à tous,

    Voila, le titre veut pas dire grand chose donc je vais essayer d'etre clair.
    Je voudrais copier une feuille d'un classeur à un autre. Pour cela j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ceclasseur.Sheets("Feuil1").Select
    With newclasseur
        ceclasseur.Sheets("DT CC").Copy Before:=.Sheets("Feuil2")
    End With
    Le problème quand je fais cela, c'est que le code contenu dans la feuille meme (dans le worksheet quand on double clique sur la feuille dans le menu déroulant à gauche) se copie aussi alors que je ne veux pas (car normalement il active d'autres macros mais qui elles ne sont pas présentes dans le nouveau classeur!!!).

    Donc ma question était de savoir si on pouvait copier une feuille sans ces macros contenues dedans?

    J'espère avoir été assez clair.
    Merci d'avance pour vos réponses

    Tioch

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Le plus simple dans ce cas est de faire copier coller de toutes les cellules de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim i As Integer
    ceclasseur.Sheets("Feuil1").Cells.Copy
    i = newclasseur.Sheets("Feuil2")
    newclasseur.Worksheets.Add Newclasseur.Sheets("Feuil2")
    newclasseur.Sheets(i).Paste

  3. #3
    Membre du Club
    Inscrit en
    Juin 2011
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    Merci de ta réponse, je connais cette solution que j'ai deja essayé (c'est vrai que j'ai oublié de la préciser) mais elle ne m'intéresse malheureusement pas car elle ne permet de copier la définition de chaque cellule (le nom spécifique de chaque cellule).
    Mais si tu as une solution à cela en utilisant ta proposition je suis tout a fait preneur.
    Sinon y a t il une autre idée?

    Encore merci

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ben tu fais un mix des deux tu copie la feuille avec ta méthode puis tu copie les données ( collage spécial valeur) pour supprimer les formules...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Bbil j'ai recherché comment faire pour faire une copie spéciale pour copier/coller uniquement la valeur grâce à l'éditeur de macro!
    Cela m'a donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Range("B8").Select
        Selection.Copy
        Sheets("_LISTES").Select
        Range("J18").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Jusque là je comprend bien mais le soucis c'est pour le modeler à mon code!
    Je me permet de l'écrire ici cela pourra peut être aider notre ami car nous avons le même problème!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub CopieFeuille(stFeuille As String)
     
        Dim wb As Workbook
        Dim x As String, fichier As String, stdir As String
     
        x = ThisWorkbook.Sheets("Index").Range("C2").Text
        ThisWorkbook.Sheets(stFeuille).Copy
        Set wb = ActiveWorkbook
        stdir = "C:\Documents and Settings\bdu\Bureau\DTO\"
        fichier = stdir & stFeuille & " de " & x & ".xls"
        wb.SaveAs fichier
        wb.Close
     
    End Sub
    Est-il possible de le modeler à ce code-ci en sachant que je n'utilise pas la commande PASTE?
    Merci
    Bonne journée

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Modifie ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    (...)
        ThisWorkbook.Sheets(stFeuille).Copy
        Set wb = ActiveWorkbook
     
       ThisWorkbook.Sheets(stFeuille).Cells.Copy 'Copie valeurs cellules dans presse-papier
       wb.Cells.Sheets(stFeuille).PasteSpecial xlPasteValues 'colles valeurs.
     
        stdir = "C:\Documents and Settings\bdu\Bureau\DTO\"
    (...)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Me revoilà à la charge lol!

    J'ai essayé ton code bbil mais j'ai un petit souci encore.

    J'ai écris ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ThisWorkbook.Sheets(stFeuille).Cells.Copy   'Copie valeurs cellules dans presse-papier
        wb.Cells.Sheets(stFeuille).PasteSpecial xlPasteValues   'colles valeurs
    Or ça me met une erreur:

    "Variable objet ou variable de bloc Withnon définie" sur la ligne en gras!
    J'ai eu beau chercher je n'ai pas trouvé de quoi cela pouvait provenir!

    Merci pour ton aide!

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    oups ... j'ai mélangé ma ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     wb.Sheets(stFeuille).Cells.PasteSpecial xlPasteValues   'colles valeurs

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Me revoilà avec mon petit problème!!
    J'ai testé ton code bbil mais j'ai toujours la même erreur!!

    voilà mon code:

    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
    Sub CopieFeuille(stFeuille As String)
     
        Dim wb As Workbook
        Dim x As String, fichier As String, stdir As String
     
        If stFeuille = "MAT1017" Then
            x = ThisWorkbook.Sheets("Index").Range("C4").Text
        Else
            If stFeuille = "MENSUELLE" Then
                x = ThisWorkbook.Sheets("Index").Range("C2").Text
            Else
                x = ThisWorkbook.Sheets("Index").Range("C6").Text
            End If
        End If
     
        ThisWorkbook.Sheets(stFeuille).Cells.Copy
        wb.Sheets(stFeuille).Cells.PasteSpecial xlPasteValues
        stdir = "C:\Documents and Settings\bdu\Bureau\DTO\"
        fichier = stdir & stFeuille & " de " & x & ".xls"
        wb.SaveAs fichier
        wb.Close
     
    End Sub
    Cela fonctionne avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ThisWorkbook.Sheets(stFeuille).Copy
        Set wb = ActiveWorkbook
        stdir = "C:\Documents and Settings\bdu\Bureau\DTO\"
        fichier = stdir & stFeuille & " de " & x & ".xls"
        wb.SaveAs fichier
        wb.Close
    Mais celui-ci me copie les formules avec or je ne veux pas!

    Quelqu'un pourrait il me dire ce qui cloche svp! Je suis perdu là ! Merci d'avance bon aprem!

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par biddal Voir le message
    ...
    J'ai testé ton code bbil mais j'ai toujours la même erreur!!
    ..
    tu as oublié 2 lignes sur 4 !!!!

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Autant pour moi bbil je pensais que tu voulais que je remplace les 2 premières que tu avais écrites par les 2 suivantes !! Cela marche nikel maintenant merci beaucoup bonne journée

Discussions similaires

  1. macro pour copier une feuille d'un classeur à un autre
    Par rihab92 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2015, 21h05
  2. Réponses: 9
    Dernier message: 30/04/2013, 18h57
  3. copier feuille d'un classeur vers un autre
    Par steeeve34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/07/2012, 19h08
  4. copie de feuilles d'un classeur à l'autres
    Par kmario dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/01/2010, 08h37
  5. [OpenOffice][Tableur] [Source] Copie d'une feuille d'un classeur à un autre
    Par Caro-Line dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 07/08/2009, 18h25

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