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
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
-
ContributeurBonjour,
en VBA on évite au maximum d'utiliser copy paste, particulièrement chronophage et lourd
essaiesOption 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
-
-
@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).
-
Contributeur@HervéBonjour,
j'ai mis xxx, pourquoi pas ? il faudrait dire dans les déclarations quel est son type: texte, nombre entier, date.... ce qui permettrait d'avoir un nom plus explicite...
j'ai mis vvv car j'ai fait çà rapidement en prenant sur mon temps libre
un topo sur les variables
https://silkyroad.developpez.com/VBA/LesVariables/
et aussi (+complet)
https://mhubiche.developpez.com/Access/variables/
-