cs_tilous
Messages postés3Date d'inscriptionlundi 22 août 2005StatutMembreDernière intervention 8 février 2014
-
22 août 2005 à 17:26
thtdlx2
Messages postés17Date d'inscriptiondimanche 10 octobre 2004StatutMembreDernière intervention 3 juillet 2008
-
24 août 2005 à 11:38
À l'aide svp,
J'ai un classeur nommé planning dans lequel je sélectionne une série de lignes, ensuite je clique sur un bouton nommé backup. Cette action doit ouvrir le classeur 2005.xls et coller les lignes sélectionnées de mon classeur planning à l'endroit de la première ligne vide. Il serait important que je vide le presse papier avant, car je veut m'assurer qu'il ne contient rien d'autre.
J'ai beau essayer et ça ne marche pas...
Sub backup_final()
Dim j
Dim l
' Ici je voudrais vider le presse papier, mais je ne sais pas comment 'Clipboard.Clear
'Je copie la sélection de mon classeur planning Selection.Copy
'chemin du fichier 2005.xls Workbooks.Open Filename:= _
"C:\Documents and Settings\Louise\Bureau\precision\2005.xls"
'Activation de ma feuille de mon classeur 2005.xls
Worksheets("Feuil1").Activate
'Recherche de ma dernière ligne non vide pour obtenir le numéro ActiveCell.SpecialCells(xlLastCell).Select
l = Split(ActiveCell.Address, "$")(2)
' ici je sélectionne un plage pour recevoir la copie, j'aimerais mieux sélectionner des lignes complètes, mais je sais pas comment faire Range("A" & l + 1 & ":" & "AJ" & l + 1).Select
' Je colle les données et c'est ici que j'obtient l'erreur "erreur d'exécution -2147417848..." la méthode paste de l'objet worksheet a échoué
ActiveSheet.Paste
Application.CutCopyMode = False
'Je m'assure que le classeur est actif avant la sauvegarde et fermeture Windows("2005.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Est-ce que vous pouvez m'aider, je travaille sur ce code depuis des lunes et je trouve pas la solution
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200832 22 août 2005 à 17:43
bonjour
tu peux tester cette macro pour vider le presse papier
Sub viderPressePapier()
'nécéssite d'activer la référence "Microsoft Forms 2.0 Object Library."
Dim Cible As dataObject
Set Cible = New dataObject
Cible.setText ""
Cible.putInClipboard
Set Cible = Nothing
End Sub
thtdlx2
Messages postés17Date d'inscriptiondimanche 10 octobre 2004StatutMembreDernière intervention 3 juillet 2008 23 août 2005 à 09:00
Je n 'ai pas essayé de vider le presse papier (je n'en vois pas l'utilité, dans la mesure où tu viens de faire Selection.Copy, cela remplace tout ce qu'il pouvait y avoir à l'intérieur)
Donc sans le faire, j'ai juste remplacé ta ligne
Range("A" & l + 1 & ":" & "AJ" & l + 1).Select
par la ligne suivante :
Cells(CInt(l) + 1, 1).Select
Cela permet de s'affranchir de la zone sur laquelle coller (si elle n'est pas identique à celle d'origine, ça ne va pas)
Et cela semble marcher. Dis moi si c'est le cas chez toi.
cs_tilous
Messages postés3Date d'inscriptionlundi 22 août 2005StatutMembreDernière intervention 8 février 2014 23 août 2005 à 22:57
Bonjour,
Merci pour votre aide, mais j'obtiens encore l'erreur pour le collage, snif snif...
Je commence à désespérer royalement...
L'orsque je lance le code, mon fichier 2005.xls ouvre et il copie mes données à la bonne ligne, mais j'obtiens l'erreur pour le paste juste avant la sauvegarde et fermeture. Je n'y comprends rien.
Auriez-vous une idée, je pourrais vous faire parvenir mon fichier pour que vous puissiez voir ce qui ce passe.
thtdlx2
Messages postés17Date d'inscriptiondimanche 10 octobre 2004StatutMembreDernière intervention 3 juillet 2008 24 août 2005 à 11:38
Effectivement, passes moi ton fichier. Tu peux envoyer cela à thibaut.delachaux chez netcourrier.com (je ne met pas le @ volontairement pour ne pas être l'objet de spamming automatique !)