XL 2010 Comment copier l’intégralité d’un tableau d’une feuille dans une autre feuille

Lynattendu

XLDnaute Junior
Bonjour,
je cherche a savoir comment je peux copier( enregistrer) un tableau et toutes les données de la feuille A sur une feuille B . Sachant que je voudrais pouvoir répéter l’enregistrement sur la feuille B en cliquant sur un bouton ‘enregistrer’ chaque fois que le tableau de la feuille A est rempli. Et en plus, j’aimerais aussi pouvoir effacer l’intérieur du tableau en cliquant sur un bouton ‘annuler’ pour pouvoir rentrer de nouvelles données dans le tableau . Si quelqu’un sait comment faire ou a une idée . Je suis preneuse. Merci d’avance.
 
Solution
Re

Chez moi, il fonctionne (et j'ai testé sur ton fichier exemple)
Et je l'ai mis dans ThisWorkBook parce que plusieurs feuilles sont concernées.

PS: Je préfère un demandeur qui pose des questions ;)
(plutôt qu'un demandeur qui ne suit pas son fil, qui ne fait pas de feedback et qui ne pose pas de questions)

Donc si tu as des questions, n'hésites pas ;)
Bonsoir, j’ai fini par trouver pourquoi ça ne fonctionnait pas . merci pour ton aide. Je vais sûrement me lancer dans un nouveau classeur. et donc pleins de nouvelles questions en vue. Merci.

Staple1600

XLDnaute Barbatruc
Re

Sans plus de détails (et sans fichier exemple fourni par le demandeur :rolleyes:)
On peut interpréter la chose comme ci-dessous
(test OK sur mon PC)
VB:
Sub copie_A_vers_B()
Dim tb 'déclaration de la variable tb
tb = Sheets(1).Cells(1).CurrentRegion 'mise en Array du tableau de la feuille 1
'copie tableau sur feuille 1 vers feuille 2
Sheets(2).Cells(Rows.Count, 1).End(3)(2).Resize(UBound(tb, 1), UBound(tb, 2)).Value = tb
'effacement sur feuille 1
Sheets(1).Cells(1).CurrentRegion.ClearContents
End Sub
 

Lynattendu

XLDnaute Junior
Re

Sans plus de détails (et sans fichier exemple fourni par le demandeur :rolleyes:)
On peut interpréter la chose comme ci-dessous
(test OK sur mon PC)
VB:
Sub copie_A_vers_B()
Dim tb 'déclaration de la variable tb
tb = Sheets(1).Cells(1).CurrentRegion 'mise en Array du tableau de la feuille 1
'copie tableau sur feuille 1 vers feuille 2
Sheets(2).Cells(Rows.Count, 1).End(3)(2).Resize(UBound(tb, 1), UBound(tb, 2)).Value = tb
'effacement sur feuille 1
Sheets(1).Cells(1).CurrentRegion.ClearContents
End Sub
Bonjour, la plage de cellule du tableau c’est A2- A31 et A-I
le tableau c’est : en B3 le numéro de la semaine / C3 à I3 ce sont les jours de la semaine
En C4 produit1/ C6 produit2/ C8 produit3 / C10 Produit4/C12 produit5 / C14 produits 6/ C16 produit7
chaque jour de la semaine le nom des produits est différents.
j’espère que c’est plus explicite. En tout cas merci pour ton aide.
 

Lynattendu

XLDnaute Junior
Re

Sans plus de détails (et sans fichier exemple fourni par le demandeur :rolleyes:)
On peut interpréter la chose comme ci-dessous
(test OK sur mon PC)
VB:
Sub copie_A_vers_B()
Dim tb 'déclaration de la variable tb
tb = Sheets(1).Cells(1).CurrentRegion 'mise en Array du tableau de la feuille 1
'copie tableau sur feuille 1 vers feuille 2
Sheets(2).Cells(Rows.Count, 1).End(3)(2).Resize(UBound(tb, 1), UBound(tb, 2)).Value = tb
'effacement sur feuille 1
Sheets(1).Cells(1).CurrentRegion.ClearContents
End Sub
Bonjour, la plage de cellule du tableau c’est A2- A31 et A-I
le tableau c’est : en B3 le numéro de la semaine / C3 à I3 ce sont les jours de la semaine
En C4 produit1/ C6 produit2/ C8 produit3 / C10 Produit4/C12 produit5 / C14 produits 6

Bonsoir le fil, Lynattendu

Lynattendu
Pourquoi ce tu as su là-bas *ajouté

point ici ne sais-tu le faire ?
;)

*: ou si tu préfères : joindre
Bonsoir très honnêtement je suis nul et je ne comprends pas Grand chose. j’ai mis ton code sur l’onglet ‘creation menu’ et sur l’onglet’ liste menu’ il ne se passe rien le tableau s’enregistre pas. Il fallait sûrement que j ‘adapté du code mais je sais pas faire. Avant de faire une bêtise j’ai tout effacer. J’ai toujours peur que mon classeur excel ne fonctionne plus. Comme j’en ai besoin et qu’il commence a prendre forme. J’ai toujours peur de faire une bêtise. Ce que je cherche a faire c’est que les menus que je crée s’enregistre sur l’onglet’ liste menu’ et grâce au numéro de la semaine je puisse les retrouverai.si tu peux m’aider ce serait vraiment sympa.
 

Pièces jointes

  • fichier-test1.xlsm
    70.7 KB · Affichages: 18

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, Lynattendu

Lynattendu
Pas d'auto-dépréciation, svp ;)

Mon précédent message voulait juste t'inviter un joindre un fichier exemple ;)
(comme tu l'as fait spontanément dans le fil que je cite)

Maintenant, qu'il est là, je vais le voir de ce pas ;)
 

Staple1600

XLDnaute Barbatruc
Re

j’ai mis ton code sur l’onglet ‘creation menu’ et sur l’onglet’ liste menu’ il ne se passe rien le tableau s’enregistre pas.
????
Je n'ai jamais écrit cette procédure
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Colonne As Object, Ligne As Object
    Set Colonne = CreateObject("Scripting.Dictionary")
    Set Ligne = CreateObject("Scripting.Dictionary")
    Colonne.Add 3, "": Colonne.Add 4, "": Colonne.Add 5, "": Colonne.Add 6, "": Colonne.Add 7, "": Colonne.Add 8, "": Colonne.Add 9, ""
    Ligne.Add 4, "": Ligne.Add 6, "": Ligne.Add 8, "": Ligne.Add 10, "": Ligne.Add 12, "": Ligne.Add 14, ""
    Ligne.Add 16, "": Ligne.Add 19, "": Ligne.Add 21, "": Ligne.Add 23, "": Ligne.Add 25, "": Ligne.Add 27, ""
    Ligne.Add 29, "": Ligne.Add 31, ""
    If Colonne.Exists(Target.Column) And Ligne.Exists(Target.Row) And Nom_Recettes_Selection <> "" Then
        Target.Value = Nom_Recettes_Selection
        Nom_Recettes_Selection = ""
        Liste_des_recettes.Activate
    End If
End Sub
(ou alors c'était durant un soirée trop arrosée ou trop enfumée ;) )
 

Lynattendu

XLDnaute Junior
Bonsoir le fil, Lynattendu

Lynattendu
Pas d'auto-dépréciation, svp ;)

Mon précédent message voulait juste t'inviter un joindre un fichier exemple ;)
(comme tu l'as fait spontanément dans le fil que je cite)

Maintenant, qu'il est là, je vais le voir de ce pas ;)
Merci. Mais tu sais J’ai jamais coder et j’essai de comprendre mais seule c’est pas facile surtout que j’ai jamais appris, je decouvre au fur et a mesure. C’est un ami qui m’a parler d’excel et dit que c’est un logiciel exceptionnel avec des capacité infini et que je pourrais faire un classeur excel pour m’aider dans mon nouveau poste . Mais quand on découvre c’est galère heureusement vous êtes sympa sur le site et beaucoup m’ont aider comme toi et c’est vraiment sympa.
 

Staple1600

XLDnaute Barbatruc
Re

Peux-tu décrire simplement ce que tu veux faire
Copier un tableau
(oui à partir de quelle feuille ? => Quel est le nom de la feuille)
Vers quelle feuille ?
(Quel est le nom de la feuille où sera copié le tableau et dans quelle cellule (son adresse) ? )
 

Lynattendu

XLDnaute Junior
Re

Peux-tu décrire simplement ce que tu veux faire
Copier un tableau
(oui à partir de quelle feuille ? => Quel est le nom de la feuille)
Vers quelle feuille ?
(Quel est le nom de la feuille où sera copié le tableau et dans quelle cellule (son adresse) ? )
Le(s) tableau(x) de la feuille ‘creation de nenu‘ que je rempli grâce à la feuille ‘ liste des recettes pioche’ j’aimerais qu’il(s) s’enregistre(nt) dans la feuille ‘liste menu’ quand je clique sur enregistre c’est pour que je puisse retrouver les menus que je crée
 

Staple1600

XLDnaute Barbatruc
Re

Copie/Colle ce code VBA dans un module standard
(et affecte le à un bouton)
VB:
Sub RecopierTableau()
Dim DerL&, rng As Range
DerL = Sheets("creation menu").Cells(Rows.Count, 1).End(3).Row
Sheets("creation menu").Range("A2:I" & DerL).Copy
Set rng = Sheets("Liste menu").Cells(Rows.Count, 1).End(3)(2)
rng.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
rng.PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End Sub
 

Lynattendu

XLDnaute Junior
Re

Copie/Colle ce code VBA dans un module standard
(et affecte le à un bouton)
VB:
Sub RecopierTableau()
Dim DerL&, rng As Range
DerL = Sheets("creation menu").Cells(Rows.Count, 1).End(3).Row
Sheets("creation menu").Range("A2:I" & DerL).Copy
Set rng = Sheets("Liste menu").Cells(Rows.Count, 1).End(3)(2)
rng.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
rng.PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End Sub
Bonjour,
merci beaucoup, c’est génial ça fonctionne. C’est trop top. Merci
 

Lynattendu

XLDnaute Junior
Bonsoir le fil, Lynattendu

Lynattendu
Je ne comprends rien aux deux derniers messages.
Alors supprimes les
Et poste en un autre qui explique clairement (avec le bon nom des feuilles) ce qui ne va lors de tests et ce que tu veux exactement faire.
Bonsoir, j’ai mis un code sur la feuille ‘ creation menu’ pour qu’en cliquant sur le bouton ’vider’ les cases rempli dans le tableau ce vide pour que je puisse le remplisse a nouveau. Hors ça ne fonctionne pas. J’ai du oublier de mettre du code ou j’ai fait une erreur ou c’est peut être tout simplement pas comme ça que ça se fait. Donc si tu pouvais jeter un œil sur le code et me dire ce qui ne va pas ce serait sympa. et si c’est possible j’aimerais que tu m’explique ou j’ai fais l’erreur Ou l’oubli dans le code pour que je comprenne Et ne le refasse plus . Merci
 

Pièces jointes

  • fichier-test2-code.xlsm
    73.4 KB · Affichages: 11

Staple1600

XLDnaute Barbatruc
Re

Ceci devrait suffire
VB:
Sub vider()
Commande.Range("B3,B4:I16,B18,B19:I31") = "" 
End Sub
Mais ici c'est la feuille dont le codename est Commande qui est traitée

Donc tu vois le changement qu'il faut effectuer pour que ce soit la feuille creation menu qui soit concernée.
 

Discussions similaires