|
|
|
| [VBA]modifications de données par jc41 |
vendredi 12 janvier 2007 à 14:17:45 |
Configuration: Windows 2003 Internet Explorer 6.0
bonjour
je doute un peu que tu puisses faire ta modification avec le userform de création, de manière simple et efficace. lorsque tu crées un nouvel enregistrement, tu insères ta ligne en bas de feuille, du moins je suppose. lorsque tu modifies, tu dois remettre les données sur la même ligne. dans ce cas là tu peux peut-être modifier ta ligne en double cliquant dessus, puis ouvrir une userform avec les données de la ligne tout cela lors de l'événement before double clic, et ce sera ainsi beaucoup plus facile à gérer. si je n'ai pas bien compris, précise ton projet. toujours zen
|
bonjour
je pense que pour simplifier mon formulaire je dois rappeler toutes mes donées donc réutiliser un userform quasi identique à celui de création ? C'est tout à fait cela, le formulaire est identique, mais la fonction est complètement différente. je ne connais pas le code pour rappeler mes données dans un userform de modification, Dans la feuille concernée, tu crées cette macro : Public Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean) la valeur sel.row te donnes la ligne sur laquelle sont tes données. admettons que je saisie un nom, prénom, adresse, ville et cp donc le nom est en colonne 1, le prénom est en colonne 2,etc... Pour ramener, les données dans le formulaire tu mets : user.nom = cells(sel.row,1).value avec user.nom remplacé par ta zone de formulaire. idem pour le reste. après modification, c'est l'inverse : cells(sel.row,1).value = user.nom voilà la base et bon courage pour la réalisation. -- toujours zen
|
bonjour
j'ai une erreur de compilation qui survient dans ce cas là tu est positionné sur l'erreur et il faudrait donner la ligne de code. ce doit être là MachinesVendues = Cells(sel.Row, 1).Value "MachinesVendues" c'est le nom de ta grille (form) l'appellation de ta zone c'est quelque chose comme "Me.TxtDpt.Text " dans "Cells(sel.Row, 1).Value" le 1 désigne la colonne, mais pour que ton code te permette de déplacer tes colonnes, il faudrait nommer la colonne des noms, par ex "patro" et alors tu peux mettre "Cells(sel.Row, range("patro").column).Value" et si tu insére une colonne avant ta colonne "patro", ton code continue de fonctionner sans problème. de même Range("a65536").End(xlUp).Offset(1, 0).Value = clientconverti devient Cells(65536, Range("patro").Column).End(xlUp).Offset(1, 0).Value = clientconverti bon courage et à bientôt. toujours zen |
bonjour
Private Sub Worksheet_beforedoubleclick(ByVal sel As Range, cancel As Boolean) Me.TxtClient.Text = Cells(sel.Row, 1).Value C'est normal qu'il y ait erreur, car tu n'as pas lancé ton userform, et Me.TxtClient.Text n'est pas connu. tu dois mettre avant : grille_modifs.Show ensuite tu documentes tes zones, et ta macro est terminée. C'est la validation de la saisie de ta grille qui déclenchera la mise à jour ou l'abandon et donc tu dois avoir dans ta grille une zone qui enregistre la ligne à mettre à jour et cela peut être une zone non affichée (visible à false). @+ toujours zen |
| 23/02 10h14 | [Code PHP] Modification données (select) | Programmation | 06/07 00h12 | 9 |
| 31/05 11h39 | VBA EXCEL - données multiples listbox | Programmation | 22/11 13h53 | 7 |
| 14/02 11h38 | [PHP] Modification données Base de données | Programmation | 14/02 11h38 | 0 |
| 10/08 18h28 | VBA acces donnée sous form dans formulaire | Programmation | 10/08 18h28 | 0 |