Bonjour à tous,
J'aimerai modifier ma macro pour que lorsque je clic sur une des ligne, le userform se lance et me permette de modifier la ligne de produit, pour que la date de modification se mette à jour.
Comment faire?
Merci
Bonjour à tous,
J'aimerai modifier ma macro pour que lorsque je clic sur une des ligne, le userform se lance et me permette de modifier la ligne de produit, pour que la date de modification se mette à jour.
Comment faire?
Merci
Bonjour,
si ton problème c'est lancer une procédure sur double-clic voir : http://silkyroad.developpez.com/VBA/...Feuille/#LII-B
Mon probleme c'est plutot de récupérer les données de la ligne sélectionnée et que la date se modifie lorsque je valide
montre ton code d'ouverture Userform ... et mise à jour des champs.. cela tu as bien déjà du le faire ( utilise le paramètre Target de ta fonction événementielle)
Bonjour
dans le sub workbook doubleclic
il faut juste que appele une function qui récupère les instruction de la ligne selectionner, ou alors tu appel ton USF et tu met la fonction dedan
sa donne un truc du genre :PS : se code ne marchera surement pas, le but étant que tu comprenne se que tu doit faire et que tu l'adapte a ton besoin, par contre coter syntaxe je pense pas m'être trompé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function recup () dim ligne as integer dim colonne as integer colonne = 1 ligne = selection.row 'si tu veu la colonne tu fais la meme mais avec .columns contenu_a = cells(ligne,colonne) end function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 Option Explicit 'Bouton QUITTER Private Sub CommandButton1_Click() Unload Me End Sub Private Sub CommandButton2_Click() Application.ScreenUpdating = False Worksheets("Feuil1").Activate Worksheets("Feuil1").Unprotect Dim L As Integer Dim Ligne As Long 'Ajout ou modification d'une ligne d'enregistrement With ThisWorkbook.Sheets(1) If Modification Then Ligne = ActiveCell.Row Else L = Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1 End If Range("B" & L).Value = ComboBox1 Range("C" & L).Value = TextBox1 Range("D" & L).Value = TextBox2 If CheckBox1.Value = True Then Range("A" & L).Value = "x" Else Range("A" & L).Value = "" Range("F" & L).Value = Now 'filtre Columns("A:F").Select ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B2:B496") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("C2:C496") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Feuil1").Sort .SetRange Range("A1:F496") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("A1").Select Worksheets("Feuil1").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingColumns:=True, AllowFormattingRows:=True End With Unload Me End Sub '///ajout et modif Private Sub UserForm_Initialize() Dim Ws As Worksheet Dim R As Range Dim C As Range Dim i As Integer Dim Coll As New Collection Dim Ligne As Long '--- Me.StartUpPosition = 2 '--- La bonne feuille et la bonne plage --- Set Ws = Sheets("Feuil1") Set R = Ws.Range("B2:B" & Ws.Range("B65536").End(xlUp).Row) '--- Enumère chaque cellule de la plage et les --- '--- place dans une collection (sans doublon) --- On Error Resume Next For Each C In R Coll.Add C, C Next C On Error GoTo 0 '--- Remplit la ComboBox --- For i = 1 To Coll.Count ComboBox1.AddItem Coll(i) Next i End Sub
c'est bien gentil mais ou est le code qui fait l'objet de ta question ? je ne vois pas de procédure événementielle Worksheet_BeforeDoubleClick !
Partager