message erreur macro

Linchpin

XLDnaute Nouveau
Hello tout le monde,
j ai un souci avec ma macro...qui me permet de copier des infos, d ouvrir un autre fichier et d y coller les infos tout en trouvant la derniere ligne remplie.

Or a chaque fois, apparait le message "La méthode PASTESPECIAL de l objet Range a échoué....

Or voici la macro

Public Sub TCD()
Dim chemin As String
Dim nom As String
Dim xlapp As Object
Dim xlbook As Workbook
Dim xlsheet As Worksheet
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Activate
Sheets("Feuil1").Select
Sheets("Feuil1").Range("B2", Sheets("Feuil1").Range("M2").End(xlDown)).Select
Selection.Copy
chemin = "G:\GESTION FINANCE & COMPTABILITE\Base de données\Historique Aeroports Perdus"
nom = "RECUPERE PAR MACRO"
Set xlapp = CreateObject("Excel.Application")
Set xlbook = xlapp.Workbooks.Open(chemin)
Set xlsheet = xlbook.Worksheets(nom)
xlsheet.Activate
xlsheet.Range("B3").End(xlDown).Offset(1, 0).PasteSpecial (xlPasteValues)

Set xlsheet = xlbook.Worksheets("RAPPORT")
xlsheet.PivotTables("Lost").RefreshTable

Set xlsheet = Nothing
xlbook.Save
xlbook.Close
Set xlbook = Nothing
ActiveWindow.SelectedSheets.Visible = False

End Sub

Quelqu un aurait il une idée?
Un grand merci;
Linchpin
 

Catrice

XLDnaute Barbatruc
Re : message erreur macro

Bonjour,

Ci-joint un exemple à tester.

Il y a des erreurs de syntaxe sur les chemins.

Il n'est pas necessaire d'activer et selectionner les feuilles ni les rendre visibles.

Pour le TCD, n'ayant pas le contexte à toi de réadapter.

Edit : autre version avec xlsheet

Public Sub TCD()
chemin = "C:\Historique Aeroports Perdus" 'Chemin du fichier
Classeur = "Test.xls" 'Nom du classeur
nom = "RECUPERE PAR MACRO" 'Nom de l'onglet
Set xlapp = CreateObject("Excel.Application")
Set xlbook = xlapp.Workbooks.Open(chemin & "\" & Classeur)
Set xlsheet = xlbook.Sheets(nom)
'----
Sheets("Feuil1").Range("B2", Sheets("Feuil1").Range("M2").End(xlDown)).Copy
xlsheet.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)
'----
xlbook.Sheets(nom).Visible = True
xlbook.Save
xlbook.Close
Set xlbook = Nothing
End Sub
 

Pièces jointes

  • Historique Aeroports Perdus.zip
    14.9 KB · Affichages: 25
Dernière édition:

Linchpin

XLDnaute Nouveau
Re : message erreur macro

Hello!

Merci beaucoup pour ton post. Malheuresement le message d erreur continue d apparaitre apres avoir tout bien rentré...

xlsheet.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)

Encore cette ligne qui déconne, c est à se rendre fou!

HELP!
 

Catrice

XLDnaute Barbatruc
Re : message erreur macro

Re,

As tu testé mon exemple dans le contexte ?
Le code n'a pas été modifié du tout ?
Chez moi, ca fontionne parfaitement !?

si je bricole les noms de fichier ou chemin, ca plante là ou tu dis ...
 

Catrice

XLDnaute Barbatruc
Re : message erreur macro

Re,

Peux tu donner ta version d'Excel ?

Essai comme ceci en pas pas (F8) pour voir ce qui se passe :

Public Sub TCD()
chemin = "C:\Historique Aeroports Perdus" 'Chemin du fichier
Classeur = "Test.xls" 'Nom du classeur
nom = "RECUPERE PAR MACRO" 'Nom de l'onglet
Set xlapp = CreateObject("Excel.Application")
Set xlbook = xlapp.Workbooks.Open(chemin & "\" & Classeur)
Set xlsheet = xlbook.Sheets(nom)
xlapp.Visible = True
'----
Sheets("Feuil1").Range("B2", Sheets("Feuil1").Range("M2").End(xlDown)).Copy
xlsheet.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)
'----
xlbook.Sheets(nom).Visible = True
xlbook.Save
xlbook.Close
Set xlbook = Nothing
End Sub
 

Linchpin

XLDnaute Nouveau
Re : message erreur macro

Re,
EXCEL 2000.

Incroyable, il refuse toujours de coller les valeurs... Je vais continuer encore un peu à chercher.
Un grand merci pour ton coup de main.
N hesites pas à me faire part d eventuelles astuces pour ce souci...
Thx.
 

Catrice

XLDnaute Barbatruc
Re : message erreur macro

Re,

Essaie :
xlsheet.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial (-4163)

En mode pas à pas, est ce que les données sont en mode copie ?
Y a t il les "fourmies" autour de la zone copiée ?
(en affichant la feuille)

Sous Excel 2000 la feuille doit peut-etre etre visible ...
Essaie ceci :
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Range("B2", Sheets("Feuil1").Range("M2").End(xlDown)).Copy
xlsheet.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz