[VBA] Erreur 1004

teez -  
Stefao Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   295
 
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
teez
 
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   Statut Membre Dernière intervention   295
 
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
teez
 
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   Statut Membre Dernière intervention   295
 
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
teez
 
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
likma14
 
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
teez
 
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   Statut Membre Dernière intervention   1
 
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