Excel - Formule "si" copier coller cellules sur autre onglet

arouxel

Nouveau membre
Bonjour,
Je ne m'y connais pas du tout en programmation, et malgré plusieurs tentatives je n'arrive pas à faire ma macro sur Excel, pouvez-vous m'aider ?

Objectif:
A partir d'une base de donnée, répartir les références dans les bons containers en notant juste le numéro du container dans la premier case de la ligne du produit.
Copier toutes les infos produits de la ligne dans le bon container (une feuille/onglet par container).


Il faudrait traduire ces actions en code :
Name:
"Feuil1": Base
"Feuil2": Container1
"Feuil3" : Container2
"Feuil4": Container3

Prog:
Sur "Base"
Si A1=1 alors : copier B1 à M1 dans "Container1" en B20 à M20
Si A1= 2 alors : copier B1:M1 dans "Container2" en B20 à M20
Si A1=3 alors : copier B1:M1 dans"Container3" en B20 à M20

Si A2=1 alors : copier B2 à M2 dans "Container1" en B21 à M21
Si A2=2 alors : copier B1:M1 dans "Container2" en B21 à M51
Si A2=3 alors : copier B1:M1 dans "Container3" en B21 à M51

ETC..

Et je voudrais que la formule continue pour toute la colonne A et coller au fur et à mesure à partir du point de départ donné.

MERCIIIIII !
 

drul

Obscur pro du hardware
Staff
Salut, tu as un programme de base quelque chose que tu as essayé ?
On ne te pondra pas la réponse tout cuit ici, mais on peut t'aider à y arriver et à progresser
 

arouxel

Nouveau membre
Post ce que tu as et on regarde ou ça cloche.

Je n'ai plus ce que j'avais fais puisque j'ai supprimé sans enregistrer car le programme ne lançait rien. J'étais partie de l'exemple du lien que j'ai mis dans mon commentaire précédent, en changeant le nom des cellules et feuilles, au moins pour tester l'effet copier/coller, mais ça ne fonctionnait pas.
Je comprends que vous ne voulez pas faire tout le travail pour moi, simplement je n'arrive pas rien faire qui fonctionne, et c'est dans le cadre du travail, je suis donc bloquée.
 

drul

Obscur pro du hardware
Staff
Peut-être @svoglimacci passera par ici, il peut être plein de bonne volonté parfois ...
En ce qui me concerne, je n'ai pas le temps de partir de "rien" désolé.
 

svoglimacci

check memory failed but no bug detected
Salut :)
il peut être plein de bonne volonté parfois ...
Le "parfois" qui tue :D

Bon, je vais essayer de t'aider mais je vais être pourri de choses à faire dans les jours qui viennent alors je n'aurai pas trop de temps non plus :) De plus, je ne maîtrise pas la structure objet Excel (ni les objet en général) de très bonne manière donc le code final pourrait ne pas être top propre pour les puristes. Enfin, c'est surtout toi qui feras, nous sommes là pour aider, pas pour réaliser ;)

Cela parait long mais ça se lit bien par petits bouts. Pose des questions pour ce que tu ne comprends pas :)

Pour commencer, des questions (tu peux répondre juste en citant le n° de question, c'est plus facile :) ) :
1) juste pour être sûr.
Si A2=1 alors : copier B2 à M2 dans "Container1" en B21 à M21
Si A2=2 alors : copier B1:M1 dans "Container2" en B21 à M51
Si A2=3 alors : copier B1:M1 dans "Container3" en B21 à M51
Je suppose que les 1 sont en fait des 2 et les 5 sont en fait des 2 non ? logique à priori.
2) Les cases A1, A2, A3, A4... ont des contenus réellement limités à 1, 2, 3 ou est-ce que cela peut aller plus loin ?
La réponse à la 2) permet de mieux cerner ton problème parce que cela peut faire changer les choses du tout au tout.

Analyse et expression du problème
Tu dois comprendre réellement ton problème et être capable de l'expliquer en pur français, de manière structurée. Franchement, je trouve que ta première demande est une très bonne base, mais ma question 2) par exemple permet d'encore mieux expliquer. A toi de te poser d'autres questions. En tous les cas, moi je me les pose donc tu devrais te les poser ou tout au moins en avoir la réponse. Par exemple :
- est-il normal que les feuilles "container" puissent être pleines de trous (A1=1, A2=2, A1=1 fera une ligne vide dans Container1 entre la ligne 20 et la 22)
- la macro est-elle one-shot (une seule fois) ?
- si on doit l'exécuter plusieurs fois, doit-on recommencer du début (Ax) dans la mesure où Bx:Mx a pu changer ?
- si on doit l'exécuter plusieurs fois, peut-on recommencer du début (donc ré-écraser Bx1:Mx1) ?
- ...
Bref, le prescripteur (donc toi) doit se mettre à la place de la personne qui va programmer (donc toi:D ) et expliquer sans équivoque. Cela est absolument nécessaire pour réaliser un bon développement.

La macro
- Tu sais que tu peux enregistrer des macros avec ce que tu fais dans Excel. Cette méthode peut-être appliquée par tout petits bouts : enregistrer une macro qui fait "copier d'une feuille coller dans une autre" par exemple. Cela te donnera les instructions dont tu as besoin. Tu pourras bidouiller ces mini-macros pour tester des choses approchantes. Cela te permettra de découvrir et maîtriser des instructions. Pas tout bien entendu, mais un code est une succession organisée d'instructions maîtrisées.
- Des recherches internet peuvent t'apporter des réponses beaucoup plus rapidement qu'en postant ici ou ailleurs. Par exemple, pour récupérer la valeur de "B3" : la recherche Qwant (ou Google) "VBA Excel lire la valeur d'une cellule" te permettra de trouver "Cells(3,2).Value" ou "Range("B3").value" . Tu pourras alors faire une mini-macro pour tester cela, changer les valeurs, etc. Attention : n'ouvre jamais de fichier Excel trouvé sur le net, il peut contenir de mauvaises choses. Lis du code, c'est tout. De la même manière, nous lirons ton code pour t'aider, nous ne lirons pas tes fichiers Excel.

Bon, ça fait beaucoup, désolé. J'ai essayé d'être structuré mais ai pu faire des erreurs.
N'hésite pas à poser des questions.
Reviens avec une expression de besoin plus structurée, et un début de code ;)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 123
Messages
6 717 725
Membres
1 586 356
Dernier membre
TommyStam
Partager cette page
Haut