Macro pour modifier un champ spécifique
Vaellia
Messages postés
9
Statut
Membre
-
Vaellia Messages postés 9 Statut Membre -
Vaellia Messages postés 9 Statut Membre -
Bonjour à tous !
Bon je m'explique car le titre de mon sujet n'est pas très évocateur, et comme des illustrations valent mieux qu'un long texte, voici 2 captures d'écran.
http://img15.hostingpics.net/pics/236371Sanstitre1.png
http://img15.hostingpics.net/pics/892699Sanstitre.png
J'aimerai créer un bouton qui copierai les information de la capture 1, trouverai, par rapport au nom (ici test4) la ligne dans le tableau de la capture 2, et colle les informations rentré au préalable dans la capture 1. (Ça servirai a modifier le profil d'un salarié)
La première capture serait l'interface sur laquelle l'utilisateur travaillerai et la capture 2 serai la base de donnée.
J'espère avoir été clair, c'est pas évident à expliquer ^^
Merci d'avance.
Bon je m'explique car le titre de mon sujet n'est pas très évocateur, et comme des illustrations valent mieux qu'un long texte, voici 2 captures d'écran.
http://img15.hostingpics.net/pics/236371Sanstitre1.png
http://img15.hostingpics.net/pics/892699Sanstitre.png
J'aimerai créer un bouton qui copierai les information de la capture 1, trouverai, par rapport au nom (ici test4) la ligne dans le tableau de la capture 2, et colle les informations rentré au préalable dans la capture 1. (Ça servirai a modifier le profil d'un salarié)
La première capture serait l'interface sur laquelle l'utilisateur travaillerai et la capture 2 serai la base de donnée.
J'espère avoir été clair, c'est pas évident à expliquer ^^
Merci d'avance.
4 réponses
-
ci joint proposition
https://www.cjoint.com/?3EokxXjXjfF
Cendant il y a beaucoup d'erreurs de conception: du fait que l'on fait une recherche de modification sur l'identité, une orthographe à modifier sera considérée comme un nouvel embauché et la macro indiquera "inconnu"
il aurait fallu prendre comme point de recherche le matricule identifiant. de plus il est mal placé dans la liste et devrait être en colonne A (simplification notamment avec identités homonymes - il est interdit d'utiliser le N° insse comme identifiant). dommage car on aurait une base de données utile pour beaucoup d'utilisation: publipostage, paies , etc.
edit: il y a des macros dans le module "modification" et dans le mdul feuille "modifier_salarié" Michel-
Bonjour, je suis impressionné par votre rapidité !
J'avais prévu le "défaut de conception" . C'est pour cela que quand je modifie un salarié, la macro copie le nom du salarié et le colle 2 fois dans l'onglet "modifier", une fois qui sera masqué dans une ligne et les rechercheV se feront a partir de lui, et une fois en dessous, là où il est écrit "Nom et Prénom" qui pourra être modifié en cas de mauvaise orthographe.
Pour le matricule, j'y ai pensé aussi mais je ne savais pas les conséquences, en matière de rechercheV : par exemple,dans une paie, je ferai une liste où l'utilisateur choisira le salarié, donc la colonne B, il me sera impossible dans ce cas de faire une rechercheV et d'afficher le matricule comme il sera en colonne A (Et si je dis pas de bêtises la rechercheV s'effectue que sur la droite)
Je vais étudier votre macro, je préférai vous répondre avant, merci beaucoup ! -
Je viens de regarder tout ça de plus prêt. Ça à l'aire de très bien fonctionné ! Bien que je ne comprenne rien à vos macros. Vous avez pu constater que les autres macro son du type "débrouillardise" ^^
En revanche, pourriez vous m'expliquer l'utilité de la macro modifier ? Elle servirai a changer d'onglet ?
En tout cas encore merci pour tout le travail effectué ! -
la macro "modifier" envoie dans la liste des salariés toutes les données du formulaire, modifiées ou non
Mais tout se passe au départ dans le module feuille7
worksheet_change est une procédure événementielle qui se déclenche quand on valide une donnée dans une cellule (target) ici K17
ci dessous une autre version à mon avis plus simple à comprendre et tout aussi efficaceSub Modifier()
Dim Cptr As Byte, Adresse As String
For Cptr = 1 To 15
Adresse = Choose(Cptr, "U17", "AA17", "K19", "K21", "Z19", "Z21", "K23", "O23", _
"Z23", "K25", "K27", "N27", "W27", "Z27", "K29")
With Sheets("Modifier_salarié")
.Range(Adresse) = Sheets("Liste_salariés").Cells(Lig, Cptr + 1)
End With
Next
End Sub
style "débroullardise"
on est tous passer par là! :o)
peut-^tre je modifierai "valider salarié" qui ressemblerait à la macro "modifier"
J'y vas car j'ai encore droit au number One du top 50 de la chorale occitane "Ch'uis pas mariée avec un ordinateur"
Pôvre de moi -
-
Voici donc ma question :
Est-ce qu'à partir de la macro ci dessous, on peut faire la même chose pour supprimer et ajouter un salarié ? Car si vous avez regarder mes macros, quand j'ajoute, je copie et colle chacune des donnée une par une, ce qui fait mouliner le PC alors que la votre fait tout instantanément !
Sub valider_modif()
Dim Agent As String, Cptr As Byte, Adresse As String
Agent = Sheets("Modifier_salarié").Range("K15")
'cherche l'agent dans la liste
With Sheets("liste_salariés")
Lig = .Columns("A").Find(Agent, .Range("A999")).Row
'inscrit les données
For Cptr = 1 To 16
Adresse = Choose(Cptr, "K17", "U17", "AA17", "K19", "K21", "Z19", "Z21", "K23", "O23", _
"Z23", "K25", "K27", "N27", "W27", "Z27", "K29")
.Cells(Lig, Cptr) = Sheets("Modifier_salarié").Range(Adresse)
Next
End With
NB : J'ai repris mon fichier excel avec vos macro en modifiant quelques trucs (non pas que les votres n'étaient pas bonne, je ne suis même pas compétant pour juger, mais si je devais les modifier à l'avenir, il fallait que je comprenne ^^)
https://www.cjoint.com/c/EEou16YJU4i
-
-
bonjour,
Les photos ne servent à rien puisqu'elle nous obligent à refaire manuellement le classeur pour proposer une solution!
donc merci de
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente
-
Bonjour Michel,
Tout d'abord merci de m'avoir répondu si rapidement.
Voici donc le lien : https://www.cjoint.com/c/EEnmYzioTUx
Les onglets concernés sont "modifier_salarié" et "liste_salarié".
Vous pouvez aussi consulter la macro "ajouter_salarié" pour voir comment je m'y suis pris pour ajouter un salarié à la base, vous comprendrez de cette façon ce que je veux faire exactement.
NB : Je suis au courant que ma rechercheV de l'onglet "modifier_salarié" débloque quand j'ajoute un salarié, ça sera modifié une fois ce "problème" résolu
Merci d'avance. -
impossible de passer d'une feuille à l'autre pour connaitre le fichier