Bouton macro copier / coller
Bonjour à tous,
je cherche une âme charitable pour m'aider à finir ma macro
Explications:
Mes boutons sous userform sont crées et il me faudrait juste la fin du code pour pouvoir définir un poste de travail pour chaque personne
En gros je voudrais pour cliquer sur mon bouton "CONDITIONNEMENT" et sélectionner en face de chaque personne son poste pour la semaine( si possible ne devoir recliquer sur le poste systématiquement
j 'ai déjà une partie du code:
Private sub commandebutton1_click()
sheets ("PST").select
sheets("PST").range ("F3").select
End sub
Merci d'avance pour votre aide
si vous avez besoin de plus n'hésitez pas
Bonjour,
Cela fait déjà deux lignes de ton code à supprimer pour obtenir un code un minimum honorable !
Et tu baptises tes boutons curieusement... ou tu as des difficultés à reproduire les noms par défaut ?
Par ailleurs, on travaille habituellement sur Excel, et une image ça n'inspire guère...
Cordialement.
- Messages
- 2'417
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Bonjour et bon Dimanche à toutes et à tous
Coucou M.Ferrand
relatif à ce post posté hier à 22:30 https://forum.excel-pratique.com/viewtopic.php?f=2&t=103411
@Tomtomch --Pourquoi avoir créer un nouveau post, il fallait juste mettre à la suite du post ton fichier
j'avais continué à le modeler et je vois que tu as modifié super !
ce que, j'ai également remarqué :
- la date si tu changes ton planning se fausse 04.01.2016
bonne continuation
crdlt,
André
Bonjour et bon dimanche à tous
- M Ferrand, comme t'as dis André13 , j ai juste recopier son code et comme il voulait plus d'info, j ai préféré laisser tels quels!
Les noms des boutons par défauts, je ne savais pas que s'était obligatoire de changer ? Dois je le faire?
-André13, désolé je n'avais plus de réponse, et je connais pas toutes les règles à respecter désolé ...
je n'ai pas tout modifier, j'ai juste épure le userform, car je me suis dis que plusieurs poste se répéter alors pourquoi pas les regrouper dans une couleur qui sera commune à chaque groupe. après les codes sont les mêmes.
Pour la date du planning, j'ai fusionné les jours de la semaine car les participants sont sur leur poste du lundi au vendredi et que pour rentrer une attribution de poste à la semaine je trouve plus facile de cocher comme ça.
André13 et M.ferrand, je suis ouvert à toute idée qui pourrait m'aider à rendre se planning plus agréable et facile à manipuler
Ps: J ai changer le nom du fichier car j ai voulu garder l'ancien
Re,
Les noms des boutons par défauts, je ne savais pas que s'était obligatoire de changer ?
C'est conseillé, mais ça n'empêche pas de fonctionner... Et la question n'était pas là !
Tu écris :
Private sub commandebutton1_click()
Le nom par défaut c'est CommandButton1, et avec les majuscules, VBA les met automatiquement et c'est un repère ! Donc soit tu avais renommé le bouton comme tu l'as écrit, ce qui n'aurait pas été très malin, soit tu n'as pas été foutu de reproduire le nom tel qu'il est, et là ce n'est pas sérieux !
Pour le reste, je pense que c'était assez clair !
Cordialement.
Re,
Mferrand j ai écris commandbutton sur le message, je n'ai pas fais de copier coller du code
Tu m'as gentiment fais comprendre que j'ai fais faux , et que apparemment que tu es vraiment beaucoup plus doué que moi...Donc tu voudrais pas plutôt me conseiller, au lieu de mettre en avant ton savoir sans rendre service?
c'est là l'idée d'un forum non?
Alors si tu es si intelligent ....que dois je écrire entre
Commandbutton1 Et end sub ( au pardon End Sub)
Cordialement
Chaque fois que tu le recopies, ça change !
Tu sauras que le code, pour ce qui concerne le langage VB et les commandes Excel fait l'objet d'une mise en forme automatique par VBA, ce qui permet de taper du code systématiquement en minuscules, et si des majuscules n'apparaissent pas immédiatement dans les mots clés, c'est que l'on a probablement une erreur de frappe, ce qui permet de récupérer pas mal d'erreurs avant d'arriver aux tests... Et lors de la recherche d'erreurs, cela reste un indice non négligeable pour les détecter. Et si ton code est correctement et systématiquement indenté, c'est un élément primordial pour détecter toute erreur dans les instructions VBA comportant une instruction de début et une de fin, par simple coup d'oeil sur les alignements...
Et si tu soumets du code, il est important que l'on se penche sur le code réel, qui sera exécuté. Donc le copier dans un module et le coller et toujours la meilleure des choses à faire. Avant de le placer sous balises Code pour faciliter sa lecture sur le Forum.
Je ne sais pas ce que tu veux faire avec ton bouton :
En gros je voudrais pour cliquer sur mon bouton "CONDITIONNEMENT" et sélectionner en face de chaque personne son poste pour la semaine( si possible ne devoir recliquer sur le poste systématiquement
ne me fournit aucune information sur le fonctionnement de ton fichier.
Si le rôle du bouton est de placer le curseur dans la cellule F3 de la feuille PST. C'est bien Select qu'il faut et ton code est fini !
D'ailleurs à le regarder dans ton fichier on n'est pas plus avancé, tous tes boutons sélectionnent, rien de plus. Et on n'en sait pas plus... Et on ne sait pas non plus pourquoi avec chaque bouton on sélectionne une cellule qui contient l'intitulé du bouton ! Ça tient du rébus, et je ne suis pas doué pour les rébus...
Cordialement.
Re,
tu me parles de rebus, mais tu tournes autour du pot depuis un moment, enfin un poste plus explicite!
Tu sauras que le code, pour ce qui concerne le langage VB et les commandes Excel fait l'objet d'une mise en forme automatique par VBA, ce qui permet de taper du code systématiquement en minuscules, et si des majuscules n'apparaissent pas immédiatement dans les mots clés, c'est que l'on a probablement une erreur de frappe, ce qui permet de récupérer pas mal d'erreurs avant d'arriver aux tests... Et lors de la recherche d'erreurs, cela reste un indice non négligeable pour les détecter. Et si ton code est correctement et systématiquement indenté, c'est un élément primordial pour détecter toute erreur dans les instructions VBA comportant une instruction de début et une de fin, par simple coup d'oeil sur les alignements...
J'ai bien vu que ça me corriger, à chaque fois que mon code est faux. Bref, ce n'était pas l'intitulé de mon poste.
J'ai une feuille "PST" pour que le poste à définir soit lié au CommandButton1(je l'ai bien écris là..)
Si ce n'est pas select, alors je me suis dis que je devais écrire:
Private Sub
Worksheet.SelectionChange
End Sub
Mais comme j'ai cru comprendre, ma macro devrait écrire *conditionnement " directement , sans passer par la feuille "PST"..
Je vais y arriver mais si tu as la solution, je l'a veux bien
Cordialement
Désolé mais je n'ai rien compris !
On est dans un Userform, qui contient des boutons, qui ne contient d'ailleurs que des boutons !
Chacun a un intitulé qui peut passer pour un intitulé de poste, ça c'est bien possible.
Mais après ?
Pourquoi on appuierait sur le bouton ? Qu'est-ce qu'on en attend ? Et ce qu'on en attend doit se matérialiser comment ?
Je garde l'impression que l'essentiel est absent. Et au moins ce qui me permettrait de comprendre de quoi il retourne.
edit :
Mais comme j'ai cru comprendre, ma macro devrait écrire *conditionnement " directement , sans passer par la feuille "PST"..
Si ta macro doit écrire "conditionnement", il faut savoir où ?
Tu n'as peut-être pas compris, si tu dis à VBA Select tu lui demandes de se déplacer...
Si tu lui dit d'écrire, il le fait sans se déplacer !
Worksheets("Machin").Range("B12") = "conditionnement"Et si tous tes boutons doivent faire ça, écrire quelque part leur intitulé, c'est pas la peine d'écrire autant de macros que de boutons, une seul doit suffire...
Tu commences à me mettre le doute !
Le CommandButton1 servirait il seulement à valider/fermer/effacer un userform ?
Parce que là, dans mon userform, il sert à définir un "poste de travail" dans mon planning . Je veux juste pouvoir rentrer dans les cellules de ma feuille planning que j'aurais sélectionnées au hasard de mes choix, et appuyer sur ma touche de mon userform et comme par magie, elles écrivent le poste de travail.
Si ta macro doit écrire "conditionnement", il faut savoir où ?
elle ne doit écrire pas dans une seule cellule justement...
Code : Worksheets("Machin").Range("B12") = "conditionnement"
La ton code écrit que je dois écrire "conditionnement" dans une seule cellule.
Merci et si maintenant tu n' as pas compris ma demande laisse tomber je préfère voir avec quelqu'un de moins complique
- Messages
- 2'417
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Bonjour
est-ce cela approximativement cela souhaité ? même, s'il reste à rectifier certaines choses.
Comment cela fonctionne :
1/ on se place sur la feuille planning
2/ Tout d'abord on effectue 1 clic sur une cellule de l'emploi du temps de la feuille Planning, un clic droit sur (2) affiche l'usf planning,
3/ un clic sur un bouton de commande affichera dans la cellule active le contenu du bouton de commande de l'usf planning
4/ un double gauche sur la feuille Planning affichera l'usf gestion
Divers :
-l'usf FPlanning est en VbModeless ou (0), on peut naviguer sur la feuille Planning
Note supplémentaire :
A -on pourra éventuellement mettre une mise en forme conditionnelle si la cellule contient un mot spécifique le mettre en couleur adéquate
B- on peut ajouter dans le Woorkbook (pour le clic droit afin de ne pas avoir le menu de la feuille)
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Subcrdlt,
André
C'était donc ça !
Ça, j'aurais compris !
L'esthétique n'est pas encore au rendez-vous, et cela ne me paraît pas très ergonomique (Userform trop grand, non positionné en fonction de la saisie...)
Une ListBox serait sans doute plus ergonomique et plus souple d'emploi, voire simplement des listes déroulantes... et il faudrait que seuls les choix possibles s'affichent puisqu'il y a une prérépartition selon des couleurs.
Il faudrait aussi que les mentions entrent correctement dans leurs cellules de destination : revoir déjà les paramètres de dimensionnement des polices de la page, et ajuster la taille des cellules à leur contenu potentiel, quite à réduire la période calendaire couverte...
Mais ce n'est que mon avis... !
Cordialement.
Salut André 13,
Merci, c'est exactement ce que je voulais
Tu es un vrai chef, et très compréhensif, je te remercie pour ton aide. J'ai encore des idées d'évolutions sur ce fichier, dois je le poster ici ou faire d'autres sujet sur le forum?
[quote][Pour être plus clair, je voudrais pouvoir cliquer sur un poste de travail et attribuer un poste à une ou des personnes pour indiquer leur poste pour la semaine ,Je profite de vos talents pour vous demander si il est possible, dans l'userform gestion, de placer automatiquement mon participant après l'avoir placer dans ma base de donnée dans la couleur du groupe auquel il sera? Ps : a savoir que mon participants change de groupe tout les 4 mois ...il débute dans le groupe bleu, 4 mois après il sera dans le vert, et enfin les 4 derniers mois rouge.le groupe jaune lui n'évolue pas
/quote]
Je sais pas si tu as compris mon idée mais n'hésite pas si tu veux que je te d'écrive un peu plus ! Sinon merci pour ton aide tu as déjà beaucoup apporté
-Mferrand,
merci pour ton aide malgré mon agacement pour tes postes un peu trop inutiles à mon goût, tu ne ferais pas un bon formateur excel
Mais au moins tu pousses un peu à réfléchir, mais des fois c'est lourd
bonne soirée à tous
- Messages
- 2'417
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Re,
Prend note de toutes les explications de M.Ferrand et des autres Membres, moi, je ne suis qu'un novice et, c'est ici que j'append de jours en jours grâce à eux en qui je l'ai remercies toutes et tous sur ce forum Excel qui est actif par ces Membres
le fichier est encore très méli-mélo, pour ce qui est des posts futures sur ce fichier, il serait préférable de mettre à la suite je pense, comme cela on voit l'évolution et nos erreurs à ne plus commettre (mdr! j'en fais des erreurs hélas! pas pro d'Excel mais qui c'est un jour dans 20 ans)
crdlt,
André