Copier Coller une plage de cellule dans une autre feuille

Arnaud.hoarau

XLDnaute Nouveau
Bonjour,
j'aimerais copier des cellules et les coller dans une autre feuille, tout ça a l'aide d'un bouton affecter a une macro.(que j'appelle "VALIDER")
Il faudrait que les cellules ce copie une en dessous de l'autre en supprimant les espaces vides.

exemple:
-*a partir de Feuille 1 ,
-Copier (A16:A45),(B16:B45),(F16:F45) et (L46)

*Dans la feuille 2,
-coller (A16:A45) dans la cellule A3
- Coller (B16:B45) dans la cellule G3
-Coller (F16:F45) dans la cellule C3
Et concernant L46 de la feuille 1 je voudrai qu'il s'incremente à la cellule K2.

voilas pour la première étape, ensuite je voudrais que quand je clic à nouveau sur mon bouton "VALIDER" , le même processus re-démarre, mais cette foi en collant les cellules en dessous de ce qu'il y avais lors de mon premier clic sur mon bouton "Valider " et ainsi de suite.

S'il vous plait aidé moi !!!!
Merci
 

Pièces jointes

  • Classeur1.xlsx
    105.1 KB · Affichages: 61
  • Classeur1.xlsx
    105.1 KB · Affichages: 60
  • Classeur1.xlsx
    105.1 KB · Affichages: 54

Staple1600

XLDnaute Barbatruc

Staple1600

XLDnaute Barbatruc
Re : Copier Coller une plage de cellule dans une autre feuille

Re

Voir ci cela peut t'aider à avancer dans ton projet
(test OK sur mon PC en ayant pris la précaution de transformer tes cellules avec formules en valeur seule au préalable)
Code:
Sub a()
'cette macro fait cette partie de ce que tu demandais 
(voir commentaires ci-dessous)
'exemple:
'-*a partir de Feuille 1 ,
'-Copier (A16:A45),(B16:B45),(F16:F45) et (L46)
'
'*Dans la feuille 2,
'-coller (A16:A45) dans la cellule A3
'- Coller (B16:B45) dans la cellule G3
'-Coller (F16:F45) dans la cellule C3
Dim dL&, X, Y, i As Byte
X = Array("A16:A45", "B16:B45", "F16:F45")
Y = Array("A", "G", "C")
dL = Sheets("Feuil2").Cells(Rows.Count, "A").End(3).Row + 1
For i = 0 To 2
Sheets("Feuil2").Cells(dL, Y(i)).Resize(30).Value = Sheets("Feuil1").Range(X(i)).Value
Next
End Sub
 

Arnaud.hoarau

XLDnaute Nouveau
Re : Copier Coller une plage de cellule dans une autre feuille

Bonjour merci de votre réponse,
j'ai affecté ce code a mon bouton, lorsque je clic sur celui ci cela m'affiche " erreur d'exécution n 9 "
et j'ai cette partie la en jaune dans le "debogueur"

dL = Sheets("Feuil2").Cells(Rows.Count, "A").End(3).Row + 1



Ps : je fais mes tableurs en classe, un élève à du se mettre sur mon poste pour écrire des bêtises j'en suis navré.
 

Staple1600

XLDnaute Barbatruc
Re : Copier Coller une plage de cellule dans une autre feuille

Re

Ta feuille s'appelle bien Feuil2 ?
dL = Sheets("Feuil2").Cells(Rows.Count, "A").End(3).Row + 1


Ci-dessous illustration du fait que cela fonctionne sur mon PC.
(cliques sur l'image pour la voir en taille réelle)
hoarau.jpg
 
Dernière édition:

Arnaud.hoarau

XLDnaute Nouveau
Re : Copier Coller une plage de cellule dans une autre feuille

c'est bon c est parfait, je vous remercie mille fois !!!

Est ce que je peux réutiliser ce code et faire le meme processus sur une autre feuille mais en changeant les cellules ? ou il faut ré écrire en entier ?
J'ai essayé en changeant les cellules cela fonctionne mais lorsque je clic, il y a 30 fois la meme chose dans mon "Journal de vente"
Pourriez vous m'aider à nouveau ?
merci
 

Staple1600

XLDnaute Barbatruc
Re : Copier Coller une plage de cellule dans une autre feuille

Bonjour à tous

Arnaud.hoarau
il y a 30 fois la même chose dans mon "Journal de vente"
30 fois vous dites ?
Humm, voyons voir...
N'y aurait-il pas le nombre trente dans le code VBA que je t'ai proposé, par hasard ... ;)

Utiliser le code VBA que je t'ai proposé (c'est bien)
Cherche à comprendre comment il fonctionne (c'est mieux) ;)

Décortiques chaque ligne de code, et cherche à comprendre ce qu'elles font.
(Et n'oublie pas les commentaires en début de code qui sont un copier/coller de ce tu souhaites faire)
La macro en l'état fait strictement ce que tu as écrit au sens propre.
(Donc c'est peut être là que se situe le problème ;) )
 

Arnaud.hoarau

XLDnaute Nouveau
Re : Copier Coller une plage de cellule dans une autre feuille

En effet, j'avais pas vu le "30" je l'ai modifié et cela fonctionne a merveille ,encore Merci !!
J'ai encore une question ( plusieurs même lol )
j'aimerai que L46 de la (feuil1) s'additionne avec la cellule K2 (de la feuil2) toujours avec le même bouton Valider , auriez vous une solution ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Copier Coller une plage de cellule dans une autre feuille

Bonsoir à tous

Arnaud.hoarau
La première des solutions c'est de mettre tes mains dans le cambouis en faisant ce que tu souhaites obtenir tout en laissant tourner l’enregistreur de macros ;)

Voila de quoi t'exercer ;)
Code:
Sub Macro1()
Dim X
X = Sheets("Feuil1").Range("L46").Value
Sheets("Feuil1").Range("L46").FormulaLocal = "=" & X & "+Feuil2!K2"
End Sub
ou aussi avec cette syntaxe
Code:
Sub Macro2()
Dim X, Y
X = Sheets("Feuil1").Range("L46").Value
Y = Sheets("Feuil2").Range("K2").Value
Sheets("Feuil1").Range("L46") = X + Y
End Sub
 

Arnaud.hoarau

XLDnaute Nouveau
Re : Copier Coller une plage de cellule dans une autre feuille

Bonjour,

Tout d'abord encore merci de votre réponse.
Mais, j'ai essayé les deux codes cela ne fonctionne pas.
L'un me donne le double de "L46" dans la cellule "K2" (Macro1)
et l'autre n'affiche rien dans la cellule "K2"(Macro2)

Auriez vous une solution ? j'ai essayé d'y mettre les mains comme vous dites, rien à faire je trouve pas la solution.

J'aimerai coupler ce code à celui que vous m'avez donné plus haut, pour que quand je clic sur valider tout le processus s'enclenche sur un seul bouton.

Merci beaucoup

Sub copier_coller_Facture_JV()

Dim dL&, X, Y, i As Byte
X = Array("A16:A45", "B16:B45", "F16:F45")
Y = Array("A", "G", "C")
dL = Sheets("feuil2").Cells(Rows.Count, "A").End(3).Row + 1
For i = 0 To 2
Sheets("feuil2").Cells(dL, Y(i)).Resize(30).Value = Sheets("feuil1").Range(X(i)).Value
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Copier Coller une plage de cellule dans une autre feuille

Bonjour

Arnaud.hoarau
Mais, j'ai essayé les deux codes cela ne fonctionne pas.
Ne crois-tu pas que moi aussi j'ai essayé les codes avant de te les proposer ? :rolleyes:
Il serait plus exact d'écrire: je n'arrive pas à faire fonctionner tes propositions
et/ou : j'ai mal défini mon besoin et par conséquent tes deux dernières macros ne correspondent pas à ce que je souhaite.

Mais pour ce qui est de fonctionner , le code VBA fonctionne comme l'illustre la macro modifiée ci-dessous ;)
(à tester sur un classeur vierge)
Code:
Sub Macro2VERIF()
Dim X, Y
Sheets("Feuil1").Range("A1") = 5
 Sheets("Feuil2").Range("B2") = 2
X = Sheets("Feuil1").Range("A1").Value
Y = Sheets("Feuil2").Range("B2").Value
MsgBox X
MsgBox Y
Sheets("Feuil1").Range("A1") = X + Y
MsgBox Sheets("Feuil1").Range("A1")
End Sub
Code:
Sub Macro1VERIF()
Dim X
Sheets("Feuil1").Range("A1") = 5
Sheets("Feuil2").Range("B2") = 2
MsgBox Sheets("Feuil1").Range("A1")
MsgBox Sheets("Feuil2").Range("B2")
X = Sheets("Feuil1").Range("A1").Value
Sheets("Feuil1").Range("A1").FormulaLocal = "=" & X & "+Feuil2!B2"
MsgBox Sheets("Feuil1").Range("A1")
End Sub
 
Dernière édition:

Discussions similaires

Réponses
56
Affichages
1 K

Statistiques des forums

Discussions
312 684
Messages
2 090 918
Membres
104 700
dernier inscrit
jecusin