Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA transfère de données d'une feuille à une autre

sarah33

XLDnaute Junior
Bonjour le forum,

J'ai 2 feuilles:
  • Action
  • MOUVEMENT STOCKL

Nous retrouvons les mêmes données dans les 2 feuilles.
J'utilise la feuille Action pour saisir mes Commandes ou mes Ventes.
Lorsque la saisie est terminée (dans la plage jaune), j'aimerai que lorsque je clique sur un des 2 boutons (Vente/Commande), alors les données de la plage jaune viennent s'ajouter après la dernière ligne de la feuille Mouvement Stock.
Lorsque le bouton Commande est sélectionné, alors les données de la colonne (D) Quantité, se mettent dans colonne (E)de la feuille Mouvement Stock : Quantité Commandé ; et lorsque le bouton Vente est selectionné alors données de la colonne (D) Quantité vont dans la colonne (D) de Mouvement Stock : Quantité Vente.

Pourriez-vous m'aider car mes connaissances en VBA m'empechent d'aller plus loin

Merci d'avance !

Sarah
 

Pièces jointes

  • Sarah 1.xlsx
    22.1 KB · Affichages: 27
  • Sarah 1.xlsx
    22.1 KB · Affichages: 38
  • Sarah 1.xlsx
    22.1 KB · Affichages: 39

titiborregan5

XLDnaute Accro
Re : VBA transfère de données d'une feuille à une autre

Bonjour Sarah, le forum,

qu'est ce qui te bloque en VBA?
j'imagine que c'est le "écrire après la dernière ligne remplie"?
Voici comment faire en vba pour écrire dans la 1ère ligne vide; on considérera dans ton exemple que la colonne toujours remplie est la colonne B (ref):
VB:
Range("B1").end(xldown).offset(1,0) 'te permet d'écrire à la 1ère ligne vide! 
'On aurait pu partir du bas et remonter en faisant :
range("B100000").end(xlup).offset(1,0)

Le end et sa direction te renvoie sur la dernière valeur (équivaut à ctrl+ haut / bas / droite / gauche)!
Le offset(ligne, colonne) te décale du nombre indiqué (-1 en haut, 1 en bas / -1 à gauche, 1 à droite)!

En espérant que ça t'aide, le reste ne devant pas être bien compliqué!

Bon courage!

Tibo
 

FROLLINDE

XLDnaute Occasionnel
Re : VBA transfère de données d'une feuille à une autre

Bonjour, Sarah, Bonjour Forum,

Au lieu d'avoir 2 boutons, peut qu'une option de saisie Commandes ou Ventes serait plus approprié.

Ensuite dans la macro gérer conditionnellement si Commande ou Ventes.

la MACRO

Sub copieaction()
'
' Macro2 Macro
'

'
Dim nligne As Integer

Sheets("MOUVEMENT STOCK").Select
Range("B1").Select
Selection.End(xlDown).Select
nligne = ActiveCell.Row + 1

Sheets("Action").Select
Range("A6:C45").Copy

Sheets("MOUVEMENT STOCK").Select
Range("A" & nligne).Select
ActiveSheet.Paste

Sheets("Action").Select
Range("E6:H45").Copy

Sheets("MOUVEMENT STOCK").Select
Range("F" & nligne).Select
ActiveSheet.Paste


Sheets("Action").Select
Range("D645").Copy
Sheets("MOUVEMENT STOCK").Select
If Range("Action!D3").Value = "Ventes" Then
Range("D" & nligne).Select
ActiveSheet.Paste
Else
Range("E" & nligne).Select
ActiveSheet.Paste
End If
Sheets("Action").Select

End Sub


fichier joint en XLSM.

Cordialement,
 

Pièces jointes

  • Sarah 1.xlsm
    30.5 KB · Affichages: 33

sarah33

XLDnaute Junior
Re : VBA transfère de données d'une feuille à une autre

Bonjour titiborregan5,

Tout d'abord merci beaucoup pour ta réponse si rapide !

Concernant ce qui me gène en VBA, on va faire simple en disant: Tout
Plus sérieusement, je n'y connais rien, et donc j'arrive pas à créer mes propres codes, à la limite adapter une macro ou un code... mais voilà pas beaucoup plus.
Je manque aussi de méthodologie.

J'ai donc adapté ton code avec une macro, qui:
Copie la plage jaune de la feuille Action à transférer dans la feuille Mouvement Stock.

Le problème est que ça copie a partir de la bonne ligne, mais pas de la bonne colonne (B) vu que la cellule sélectionnée est en B.
Donc je me disais, éventuellement utiliser ton bout de code pour mémoriser la "dernière ligne", puis la nommée (faire une déclaration) , et après, traiter colonne par colonne?
Qu'en pensez-vous?

Traiter colonne par colonne, je pense y arriver... cependant, mémoriser la dernière ligne puis la nommée pour la réutiliser, je ne sais pas trop comment faire...

Pouvez-vous me donner un ptit coup de pouce?

Merci

Sarah
 

Pièces jointes

  • Sarah 2.xlsm
    29.4 KB · Affichages: 30

sarah33

XLDnaute Junior
Re : VBA transfère de données d'une feuille à une autre

Bonjour FROLLINDE,

Ton fichier marche à merveille je t'en remercie.
Je vais continuer mes tests et reviens vers vous si je trouve du bug !

Merci et à plus tard !!

Sarah
 

titiborregan5

XLDnaute Accro
Re : VBA transfère de données d'une feuille à une autre

Ok Sarah, je ne savais pas trop ce qui bloquait.

La macro de frollinde fait le boulot, et plutôt bien visiblement.
Elle n'est juste pas optimisée, et peut devenir très lourde en cas de données nombreuses...

Si jamais cela arrivait, reviens et on l'arrangera!
J'essaie de te faire un bout de code également dès que je peux!

A+
 

sarah33

XLDnaute Junior
Re : VBA transfère de données d'une feuille à une autre

C'est super gentil titiborregan5 !
Surtout que mon vrai fichier excel est plutot "mégalourd" car c'est pour de la gestion de stock, et on a plusieurs 10 aines de milliers d'articles....

a plus tard !

sarah
 

titiborregan5

XLDnaute Accro
Re : VBA transfère de données d'une feuille à une autre

Du coup, question:
à quoi sert la zone jaune?
On copie à chaque fois une seule ligne ou ou copie tout ce qui se trouve dans le cadre jaune (dimensions qui peuvent varier)?

et dans cette zone, ne peut-il pas y avoir de la vente et de la commande? comment traiter dans ce cas?
 
Dernière édition:

sarah33

XLDnaute Junior
Re : VBA transfère de données d'une feuille à une autre

Enfaite la zone jaune, c'était une limite que j'ai faite pour ma saisie... et donc pour envoyer les données de cette zone sur la feuille mouvement stock.

Cependant, cette zone peut varier !! donc on pourrait peut être utiliser ton bout de code: range("B100000").end(xlup).offset(1,0)
Pour récupérer la dernière ligne de la zone de saisie, et envoyer le contenue de la zone dans la mouvement de stock?

sarah
 

titiborregan5

XLDnaute Accro
Re : VBA transfère de données d'une feuille à une autre

Bien vu pour le bout de code par contre on utilisera pas le offset mais .row pour récupérer le numéro de la ligne!
J'ai rajouté une question dans le post précédent :
et dans cette zone, ne peut-il pas y avoir de la vente et de la commande? comment traiter dans ce cas?
 

titiborregan5

XLDnaute Accro
Re : VBA transfère de données d'une feuille à une autre

En pj un petit fichier, je t'ai recréé avec 2 boutons (vente et commande), dis-moi si ça correspond!

A+
 

Pièces jointes

  • Sarah 1 by titiborregan5.xlsm
    34.7 KB · Affichages: 31

sarah33

XLDnaute Junior
Re : VBA transfère de données d'une feuille à une autre

Re titiborregan5,

dsl pour le temps de réponse !!

ça à l'air de marcher super bien, je fais des tests et reviens si ça bug !!!
Sinon à bientot sur un nouveau fils (j'en ai un qui sort ds pas lontemps !!)

Sarah
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…