XL 2010 Je cherche en vba a copier coller un tableau dans une autre feuille

Lynattendu

XLDnaute Junior
Bonjour a tous,
le code que j’ai modifier pensant pouvoir l’utiliser pour copier/ coller le tableau de la feuille « creation menu » dans la feuille « Menu Mois« . ne fonctionne pas, il me met : méthode ou propriété non gérer par cet objet.
Je cherche a copier ( après l’avoir rempli a ma convenance) le tableau de la feuille « Création menu » dans la feuille « Menu Mois » et recommencer l’opération chaque fois que je clique sur le bouton « Enregistrer Mois ». Je pensais y arriver seule mais non j’ai besoin de vous.
Dans le fichier que je joins, Dans la feuille « Menu Mois » j’ai mis ce que je cherche a obtenir ( mais j’ y arrive pas) en plus après j’avais prévu de faire autre chose de plus compliquer dans la feuille « Menu Semaine ».
Si quelqu’un peut trouver ce qui ne fonctionne pas dans le code, me dire quoi faire et m’expliquer ce serait très sympa. Merci d’avance pour votre aide.
 

Pièces jointes

  • test enregistrement1.xlsm
    26.3 KB · Affichages: 19
Solution
VB:
Sub Copier_TableauSource()
    Dim DerLig As Long   'pour trouver la dernière ligne utilisée

Worksheets("Création Menu").Range("A1:I30").Copy
With Worksheets("Menu Mois")
    DerLig = .Cells(Rows.Count, "A").End(xlUp).Row + 3
    .Paste .Cells(DerLig, "A")
End With
End Sub

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Lynatendu, bonjour le forum,

la règle d'or en VBA c'est déviter autant que tu le peux les Select ( ou Activate). Il ne font que ralentir l'exécution du code et sont source de nombreux plantages.
Essaie comme ça :

VB:
Sub Copier_TableauSource()
Dim OS As Worksheet
Dim OD As Worksheet
Dim DEST As Range

Set OS = Worksheets("Création Menu")
Set OD = Worksheets("Menu Mois")
Set DEST = IIf(OD.Range("A1").Value = "", OD.Range("A1"), OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(2, 0))
OS.Range("A1:I30").Copy DEST
End Sub
 

Lynattendu

XLDnaute Junior
Bonjour Lynatendu, bonjour le forum,

la règle d'or en VBA c'est déviter autant que tu le peux les Select ( ou Activate). Il ne font que ralentir l'exécution du code et sont source de nombreux plantages.
Essaie comme ça :

VB:
Sub Copier_TableauSource()
Dim OS As Worksheet
Dim OD As Worksheet
Dim DEST As Range

Set OS = Worksheets("Création Menu")
Set OD = Worksheets("Menu Mois")
Set DEST = IIf(OD.Range("A1").Value = "", OD.Range("A1"), OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(2, 0))
OS.Range("A1:I30").Copy DEST
End Sub
Merci beaucoup pour les explications et le code fonctionne super bien merci.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Une variante possible (à utiliser que si on veut copier uniquement les valeurs seules, sans le format)
VB:
Sub CopierSansCopier()
Dim fS As Worksheet, fD As Worksheet
Set fS = Worksheets("Création Menu"): Set fD = Worksheets("Menu Mois")
fD.Cells(Rows.Count, 1).End(3)(2).Resize(30, 8) = fS.[A1:I30].Value
End Sub
 

Discussions similaires

Réponses
56
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 069
Messages
2 085 040
Membres
102 763
dernier inscrit
NICO26