Macro copier coller d'un fichier excel vers .

Fermé
gazoline11 - 12 févr. 2010 à 13:17
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 16 févr. 2010 à 22:02
Bonjour,

Je souhaiterai faire une macro :
- qui copie les valeurs du fichier "CA" de la page "FACT" de la plage de cellule A16 à A29 (mais si certaines cellules sont vides, copier que les cellules remplies) et les coller dans un autre fichier "STOCK" dans la feuille "Ventes" et sur la ligne C2 et en suivant C3 / C4.
Mais si la ligne C2 est remplie, copier les infos sur la ligne suivant.

- cette macro doit aussi copier la cellule en valeur B10 de la feuille FACT du fichier "CA" vers la cellule B2 du fichier "STOCK" de la feuille "Ventes" si elle est vide

- cette macro doit aussi copier la cellule en valeur G9 de la feuille FACT du fichier "CA" vers la cellule A2 du fichier "STOCK" de la feuille "Ventes" si elle est vide

Pour être plus claire, il faut qu'une fois ma facture faite dans le fichier "CA" sur la feuille "FACT", la macro copie la date de la facture (en G9), le numéro de la facture (en B10) et les articles facturés (plage A16 à A29) sur le fichier STOCK respectivement en A2, B2, et C/D/E/F/G2 du fichier STOCK dans la feuilles "Ventes".
Je vous mets les liens de mes 2 tableaux pou plus de compréhension.
https://www.cjoint.com/?cmnqq5OY45
https://www.cjoint.com/?cmnrw0sIuG

PS: est ce que les 2 fichiers excel doivent être ouverts pour que la macro fonctionnent?

Merci de vos réponses,

Marie
A voir également:

2 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
12 févr. 2010 à 21:54
Bonsoir,
Pour commencer, ce que tu demandes est possible.
Par contre, j'aurais besoin de précisions :
- sur la ligne C2 et en suivant C3 / C4 : tu veux dire C2 et en suivant D2, E2, ...
- si j'ai bien compris, lorsque tu parles de A2, B2, C2, ... du classeur STOCK, tu parles de la première ligne vide. par contre, est-ce que tu colles tes données ou est-ce que tu les insères ? En d'autres termes, que fais-tu des données présentes en C3, C4, C5, F12 et F14 de ton classeur STOCK ?
- tu ne copies que la date, pas le lieu.

Pour ta question, les classeurs n'ont pas besoin d'être ouverts, ils peuvent l'être par macro. Je pense que le fichier qui contiendra la macro sera le fichier CA et le fichier STOCK sera ouvert uniquement pour enregistrer. Si tu veux, au moment d'enregistrer, une fen^tre peut apparaître pour demander à l'utilisateur dans quel fichier il veut stocker les valeurs.

0
Bonsoir,

Merci de votre réponse, et je vous donne mes réponses à mon tour:
- sur la ligne C2 et en suivant (il s'agit bien de D2, E2, ... )
- pour les cellules A2, B2, C2, on peut simplement les coller (il ne faut pas tenir compte des valeurs saisies en C3,C4,C5,F12et F14: c'était juste pour tester une formule; donc je dois les supprimer).
- je copie uniquement la date (pas besoin du lieu, mais le lieu est insérer en Format de cellule personnalisée) donc si on copie en valeur, il n'y aura pas de pb.

Au moment d'enregistrer, ça serait effectivement très bien qu'une fenêtre apparaîsse pour demander à l'utilisateur dans quel fichier il veut stocker les valeurs.

@ bientôt

Marie
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289 > gazoline11
13 févr. 2010 à 14:41
Bonjour gazoline11,
Merci pour tes réponses. Avant de me lancer, voici comment je vois la chose :
- je nomme les différentes plages de données source et destination ; donc par exemple j'utiliserai dans le code la cellule nommée Num_facture plutôt que la cellule B10, tu pourras plus facilement modifier ta mise en page par la suite sans avoir à reprendre tout le code.
- concernant le fichier d'enregistrement, il y a plusieurs possibilités : par exemple, lorsqu'on clic sur le bouton Enregistrer en bas de ta facture, on ouvre la fenêtre enregistrer sous en pointant par défaut sur le dernier utilisé (on laisse la liberté à l'utilisateur de changer ou non). Une autre possibilité serait d'avoir deux boutons Enregistrer et Enregistrer sous. Le premier enregistre dans le dernier fichier utilisé, le second laisse l'utilisateur choisir.

Pour les cellules déjà dans remplies dans le classeur stock, est-ce que tu veux garder le total des produits achetés ?


Qu'en penses-tu ? Si tu as d'autres idées, n'hésite pas.

0
Bonjour,

- Je suis OK pour les noms des plages de cellule.
- le mieux serait d'ouvrir la fenêtre enregistrer sous en pointant par défaut sur le dernier utilisé

Pour les cellules déjà dans remplies dans le classeur stock, est-ce que tu veux garder le total des produits achetés ? non, il s'agissait d'un exemple mais je dois remplir manuellement le tableau avec des vrais valeurs.


Voilà

merci encore!!!

Marie
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
14 févr. 2010 à 10:55
Bonjour gazoline11,

Voici un premier jet de la macro. Merci de me faire tes remarques.
http://www.cijoint.fr/cjlink.php?file=cj201002/cijdG3RT1w.xls
http://www.cijoint.fr/cjlink.php?file=cj201002/cijrih1m0y.xls

J'ai mis des commentaires dans le code de la macro, si tu as des questions, n'hésite pas.
0
gazoline11 > Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013
15 févr. 2010 à 19:52
Bonsoir Gord21,

J'ai bien reçu ta macro mais je ne pourrai la tester que Vendredi sur le vrai fichier.

J'ai essayé avec ceux que j'ai, et effectivement ça fonctionne mais j'ai qd meme remarqué un petit défaut: quand ça enregistre sur le fichier STOCK, ç marche mais si je fais une autre facture juste après et que je réenregistre: il y a un souci car le fichier STOCK est déjà ouvert. A la limite, ça serait bien que ça s'enregistre sur le fichier STOCK et puis que ça le referme en enregistrant les données... Faut voir

Je te te tiens au courant ce week end ou avant si je peux.

En tous les cas, 1000 MERCIS

@ bientot

Marie
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289 > gazoline11
15 févr. 2010 à 19:58
Bonsoir,
Je regarderai d'où peux venir le problème mais normalement, le fichier stock est fermé à la fin de l'enregistrement.

J'essaie de te régler le problème pour vendredi.

@+
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289 > gazoline11
16 févr. 2010 à 22:02
Bonsoir,
Je pense avoir réglé le problème.
http://www.cijoint.fr/cjlink.php?file=cj201002/cijQIobLOm.xls

Pour détailler un peu, pour que la macro se déroule correctement, il faut que tes fichiers contiennent six noms de cellules/plages :
L'onglet FACT doit contenir les noms de cellules :
- CA_Date_facture : Date de la facture
- CA_Num_facture : Numéro de la facture
- CA_Code_produit : Plages des codes produits
L'onglet STOCK doit contenir les noms de cellules :
- ST_Date_facture : Cellule en-tête des dates de factures
- ST_Num_facture : Cellule en-tête des numéros de factures
- ST_Code_produit : Première cellule en-tête des codes produits

Si tu as des questions, n'hésite pas.
@+
0