Partage
  • Partager sur Facebook
  • Partager sur Twitter

VBA copier/coller les valeurs uniquement

VBA copier/coller

Sujet résolu
    17 janvier 2020 à 12:30:02

    Bonjour,

    J'ai un code VBA qui me permet de copier/coller des cellules d'une feuille à une autre désignée "archives" et globalement ça fonctionne.

    Mais dans une cellule je veux copier le résultat d'une formule, ce qui fait que je n'arrive pas à coller que la valeur du résultat.

    Ci-dessous le code : la cellule me posant problème est la "K22" qui est une formule simple ("G18/K4"), le reste fonctionne bien car saisie.

    Option Explicit

    Dim plage1, plage2, lgn, c, col, i

    Sub Transfert()

        Set plage1 = Range("G1,G2,I1,K4,K5,K6,K7,K17,K18,K22")

        Set plage2 = Sheets("archives").Range("B1,C1,D1,E1,F1,G1,H1,I1,J1,K1")

        Sheets("archives").Range("A2:K2").Insert shift:=xlDown

        'lgn = Sheets("archives").Range("B" & Rows.Count).End(xlUp)(2).Row

        i = 0

        For Each c In plage1

            i = i + 1

            col = Choose(i, "B", "C", "D", "E", "F", "G", "H", "I", "J", "K")

            Sheets("archives").Range("A2") = Sheets("archives").Range("A3") + 1

            c.Copy Sheets("archives").Cells(2, col)

        Next c

        MsgBox "Archivage réussi!"

        End Sub

    Merci par avance de vos connaissances et du temps pris pour me répondre

    Amicalement

    Robert

    • Partager sur Facebook
    • Partager sur Twitter
      17 janvier 2020 à 14:48:45

      Salut,

      Il faut utiliser Range.PasteSpecial avec l'argument Paste qui vaut xlPasteValues.

      https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.pastespecial

      • Partager sur Facebook
      • Partager sur Twitter
        18 janvier 2020 à 22:37:05

        Salut,

        Je vais tenter cette solution

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2020 à 11:25:43

          Bonjour,

          Je ne suis pas encore doué pour le VBA car je n'arrive pas à bien positionner le code "PasteSpecial". J'ai toujours un message d'erreur.

          Auriez-vous la possibilité de tester, s'il vous plaît ?

          Merci d'avance

          Amicalement

          Robert

          • Partager sur Facebook
          • Partager sur Twitter
            20 janvier 2020 à 14:07:03

            Montre ton code, en utilisant le bouton </> au dessus de l'éditeur de texte du forum pour qu'il soit formaté.
            • Partager sur Facebook
            • Partager sur Twitter
              21 janvier 2020 à 8:08:54

              'Ci-dessous le code. Merci de votre collaboration active
              'Amicalement - Robert
              Option Explicit
              
              Dim plage1, plage2, lgn, c, col, i
              
              Sub Transfert()
              
                  Set plage1 = Range("G1,G2,I1,K4,K5,K6,K7,K17,K18,K22")
              
                  Set plage2 = Sheets("archives").Range("B1,C1,D1,E1,F1,G1,H1,I1,J1,K1")
              
                  Sheets("archives").Range("A2:K2").Insert shift:=xlDown
              
                  'lgn = Sheets("archives").Range("B" & Rows.Count).End(xlUp)(2).Row
              
                  i = 0
              
                  For Each c In plage1
              
                      i = i + 1
              
                      col = Choose(i, "B", "C", "D", "E", "F", "G", "H", "I", "J", "K")
              
                      Sheets("archives").Range("A2") = Sheets("archives").Range("A3") + 1
              
                      c.Copy Sheets("archives").Cells(2, col)
              
                  Next c
              
                  MsgBox "Archivage réussi!"
              
                  End Sub
              • Partager sur Facebook
              • Partager sur Twitter
                21 janvier 2020 à 10:17:51

                Il ne faut pas mettre la destination dans le c.Copy, sinon le copier-coller se fait directement.

                Pour copier il faut juste c.Copy puis pour coller avoir sur la ligne d'en dessous Sheets("archives").Cells(2, col).PasteSpecial xlPasteValues

                • Partager sur Facebook
                • Partager sur Twitter
                  21 janvier 2020 à 10:34:59

                  Bonjour et grand MERCI à vous

                  Bonne journée

                  Amicalement

                  Robert

                  • Partager sur Facebook
                  • Partager sur Twitter

                  VBA copier/coller les valeurs uniquement

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown