je m'explique je cherche a copier des informations contenue dans plusieurs cellule dans une base de donné.
information contenue dans la feuille 1 est devant ce placer en dessous de la derniére valeur de ma base de donnée (feuille 2) probléme il me copie les bordures avec et j'en veut pas .
avec selection.pastespecial il bug
et je trouve pas la solution si vous pouvez m'aider merci d'avance
pourrais tu m'expliquer le code que tu me présente
set sh1 c'est quoi
et ou est ce que je l'intégre dans mon code???
Sheets("validation").Select
Range("C7:F7").Select
Selection.Copy
Sheets("Base de donnée").Select
Range("A2").Select
Do Until IsEmpty(activecell)
activecell.Offset(1, 0).Select
Loop
Set sh1 = Sheets("validation")
Set sh2 = Sheets("Base de donnée")
sh2.Range("A2").End(xlDown).Offset(1, 0).Resize(1, 4).Value = sh1.Range("C7:F7").Value
ou celui-ci (moins lisible):
Code:
Sheets("Base de donnée").Range("A2").End(xlDown).Offset(1, 0).Resize(1, 4).Value = Sheets("validation").Range("C7:F7").Value
Code:
Range("A2").End(xlDown).Offset(1, 0)
fait la même chose que:
Code:
Do Until IsEmpty(activecell)
activecell.Offset(1, 0).Select
Loop
il veut pas le prendre trop volumineux je met donc je code complet:
Application.ScreenUpdating = False
'bloque l'affichage de l'écran
'Sheets("validation").Select
'Range("C7:F7").Select
'Selection.Copy
'Sheets("Base de donnée").Select
'Range("A2").Select
Set sh1 = Sheets("validation")
Set sh2 = Sheets("Base de donnée")
sh2.Range("A2").End(xlDown).Offset(1, 0).Resize(1, 4).Value = sh1.Range("C7:F7").Value
'Do Until IsEmpty(activecell)
'activecell.Offset(1, 0).Select
'Loop
Il faut aussi mettre ActiveSheet.Paste en commentaire.
Les lignes ayant .Select sont inutiles (pour le reste du code), ça ralentie inutilement la macro.