Bonjour à tous,
j'ai un petit soucis et j'espère bien trouver de l'aide. Merci d'avance!
Voila mon problème:
j'ai créé un formulaire dans lequel on insère les informations d'une affaire pour ensuite les enregistrer dans une feuille excel. Pour chaque nouvelle affaire on a un nom et un numéro d'affaire qui sont enregistré automatiquement à la duite de l'affaire précédente. Une affaire peut posséder plusieurs phase dont le nombre varie d'une affaire à l'autre et ses phase ont chacune des caractéristiques (comme l'avancement, le coût et autre). Les phases sont mises à jour chaque mois selon le situations et toutes ces valeurs doivent être stocker dans la même feuille (Base de donnée). Pour le moment j'arrive à enregistrer les informations de l'affaire et des phase, le problème est que j'aimerait qu'au moment ou j'ajoute une phase, q'elle apparaisse automatiquement dans un zone liste sachant que les lignes sont variables. A chaque fois que je clique sur ajouter une phase il n'y a que le dernière ligne qui s’affiche dans la liste, je sais que le problème est qu'a chaque clic ma derniere ligne est redefini, mais je ne sais pas comment le solutionner. Voici mon code, mais si quelqu'un à une meilleur méthode(optimisée), je suis preneur. Encore merci.
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 Private Sub Btn_AjouterPhase_Click() Dim DerniereLigne, NombrePhase As Integer DerniereLigne = Feuil2.Range("D" & Rows.Count).End(xlUp).Row If Feuil2.Range("E" & DerniereLigne + 1).Value = "" Then Feuil2.Range("E" & DerniereLigne + 1).Value = 1 Else NombrePhase = Feuil2.Range("E" & DerniereLigne + 1).Value + 1 End If If IsNumeric(Feuil2.Range("D" & DerniereLigne)) Then Feuil2.Range("D" & DerniereLigne + 1).Value = Feuil2.Range("D" & DerniereLigne).Value + 1 Feuil2.Range("E" & DerniereLigne + 1).Value = Txt_NomPhase.Value With List_Nom_Phase .ColumnCount = 2 .AddItem .Column(0, NombrePhase - 1) = Feuil2.Range("D" & DerniereLigne + NombrePhase).Value .Column(1, NombrePhase - 1) = Feuil2.Range("E" & DerniereLigne + NombrePhase).Value End With Txt_NomPhase.Value = "" Else Feuil2.Range("D" & DerniereLigne + 2).Value = 1 Feuil2.Range("E" & DerniereLigne + 2).Value = Txt_NomPhase.Value With List_Nom_Phase .ColumnCount = 2 .AddItem .Column(0, NombrePhase - 1) = Feuil2.Range("D" & DerniereLigne + 1 + NombrePhase).Value .Column(1, NombrePhase - 1) = Feuil2.Range("E" & DerniereLigne + 1 + NombrePhase).Value End With Txt_NomPhase.Value = "" End If End Sub
Partager