VBA copier des données dans un tableau dans un fichier fermé

Bonjour à toutes et tous,

Je dois créer un formulaire remplissable pour mes collègues et copier via une macro dans un autre fichier fermé et dans un autre dossier.

J'aimerai que les données entrées dans le fichier 1 soient copiées sur le tableau du fichier 2 sans que celui ci soit ouvert, et c'est sur ce point que j'ai besoin d'aide ^^

J'ai mis dans le fichier la macro que j'utilise actuellement, avec les deux fichiers ouverts.

Merci d'avance pour votre aide,

Cordialement

EDIT : je tiens à préciser que la feuille sera verrouillée, sauf les cellules qu'ils doivent remplir

Bonjour Alec1025 le forum
bon alors tu appelles cela une macro??? l'enregistreur de macro c'est bien, mais il faut aussi savoir ensuite rendre le code un peu plus propre.

1) Question le but exact c'est quoi??

2) De créer une ligne supplémentaire à chaque fois que tu lances la macro ??

3) De mettre à jour la ligne si elle existe déjà dans la feuille de destination??

4) La référence à prendre en compte je suppose que c'est le numéro de lot colonne B ?? de la feuille de destination .xlsx ??? et aussi B4 de la feuille Feuil2 du fichier .xlsm??

EDIT : je tiens à préciser que la feuille sera verrouillée, sauf les cellules qu'ils doivent remplir

Oui alors là tu parles de quelle feuille?? de quel fichier??

bref voilà déjà avec ces renseignements on va avancer, réponse de 2 et 3 très importante bien sur.

a+

Papou

Re Bonjour Alec1025 le forum

bon alors j'ai pour le moment fait en sorte que les ligne de la feuille Feuil2 du fichier .xlsm soient copiées dans le fichier de destination que j'ai renommé Destination.xlsx

1) tu décompresses le dossier sur ton bureau(surtout tu ne l'ouvres pas en temporaire)

2) tu ouvres le dossier Alec1025 V1

3) tu ouvres le fichier "test 1 fichier 1.xlsm"

Tu cliques sur le bouton copier et tu auras tes lignes ajoutées dans le fichier "Destination.xlsx"(pour le moment j'ai mis le fichier destination dans le même dossier que le fichier .xlsm mais on peut bien entendu le mettre ailleurs)

tu testes et tu me redis

a+

Papou

8alec1025-v1.zip (58.27 Ko)

Re Bonjour Alec1025 le forum

bon alors j'ai pour le moment fait en sorte que les ligne de la feuille Feuil2 du fichier .xlsm soient copiées dans le fichier de destination que j'ai renommé Destination.xlsx

1) tu décompresses le dossier sur ton bureau(surtout tu ne l'ouvres pas en temporaire)

2) tu ouvres le dossier Alec1025 V2

3) tu ouvres le fichier "Source.xlsm"

Tu cliques sur le bouton copier et tu auras tes lignes ajoutées dans le fichier "Destination.xlsx"(pour le moment j'ai mis le fichier destination dans le même dossier que le fichier Source.xlsm mais on peut bien entendu le mettre ailleurs)

tu testes et tu me redis

a+

Papou

PS: je n'avais pas vérifié ce que tu avais fait et il y avait des erreurs de reports voilà j'ai aussi renommé le fichier Source a +

11alec1025-v2.zip (58.08 Ko)

Bonjour Paritec,

D'abord, merci pour ta réponse !

J'avais totalement oublié que l'on pouvait attribuer les valeurs directement d'une cellule à l'autre, merci d'avoir allégé le code !

J'avais aussi oublié de renommer les feuilles importantes et de supprimer celles qui n'avaient rien a faire là, désolé.

Le but est bien de créer une ligne à chaque entrée, normalement il ne devrait pas y avoir de mise à jour de ligne nécessaire.

J'ai regardé un peu la macro, et j'ai quelque chose qui m'interroge, c'est cette ligne là :

  If IsNumeric(Feuil3.Range("B4")) And Feuil3.Range("B4") > 0 Then

Pourquoi c'est Feuil3 ? Désolé si ma question parait idiote, mais ne serait-ce pas Feuil2 ?

Merci encore pour ta réponse !

Edit : j'ai oublié, mais si dans le cas d'un nombre de lot égal à 0, comme pour une maintenance par exemple, comment je peux l'intégrer au code pour qu'il se copie quand même au tableau ? Merci !

Edit 2 : j'ai tenté quelque chose, est-ce qu'il y a moyen de l'améliorer ?

7destination.xlsx (16.04 Ko)
10source-v1.xlsm (39.65 Ko)

Bonjour à tous,

Dans VBE (faire ALT-F11) ... regarde Feuil3(Feuil2) ...

Dans le cas de ton fichier > Feuil3 = le CodeName et "Feuil2" = le Name

Toujours dans le cas de ton fichier > Feuil3.Range("A") et la même chose que Worksheets("Feuil2").Range("A2") > c'est deux façons d'accéder à la même feuille...

Quand l'on renomme les feuilles > les CodeName deviennent différent des Name ..

J'espère avoir été explicite ...

ric

Je me coucherai moins bête ce soir !!!

Merci Ric !

Bonjour à tous,

J'aimerais beaucoup plus si tu te couchais plus savant ce soir !!!

ric

Re bonjour Dann Ric le forum

Pourquoi c'est Feuil3 ? Désolé si ma question parait idiote, mais ne serait-ce pas Feuil2 ?

Bah si tu as testé et que cela a fonctionné, je pense que c'est parce que c'était bon non???

bref ric t'a expliqué le codename et le name c'est différent , mais si tu renommes un name si dans ta macro tu utilises le code name, pas de souci cela fonctionne parfaitement

Edit : j'ai oublié, mais si dans le cas d'un nombre de lot égal à 0, comme pour une maintenance par exemple, comment je peux l'intégrer au code pour qu'il se copie quand même au tableau ? Merci !

cela signifie quoi?? que si la case B4 de mémoire de la feuille Source est égale à 0, tu veux pouvoir copier quand même la ligne ????

a+

Papou

Re Bonjour Dann le forum

bon pas de réponse à ma dernière demande, alors voilà en cas de copie, si Source B4=0

24source-v2.xlsm (47.16 Ko)

a+

Papou

Rechercher des sujets similaires à "vba copier donnees tableau fichier ferme"