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 :

VBA - Copier une feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 1
    Par défaut VBA - Copier une feuille
    Bonjour,

    J'ai un peu regardé partout ce que je souhaite faire mais je n'ai pas su trouver la bonne solution, voila pourquoi je me tourne vers vous.

    Je souhaiterai pouvoir copier l'intégralité d'une feuille ou il y a une centaine de formule présente qui se modifie selon des dates.
    J'aimerai pouvoir copier cette feuille sur une nouvelle feuille à l'aide d'une macro VBA (car les options de coller ne correspondent pas à ce que je recherche).

    Il faudrait que la feuille soit entièrement copié avec:
    - la taille des colonnes
    - le formats des cellules
    - et uniquement les valeurs calculées.

    (Dans l'idéal mais je pense que cela n'est pas possible en conservant les lignes masqués).

    Je reste relativement novice en VBA, j'ai trouver une macro qui semblait faire ce que je souhaite mais je rencontre quelques problèmes d'adaptations avec.

    La voici :
    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 copier_val () 
     
    Dim oWksh As Worksheet 
    Set oWksh = Worksheets.add(After:=Worksheets("01-2021")
     
    With oWksh
    .name = "New"
    Worksheets("01-2021).UsedRanger.Copy
    .Range("A1").PasteSpecial Paste:=xlPasteValues
    .Range("A1").PasteSpecial Paste:=xlPasteFormats
     
    End with
    End sub

    L'idée derrière est de conserver la mise en page de la feuille avec les valeurs qui sont calculées pour une date donnée, me permettant d'avoir une feuille mois par mois.

    Si à tout hasard, vous avez une idée de comment réaliser cela, je vous remercie par avance.

    I

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si vous faites un clic droit sur l'onglet d'une feuille, vous trouverez dans les commandes proposées dans le menu contextuel la commande permettant de copier ou déplacer la feuille dans le même classeur, dans un autre classeur ouvert ou dans un nouveau classeur.

    En VBA, les méthodes de l'objet Worksheet ou Sheet pour effectuer ces opérations se nomment Copy ou Move

    L'utilisation de l'enregistreur de macros vous permettra de visualiser le code complet

    [EDIT]
    Il faudrait que la feuille soit entièrement copié avec:
    - la taille des colonnes
    - le formats des cellules
    - et uniquement les valeurs calculées.

    (Dans l'idéal mais je pense que cela n'est pas possible en conservant les lignes masqués).
    En copiant ou en déplaçant une feuille on conserve toutes les propriétés de celle-ci (Taille des colonnes, le format des cellules, les formules, etc.)

    Pour ne conserver que les valeurs calculées, il suffit de faire un Copier/Collage Spécial - Valeur sur la même aire de cellules (personnellement, J'utilise objetRange.Value = objetRange.Value)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 12h51
  2. [XL-2010] VBA - Copier une feuille Excel à partir d'un fichier XSLM partagé
    Par joboljobol dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/05/2015, 08h01
  3. [VBA-E] Copier une feuille d'un fichier 1 sur un fichier 2
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/03/2007, 16h47
  4. [VBA-E] Erreur pour copier une feuille
    Par Persons dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/06/2006, 22h38
  5. VBA : copier une image d'une feuille excel à une autre
    Par Equus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2005, 14h01

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