Copier des données d'un onglet à un autre

Résolu/Fermé
Morgan67700 Messages postés 30 Date d'inscription lundi 8 décembre 2014 Statut Membre Dernière intervention 17 avril 2018 - 8 déc. 2014 à 20:21
Morgan67700 Messages postés 30 Date d'inscription lundi 8 décembre 2014 Statut Membre Dernière intervention 17 avril 2018 - 10 déc. 2014 à 00:55
Bonjour,
Je vais essayer de vous décrire mon problème que je rencontre en ce moment sachant que je suis débutant en vba sur excel.
Je suis en train de faire un fichier excel qui est composée d'une interface principale qui me permet de sélectionner une étape de production de mon choix (par exemple : soudure, pliage, tournage, etc).
Quand je clique sur une de ces étapes, j'arrive sur la feuille correspondante où l'on peut saisir des données de production (dimensions du brut, paramètres d'usinage, etc) qui vont influer dans des calculs de temps.
Là où j'ai un peu de mal c'est quand je souhaite appuyer sur un dernier bouton (Ajouter) qui envoie le contenu de certaines cellules comme les résultats aux calculs et l'intitulé de l'opération (par exemple : OP 10 : Découpe laser temps alloué de 5 min, OP 20 : Soudure temps alloué de 25 min) dans une dernière feuille de synthèse qui regroupe toutes les opérations.
Et donc en appuyant sur ce bouton les résultats et intitulés se rangent dans la fiche de synthèse dans une colonne et dans l'ordre croissant des opérations (OP 10 ensuite OP 20, ensuite OP 30...). L'idéal serait de tous les ajouter à la suite sans devoir sélectionner manuellement les cellules destinées à être remplis. C'est la seule idée que j'ai car les étapes de productions peuvent varier, elles ne sont jamais dans le même ordre ou ne demandent pas les mêmes étapes.
Une idée de vba?
J'espère être compréhensible. Je vous remercie d'avance pour votre aide.
A voir également:

1 réponse

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
9 déc. 2014 à 12:30
Bonjour,

Ton explication est longue, mais pas claire.
On ne peut pas te donner de code VBA (déterministe) avec ce texte. Je me demande même pourquoi il faudrait du VBA (j'ai l'impression que si la feuille de synthèse contient toutes les opérations possibles, on peut obtenir par formule les durées de chaque tâche et qu'il n'y a plus qu'à filtrer les durées non nulles).
Peux-tu nous envoyer le fichier via https://www.cjoint.com/ ?

A+
0
Morgan67700 Messages postés 30 Date d'inscription lundi 8 décembre 2014 Statut Membre Dernière intervention 17 avril 2018 1
9 déc. 2014 à 15:20
Bonjour,
Merci d'avoir répondu. J'ai mis sur cjoint une partie de mon problème sur excel https://www.cjoint.com/?3LjovHM67mY
Alors en résumé j'aimerais envoyer les données déterminées (résultats de calculs, numéro et détails de l'opération) dans la fiche synthèse à partir de la page active en essayant de ranger les lignes de donnée dans l'ordre croissant des opérations, même si on ne les ajoute pas dans l'ordre.
Merci
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
9 déc. 2014 à 15:54
Re,

Tes boucles For sont codées étrangement. Bon, je conviens que ça marche, mais normalement on définit un booléen qui passe à vrai si l'un des champs est vide plutôt que d'activer le nouvel onglet à chaque boucle (même si ça n'apparaît pas).
Pour ce que tu cherches à faire, j'utiliserais le code généré quand tu fais une opération de tri :
    With ActiveWorkbook.Worksheets("Synthèse").Sort
        .SetRange Range("A11:D14")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Tu peux aussi forcer à saisir les opérations dans le bon ordre...
Toutefois, je vois qu'un UserForm1 vide traîne. Je pense que c'est plus simple pour l'utilisateur de visualiser toutes les étapes. Dans le même UserForm, je ferais saisir dans un premier cadre les infos générales (celles de ton onglet Menu) puis toutes les opérations dans l'ordre chronologique.

A+
0
Morgan67700 Messages postés 30 Date d'inscription lundi 8 décembre 2014 Statut Membre Dernière intervention 17 avril 2018 1
Modifié par Morgan67700 le 9/12/2014 à 18:44
Re,
Oui j'avoue j'ai un peu bidouiller les boucles For ce qui confirme bien que je suis novice dans le vba :) Je ne vois pas pas trop où dois-je mettre ce tri. Dans la feuille "synthèse" qui se trouve dans les objets microsoft excel du vba?
Pour forcer à saisir les opérations dans le bon ordre ce n'est pas évident car dans la partie que j'ai envoyé, il n'y a que deux fiches de soudure mais autrement il y a une 15aine de possibilité comme tournage, fraisage, pliage, découpage, rectification, peinture, montage... ça peut aller loin et les ordres ne sont pas les mêmes selon les pièces qu'on veut obtenir...
Pour l'UserForm je vais essayer ça me parait plus juste mais par contre plus difficile à mettre en place. J'avaisi vite abandonné la chose.
Si jamais il y avait un petit problème pour les 2 fiches soudure j'ai remis la maj:
https://www.cjoint.com/?3LjsZEe5rLH

merci
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
9 déc. 2014 à 19:32
Le tri ? Dans le module 1, comme tu as fait pour le reste de ton code.

Forcer à saisir dans le bon ordre est compliqué ? Quelqu'un qui sait fabriquer tes objets sait dans quel ordre on fait les opérations. Si la saisie peut être faite comme un mode d'emploi, ou une recette de cuisine, dans l'ordre.
Je ne suis pas fan des clics à droite à gauche, je vais essayer de te préparer quelque chose
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
9 déc. 2014 à 20:44
Cadeau : https://www.cjoint.com/?DLjuYSR5QSj
Clique sur le bouton AJOUT.
0