XL 2013 Erreur 1004 sur copie valeur en vba

maspi69

XLDnaute Nouveau
Bonjour à tous,

Jai besoin de votre aide car cela fait un moment que je cherche sans resultat probant.

Voici le vout de code qui pose probléme :

' recopie des donneesde feuille tampon dans CSV1
'
Worksheets("CSV1 confirmation mission").Activate ' selectionne "CSV1 confirmation mission"
Cells.Select 'selectionne toute la feuille
Selection.Delete Shift:=xlUp 'effacement de la feuille

Worksheets("feuilletampon").Activate
Cells.Select
Selection.Copy

Worksheets("CSV1 confirmation mission").Activate
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Au niveau en gras cela bloque. J'ai le message suivant:
Erreur 1004 La methode pastspecial de la classe range a échouée.

La difficulté c'est que c'est fréquent mais pas systématique ...

J'ajoute que les feuilles n'ont pas de protection. Je le précise car il semble que les protections génèrent ce type de message.


Si un forumeur a une idée je suis à l'écoute

Merci d'avance
 

Roland_M

XLDnaute Barbatruc
Re : Erreur 1004 sur copie valeur en vba

bonjour,

1' problème Cells.Select il s'agit de toutes les cellules ! sur 2007 t'imagines !?
il faudrait simplement la plage de données !

2' .Select trop lourd et lent !

il n'est pas nécessaire de sélectionner pour copier !
 

Roland_M

XLDnaute Barbatruc
Re : Erreur 1004 sur copie valeur en vba

re

essaies ceci pour voir (pas testé !)

EDIT: avec les rajouts suivants Application....

Application.Calculation = xlCalculationManual 'plus rapide
Application.DisplayAlerts = False ' évite demande d'excel d'écraser les données !?
Application.ScreenUpdating = False 'suspend l'affiche

RangCopy$ = "A1:Z500" '<<< A VOIR

Worksheets("CSV1 confirmation mission").Select ' selectionne "CSV1 confirmation mission"
ActiveSheet.Cells.Clear 'nettoye
Worksheets("feuilletampon").Range(RangCopy$).Copy ' copy du range
Range("A1").Select 'voir position de la cellule haut.gauche de destination
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
Application.ScreenUpdating = True
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Erreur 1004 sur copie valeur en vba

re

voir un peu plus complet, cette fois j'ai testé !

Code:
Sub CopyRang()
RangCopy$ = "A1:Z500" '<<< A VOIR

SvgActiveSheet$ = ActiveSheet.Name 'save le nom de la feuille active
Application.Calculation = xlCalculationManual 'plus rapide
Application.DisplayAlerts = False ' évite demande d'excel d'écraser les données !?
Application.ScreenUpdating = False 'suspend l'affiche

Worksheets("CSV1 confirmation mission").Select 'select feuil.destin
ActiveSheet.Cells.Clear 'nettoye
Worksheets("feuilletampon").Range(RangCopy$).Copy 'copy du range source
Range("A1").Select 'voir position de la cellule haut.gauche de destination
ActiveSheet.Paste 'recopie puis choix suivants:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Selection.PasteSpecial Paste:=xlPasteValidation, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False: Range("A1").Select
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
Application.ScreenUpdating = True

Sheets(SvgActiveSheet$).Select 'retour feuil.active de départ
End Sub
 

maspi69

XLDnaute Nouveau
Re : Erreur 1004 sur copie valeur en vba

Vraiment merci.
Cela fonctionne.

Entre temps, grâce à votre précédente intervention, j'ai pu avancer différemment.

En m'aidant de votre précédent code (qui me donnait la même erreur mais que j'ai voulu comprendre ) j'ai trouvé sur le site de Microsoft un code qui devient devient :

Public Sub test6()


Worksheets("CSV1 confirmation mission").Select ' selectionne "CSV1 confirmation mission"
ActiveSheet.Cells.Clear 'nettoye

RangCopy$ = "A1:Z10000" ' Plage a copier

Worksheets("feuilletampon").Range(RangCopy$).Copy
ActiveSheet.Paste Destination:=Worksheets("CSV1 confirmation mission").Range(RangCopy$)


End Sub


C'est votre proposition d'activesheet.paste qui m'a mis sur la voie.
Votre proposition rangcopy$ me plait aussi beaucoup. Je ne connaissais pas (comme bcp d'autre choses en VBA ...)

Un grand merci à vous
 

Roland_M

XLDnaute Barbatruc
Re : Erreur 1004 sur copie valeur en vba

ok

mais j'avais fais ainsi car j'avais vu que vous vouliez choisir ci-dessous

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 

Discussions similaires

Réponses
2
Affichages
110
Réponses
5
Affichages
98
Réponses
3
Affichages
569

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa