[VBA] Erreur 1004

Fermé
teez - 14 mai 2009 à 11:25
Stefao Messages postés 3 Date d'inscription mardi 7 août 2012 Statut Membre Dernière intervention 22 août 2012 - 22 août 2012 à 10:29
Bonjour,

Lorsque j'applique le code d'un bouton, une erreur aparraît.

Voilà le code :


Sheets("Database").Select
Range("A5:A45").Select
Selection.Copy
Sheets("Table").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
, Transpose:=False



Où est l'erreur ?
Comment faire pour copier/coller les valeurs d'un tableau dans un autre onglet ?

9 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
14 mai 2009 à 14:03
Bonjour,

tu as choisis coller/spécial mais tu n'a rien définis
utilise ces deux lignes


....
Range("A3").Select
ActiveSheet.Paste

....
A+
0
Non, ça ne vient de là, il me dit "Select method of range class failed". J'en déduis qu'il n'aime pas que je change d'onglet pour onglet pour coller le truc, ma question est : pourquoi ? Et comment faire pour qu'il le veuille ?

(je précise que les cases à copier comportent des formules, peut-être que ça vient de là ?)
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
14 mai 2009 à 18:41
est-ce que ta feuille ne serais pas protégée?

pour t'aider à avancer.

refais juste un bout de code avec l'enregistreur
et regarde si tu as l'erreur et ce qui a changé.

A+
0
Ca me donne exactement le même code, donc le problème ne vient pas de là.
Peut-être une question de boutons de contrôle/formulaire ? (j'y connais rien... :s)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
15 mai 2009 à 13:46
Dans ce nouveau classeur je suppose que ton code fonctionne.
et que la methode copier / coller de vba ne pose pas d'erreur.
Est-ce vrai?

"Select method of range class failed"
cette erreur se produit quand on veut copier une plage de cellule et la mettre dans une plage trop petite

c'est pourquoi je disais utilise activesheet.paste qui prend la première cellule comme point de départ
et ainsi pas de risque de débordement.

J'espère que tu vas trouver parce que sans avoir soi-même l'erreur c'est difficile.
A+
0
Oui c'est ce que je pensais, mais le copier/coller est dans un onglet vide, donc pas de problèmes de place en théories... Et le activesheet.paste ne résoud rien.
Je comprends vraiment pas pourquoi il me dit qu'il manque de place alors qu'il a toute la place qu'il lui faut !

En tout cas merci pour ton aide ;)
0
Salut,

Tu as pu résoudre ton pb ?
J'ai exactement le même problème sur lequel je me casse la tête depuis le début de l'après-midi !

Merci
0
Bonjour,

Non je n'ai pas réussi à résoudre le problème, j'ai utilisé un autre bouton (formulaire) à la place.
Apparemment les boutons de contrôle ne permettent pas le changement d'onglet, donc obligé d'utiliser deux boutons différents !

Bonne chance.
0
Stefao Messages postés 3 Date d'inscription mardi 7 août 2012 Statut Membre Dernière intervention 22 août 2012 1
22 août 2012 à 10:29
J'ai eu exactement le même problème que TEEZ et j'ai trouvé un moyen de le contourner en faisant appel à une fonction.

Au lieu de lier la macro de tri directement au bouton j'ai créé une fonction "tri" et la sub reliée au bouton fait appel à cette fonction et comme ça ça marche bien

Exemple:


Public Function tri(sheet_name As String, nb_lines As Long)

Dim maplage As Range

Set maplage = ActiveWorkbook.Worksheets(sheet_name).Range(ActiveWorkbook.Worksheets(sheet_name).Cells(1, 1), ActiveWorkbook.Worksheets(sheet_name).Cells(nb_lines, 32))

ActiveWorkbook.Worksheets(sheet_name).Select
maplage.Sort Key1:=Range("L1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End Function

Sub sort_sheet1()
Call tri(Sheet1, 25)
End Sub
0