Coller la valeur d'une cellule VBA

Résolu
Bonjour,
Je souhaite copier la valeur d'une cellule et non la formule. Voici mon code :

ThisWorkbook.Activate

'1. Find last used row in destination sheet
lRow = Worksheets("BASE DE DONNEES").Cells(Worksheets("BASE DE DONNEES").Rows.Count, 1).End(xlUp).Row

'Offset 1 row below last used row
lRow = lRow + 1

'2. Copy data
Worksheets("INFORMATION").Range("C8").Copy

'3. Paste data
Worksheets("BASE DE DONNEES").Range("H" & lRow).PasteSpecial

'Clear copy mode (marching ants around copied range)
Application.CutCopyMode = False


La cellule "C8" de la feuille "INFORMATION" se copie bien dans la colonne H de la feuille "BASE DE DONNEES" mais c'est la formule qui est copiée et non la valeur.

Pouvez-vous m'aider ?
Cordialement

2 réponses

  1. Contributeur
    Bonjour,

    en VBA on évite au maximum d'utiliser copy paste, particulièrement chronophage et lourd

    essaies
    Option Explicit
    Sub vvvv()
    Dim lrow As Long, xxx

    With ThisWorkbook.Worksheets("BASE DE DONNEES")
    xxx = Worksheets("INFORMATION").Range("C8").Value
    '1. Find last used row in destination sheet
    lrow = .Cells(Worksheets("BASE DE DONNEES").Rows.Count, 1).End(xlUp).Row + 1
    .Range("H" & lrow) = xxx
    End With
    End Sub

    1. Merci de votre réponse mais à quoi correspondent les xxx ?
    2. @HEMIYELY 
      xxx est le nom d'une variable ; celle qui doit contenir la valeur de C8 ;
      tu peux bien sûr renommer cette variable de façon plus explicite :
      lors de sa définition en ligne Dim, et les 2 fois où elle est utilisée.

      vvvv n'est pas un nom de sub très explicite, et tu peux aussi
      le renommer à ton choix (en laissant les parenthèses).