Modification de cellule via userform
Bonjour à tous,
Je reviens vers vous afin que vous puissiez m'éclairer. Dans le ficher ci-joint, je rempli les colonnes A à N avec l'UserForm "Configuration des tiroirs".
Ce que je voudrais c'est avoir un bouton qui me rouvre l'UserForm pour modifier la ligne une fois celle-ci validée.
Exemple :
Je rentre une configuration dans l'UserForm, elle s'écrit sur la ligne 7,
En cliquant sur la cellule [O7], l'UserForm avec la sélection se réouvre .
Espérant avoir été compris, bonne journée ;)
Bonjour Sotin,
Un ajout de code dans la feuille quincaillerie
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' sort si on es tpas dans la colonne O
If Intersect(Range("O:O"), Target) Is Nothing Then Exit Sub
' Sort si en dehors du tableau
If Target.Row < 7 Or Target.Row > 31 Then Exit Sub
' Si tout es ok on appelle l'USF qui affichera les données
UserForm1.Show
End Sub
Et une modification du code existant dans l'USF
Private Sub UserForm_Initialize()
'Alimentation combobox1 - modèle
Set tablo = New Collection
With Donnees
On Error Resume Next
For Each c In .ListObjects("Tab_Data").ListColumns(1).DataBodyRange
tablo.Add c.Value, CStr(c.Value)
Next c
On Error GoTo 0
For Each item In tablo
Me.ComboBox1.AddItem item
Next item
End With
ComboBox7.List = Donnees.ListObjects("Tab_Nombre").DataBodyRange.Value
ComboBox8.List = Donnees.ListObjects("Tab_Fournisseur").DataBodyRange.Value
' Définir la feuille de données
Set WS = ThisWorkbook.Sheets("Feuille_Quincaillerie")
' Vérifier la ligne
Ligne = Selection.Row
' Si une quantité existe
If WS.Range("C" & Ligne).Value <> "" Then
Me.ComboBox7.Value = WS.Cells(Ligne, 3)
Me.ComboBox1.Value = WS.Cells(Ligne, 4)
Me.ComboBox2.Value = WS.Cells(Ligne, 5)
Me.ComboBox3.Value = WS.Cells(Ligne, 6)
Me.ComboBox4.Value = WS.Cells(Ligne, 7)
Me.ComboBox5.Value = WS.Cells(Ligne, 8)
Me.ComboBox6.Value = WS.Cells(Ligne, 9)
Me.ComboBox8.Value = WS.Cells(Ligne, 14)
End If
End Sub
Avec définition des variables 1 seule fois en début de module
Option Explicit
Dim WS As Worksheet
Dim c As Range
Dim tablo As Collection
Dim item
Dim i As Byte
Dim Ligne As Long
Voici le fichier modifié
A+
Bonjour, BrunoM45
Youhouu c'est Noël avant l'heure !!! merci infiniment pour le coup de main c'est exactement ce que je souhaitais !
A +
Re-Bonjour BrunoM45,
Suite à la poursuite de la création du fichier Excel, je me suis rendu compte qu'il y'avait un petit souci ( probablement rien de grave pour un pro comme vous
Lorsque je clique au bout de la ligne, l'UserForm s'ouvre bien aucun souci. Mais lorsque je valide à nouveau, la modification vient s'ajouter en dessous de la première ligne. Ce que je voudrais c'est qu'elle vienne remplacer la première sélection. Malgré mes essais je ne parviens pas à modifier cela.
Deuxième petit souci (qui est apparu suite à l'ajout d'image), lorsque je lance la modification, l'UserForm plante. Et là, je dois bien avouer que j'ai aucune idée de quoi faire.
Par ailleurs, par rapport à ces images je n'arrive pas à obtenir totalement ce que je voudrais ! Suivant la sélection des Combobox elles se déplace correctement, cependant si je change la valeur des Combobox, la nouvelle image correspondante reste en dessous de l'ancienne et je ne peux de ce fait pas la voir ! Je pensais insérer un code qui la placerai au premier plan mais idem, malgré mes essais je ne parviens pas à modifier cela.
Et pour finir, le code pour modifier les sélections de l'UserForm il me faut le même pour le tableau se trouvant à droite (les portes relevantes). Je ne vous l'ai pas demandé car je voulais essayer d'adapter/trouver la solution moi-même d'après votre réponse mais au final mes compétences dans le domaine ne sont pas suffisamment élevées.
Auriez vous l'amabilité de me sortir de mon impasse, encore une fois ?
Très cordialement,