Pourquoi ma macro bloque ? Simple copie de donnée

Banshor

XLDnaute Nouveau
Bonjour,

J'ai crée une macro qui me permet de copier des informations d'un fichier Excel vers un autre.

En voici le morceau de code ayant un soucis :

Code:
Windows(Fichier).Activate
    Range("B11").Select
    Application.CutCopyMode = False
    Selection.Copy
    Workbooks.Open Filename:=ClasseurArchivage
    Windows("Archivage.xls").Activate
    Worksheets("ArchiveBase").Select
    Range("A65000").End(xlUp).Offset(1).Select
    ActiveSheet.Paste

Ici la ligne ActiveSheet.Paste ne fonctionne pas et je n'arrive pas à comprendre pourquoi. Pouvez vous m'aider ?

J'ai ce message d'erreur :

- Erreur d'exécution '1004': La méthode Paste de la classe Worksheet a échoué.

Petite précision, je débute en progra, particulièrement en VBA.

Merci
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Pourquoi ma macro bloque ? Simple copie de donnée

Bonjour.

Possible que l'ouverture du classeur entraine l'exécution d'une macro qui détruit l'effet du Copy. Essayez comme ça:
VB:
Dim CelSrc As Range, ClsDest As Workbook
Set CelSrc = ActiveSheet.[B11]
Set ClsDest = Workbooks.Open(Filename:="Archivage.xls")
ClsDest.Worksheets("ArchiveBase").[A65000].End(xlUp).Offset(1).Value = CelSrc.Value
 

Banshor

XLDnaute Nouveau
Re : Pourquoi ma macro bloque ? Simple copie de donnée

J'ai réglé mon problème de copiage, j'ai lu que lorsque l'on ouvre un autre classeur, il est possible que le presse papier se supprime. J'ouvre donc mon fichier Archivage avant de copier. Merci quand même!

Et j'ai actuellement un autre soucis... J'essaye de copier a la suite les données que je souhaite. Mais il ne les mets pas au bon endroit!

Mon code :
Code:
Workbooks.Open Filename:=ClasseurArchivage
    Windows(Fichier).Activate
    Range("K49").Value = Range("B11").Value
    Range("K49").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Archivage.xls").Activate
    If Range("A2").Value = "" Then
    ActiveSheet.Paste
    Else
    Range("A65000").End(xlUp).Offset(1).Select
    ActiveSheet.Paste
    End If
    Windows(Fichier).Activate
    Range("K50").Value = Range("E11").Value
    Range("K50").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Archivage.xls").Activate
    If Range("D2").Value = "" Then
    ActiveSheet.Paste
    Else
    Range("D65000").End(xlUp).Offset(1).Select
    ActiveSheet.Paste
    End If
    Windows(Fichier).Activate
    Range("K51").Value = Range("G11").Value
    Range("K51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Archivage.xls").Activate
    If Range("F2").Value = "" Then
    ActiveSheet.Paste
    Else
    Range("F65000").End(xlUp).Offset(1).Select
    ActiveSheet.Paste
    End If
    Windows(Fichier).Activate
    Range("K52").Value = Range("F26").Value
    Range("K52").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Archivage.xls").Activate
    If Range("H2").Value = "" Then
    ActiveSheet.Paste
    Else
    Range("H65000").End(xlUp).Offset(1).Select
    ActiveSheet.Paste
    End If
    Windows(Fichier).Activate
    Range("K53").Value = Range("I51").Value
    Range("K53").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Archivage.xls").Activate
    If Range("K2").Value = "" Then
    ActiveSheet.Paste
    Else
    Range("K65000").End(xlUp).Offset(1).Select
    ActiveSheet.Paste
    End If
    ActiveWorkbook.Save

La valeur qui doit se mettre dans la cellule vide a la suite des K1;K2;K3;... se met dans A1;A2;A3;... et aucune des autres ne se copie. Pourtant tout fonctionne.
Seconde chose que j'ai remarqué, c'est que ça à l'air de fonctionner si je les test une par une.. Mais toutes à la suite, plus rien ne fonctionne.. je continue mes recherche. Et je trouve mon code vachement crade ! Je ne sais pas comment faire pour qu'il soit plus presentable, désolé à vous :/ Un peu d'aide svp ^^

*Rectification, si je le fais 1 par 1 la valeur va toujours chercher a se mettre en A2... je ne comprend rien
**Rectification, en fait il me copie la valeur dans la cellule selectionné dès l'ouverture du fichier. Comme j'avais selectionné la case A2 il copie toutes mes valeurs dans A2 les une sur les autres avant de sauvegarder et il ne me reste plus que la valeur qui aurait du se trouver dans K2 MAIS il arrive tout de même à me placer la valeur voulu dans K2;K3;...etc
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 107
Messages
2 085 355
Membres
102 874
dernier inscrit
Petro2611