Signaler

Coller la valeur d'une cellule VBA [Résolu]

Posez votre question HEMIYELY 6Messages postés mercredi 10 mai 2017Date d'inscription 12 juin 2017 Dernière intervention - Dernière réponse le 13 juin 2017 à 08:00 par michel_m
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
Afficher la suite 
Utile
+0
plus moins
Bonjour,

Pour ton '3. Paste data, remplace ton code existant par celui ci :


Worksheets("BASE DE DONNEES").Range("H" & lRow).Select
Selection.PasteSpecial Paste:=xlPasteValues


Ca devrait le faire,

Bonne journée

Jc
HEMIYELY 6Messages postés mercredi 10 mai 2017Date d'inscription 12 juin 2017 Dernière intervention - 12 juin 2017 à 17:19
Merci de votre réponse. Cela fonctionne mais une seule fois. Lorsque je clique une seconde fois sur la macro j'ai un message d'erreur : Erreur d'exécution '1004': La méthode Select de la Classe Range a échoué.

Connaissez-vous ce genre d'erreur ?
Répondre
Donnez votre avis
Utile
+0
plus moins
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

HEMIYELY 6Messages postés mercredi 10 mai 2017Date d'inscription 12 juin 2017 Dernière intervention - 12 juin 2017 à 17:21
Merci de votre réponse mais à quoi correspondent les xxx ?
Répondre
Hervé- 12 juin 2017 à 17:41
 
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).
 
Répondre
michel_m 14835Messages postés lundi 12 septembre 2005Date d'inscription ContributeurStatut 3 juillet 2017 Dernière intervention - 13 juin 2017 à 08:00
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
http://silkyroad.developpez.com/VBA/LesVariables/

et aussi (+complet)
http://mhubiche.developpez.com/Access/variables/
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !