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/coller les valeurs, pas les formules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut Copier/coller les valeurs, pas les formules
    Bonjour,

    J'ai un classeur, 2 feuilles.

    Dans la "Feuil1", en A1, j'ai la valeur "Essai Eric".
    Dans la "Feuil2", en A1, j'ai (je fais volontairement simple....)

    Fonctionnement : en "Feuil1", j'ai un code qui me fait un ensemble de calculs, je compile ces calculs dans la "Feuil2". Chaque semaine, je dois refaire les calculs de la "Feuil1", mais je souhaite conserver un historique. Donc, il faut que j'insère une nouvelle feuille (exemple "Feuil3") , copie "Feuil2" et colle en "Feuil3".

    Le souci est qu'en "Feuil3" A1, dans la cellule, j'ai ,("normal" puisque je copie/colle), mais ce qui m'intéresse, c'est d'avoir la valeur "Essai Eric" en Feuil3 A1 , pas la formule, car, vous l'avez compris, lorsque je refais tourner mon code en "Feuil1", la "Feuil3" change et prend les valeurs de la "Feuil1", ....

    Une idée ?

    Merci,

    A+

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 86
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Par défaut
    Bonjour,

    Au lieu de simplement coller prenez Collage Spéciale > Valeurs.
    La version d'Excel utilisée aiderait à en donner un peu plus.

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Par code, après avoir copié la feuille, tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oNewSheet.UsedRange.Formula = oNewSheet.Usedrange.Value
    Cordialement,

    PGZ

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Merci rjamin, tu m'as appris une fonction "coller" que je ne connaissais pas...(pas trop fan des copier/coller, ha, Mac, quand tu nous tiens..)..et donc effectivement, j'ai essayé par l'assistant, donc, pour résoudre complètement mon problème, il faut faire :
    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
    Private Sub ajoutfeuille()
    '
     
    Dim sem As String
    sem = InputBox("nom de feuille que vous souhaitez rajouter")
    '
    Sheets("Feuil1").Select
        Rows("1:46").Select
        Selection.Copy
     
    Sheets.Add after:=Worksheets(Sheets.Count)
    Worksheets(Sheets.Count).Name = sem
     
    ActiveSheet.Select
     
     Range("A4").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    , et ça fonctionne : ajout d'une feuille avec le nom que l'on souhaite et copie des valeurs plutôt que les formules....tout baigne !!!!

    PGZ, une fois de plus, je te remercie. Par contre, j'ai essayé de mettre ton code (qui fait plus VBAiste que l'assistant....et surtout qui m'apprend de nouveaux codes) et à chaque fois, ça plante...je faisais
    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
    Private Sub ajoutfeuille()
    '
     
    Dim sem As String
    sem = InputBox("nom de feuille que vous souhaitez rajouter")
    '
    Sheets("Feuil1").Select
        Rows("1:46").Select
        Selection.Copy
     
    Sheets.Add after:=Worksheets(Sheets.Count)
    Worksheets(Sheets.Count).Name = sem
     
    ActiveSheet.Select
    oNewSheet.UsedRange.Formula = oNewSheet.Usedrange.Value
    , c'est une histoire de mauvais positionnement ? (je ne pense pas car j'i essayé à différents endroits du code) ou il y a un truc/instruction qui manque ?

    Merci,
    A+

  5. #5
    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 184
    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 184
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Pour réduire ton code, tu peux écrire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub ajoutfeuille()
      Dim sem As String
      sem = InputBox("nom de feuille que vous souhaitez rajouter")
      Sheets.Add after:=Worksheets(Sheets.Count)
      Sheets("Feuil1").Rows("1:46").Copy
      With Worksheets(Sheets.Count)
      .Name = sem
      .Range("A1").PasteSpecial Paste:=xlPasteValues
      End With
    End Sub
    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

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    J'ai cru que tu copiais la feuille, pas seulement une plage. CEla donne
    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 ajoutfeuille()
    Dim oNewSheet As Excel.Worksheet
    Dim sem As String
     
    sem = InputBox("nom de feuille que vous souhaitez rajouter")
     
    ThisWorkbook.Worksheets("Feuil1").Copy , ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    Set oNewSheet = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    oNewSheet.Name = sem
     
    oNewSheet.UsedRange.Formula = oNewSheet.UsedRange.Value
     
    Set oNewSheet = Nothing
    End Sub
    Cordialement,

    PGZ

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Merci PGZ,

    Une fois de plus, merci pour ton explication simple et claire.

    Je ne comprenais pas toujours certains codes de la FAQ, les choix de telles ou telles déclarations.....maintenant, je pense avoir compris et surtout l'intérêt !!! (de stabilité et de limitation d'erreur...)

    Merci,

    A+ pour de prochaines aventures

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/12/2011, 13h22
  2. Réponses: 5
    Dernier message: 14/07/2010, 07h26
  3. Réponses: 1
    Dernier message: 24/10/2006, 16h59
  4. [FB] récupérer les valeurs pas défaut
    Par Emmanuel Lecoester dans le forum SQL
    Réponses: 1
    Dernier message: 05/01/2005, 15h37

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