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

  • Initiateur de la discussion Initiateur de la discussion Lynattendu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
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
 
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
 
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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour