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
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