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,

Rechercher des sujets similaires à "modification via userform"