Bonjour le forum,
Je vous explique d'abord mon fichier
J'ai 1 USF avec 1 ListView, 1 ComboBox et 9 TextBox.
Un double clic sur un département m'ouvre l'USF avec dans la listView tous les noms qui font partie du département.
En sélectionnent une ligne dans la listView je peux modifier, supprimer le contenu des TexBoxs et en sélectionnent une ligne vide je peux ajouter un nouveau nom pour mon département.
Je sauvegarde mes données à l'aide du bouton "SAUVEGARDE"

Mon problème:
Mon fichier est partager avec des collaborateurs et certain préfère travailler avec l'aide de l'USF et d'autre préfèrerais travailler directement sur la feuille qui est actuellement masquer.
J'aimerais afficher ma feuille et changer l'orientation de ma sauvegarde qui est en colonne pour la passer en ligne pour une meilleure utilisation.
Et aussi si cela est possible, quand je rentre des données dans mes TextBoxs je voudrais que celles-ci s'enregistrent automatiquement
sans être obliger de cliquez sur le bouton "SAUVEGARDER".

Ma nouvelle destination
pour le 1er département: B4-J4
pour le 2ème département: K4-S4
et ainsi de suite…

Mon code actuel
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
 'SAUVEGARDE'
Private Sub CommandButton2_Click()
With Application
        .Calculation = xlManual
        .MaxChange = 0.001
    End With
    ActiveWorkbook.PrecisionAsDisplayed = False
 
' Modifier dans la listview
Dim I As Integer
Dim J As Integer
 
  I = Me.TextBox10
   Me.ListView1.ListItems(I).Text = Me.TextBox1
  For J = 1 To Me.ListView1.ColumnHeaders.Count - 1
    Me.ListView1.ListItems(I).ListSubItems(J).Text = Me.Controls("Textbox" & J + 1)
  Next J
 
 
' Sauvegarder
Dim Lg As Long
Dim Ws As Worksheet
 
  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Set Ws = Sheets("Liste")
  Lg = Me.ComboBox1.Column(1)
  Application.ScreenUpdating = False
  With Me.ListView1
    For I = 1 To .ListItems.Count
      Ws.Cells(Lg, "B") = .ListItems(I)
      Ws.Cells(Lg, "C") = .ListItems(I).ListSubItems(1)
      Ws.Cells(Lg, "D") = .ListItems(I).ListSubItems(2)
      Ws.Cells(Lg, "E") = .ListItems(I).ListSubItems(3)
      Ws.Cells(Lg, "F") = .ListItems(I).ListSubItems(4)
      Ws.Cells(Lg, "G") = .ListItems(I).ListSubItems(5)
      Ws.Cells(Lg, "H") = .ListItems(I).ListSubItems(6)
      Ws.Cells(Lg, "I") = .ListItems(I).ListSubItems(7)
      Ws.Cells(Lg, "J") = .ListItems(I).ListSubItems(8)
      Lg = Lg + 1
    Next I
  End With
With Application
        .Calculation = xlAutomatic
        .MaxChange = 0.001
    End With
    ActiveWorkbook.PrecisionAsDisplayed = False
End Sub
 
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim I As Integer
Dim J As Integer
 
  I = Me.ListView1.SelectedItem.Index
  Me.TextBox1 = Me.ListView1.ListItems(I).Text
  For J = 1 To Me.ListView1.ColumnHeaders.Count - 1
    Me.Controls("Textbox" & J + 1) = ListView1.ListItems(I).ListSubItems(J).Text
  Next J
  Me.TextBox10 = I                 ' Sauvegarde de la ligne sélectionnée
End Sub
 
Private Sub UserForm_Initialize()
Dim Lg As Long
Dim Ws As Worksheet
Dim J As Long
 
  Set Ws = Sheets("Liste")
 
  With Me.ListView1
  'Titres des colonnes
  With .ColumnHeaders
    .Clear
    'Ajout des colonnes
    .Add , , "Code", 25, lvwColumnLeft
    .Add , , "Noms", 155, lvwColumnCenter
    .Add , , "Kg", 60, lvwColumnCenter
    .Add , , "PU", 40, lvwColumnCenter
    .Add , , "Condit.", 50, lvwColumnCenter
    .Add , , "Nombre", 50, lvwColumnCenter
    .Add , , "Nombre TT", 32, lvwColumnCenter
    .Add , , "Lieu Dest.", 32, lvwColumnCenter
    .Add , , "Total envoi", 32, lvwColumnCenter
  End With
    .View = lvwReport                                                    
    .Gridlines = True  
    .FullRowSelect = True       
    .LabelEdit = lvwManual          
  End With
 
  Me.TextBox10.Visible = False
  Me.TextBox10 = ""
 
  Init = True
  With Me.ComboBox1
    .ColumnCount = 2
    .ColumnWidths = "-1;0"
    For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
      .Value = Ws.Range("A" & J)
      If .ListIndex = -1 Then
        .AddItem Ws.Range("A" & J)
        .List(.ListCount - 1, 1) = J
      End If
    Next J
    .ListIndex = -1
    Init = False
    .Value = ActiveCell
  End With
 
'SpinButton1.Max = Application.CountA
End Sub
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Stéphanois78