Bonjour à tous,
Je viens à nouveau sur le forum car je rencontre un problème lié à l'utilisation d'userform.
En effet, je possède un fichier dans lequel j'utilise un Userform composé deux deux combobox liées permettant le trie par catégories et sous-catégories.
Lorsque je lance l'userform, pas de soucis le tout marche au poil. Cependant, lorsque je l'utilise à plusieurs reprises ou bien après un certain laps de temps Excel crash .......
Je ne vois pas d'où cela peut provenir.
Voici le code des boutons de l'UF :
Option Explicit
Dim Ws As Worksheet
Private Sub ComboBox1_Change()
' Catégorie
Dim J As Long
Dim Colonne As Integer
Me.ComboBox2.Clear
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Colonne = Me.ComboBox1.ListIndex + 2
For J = 3 To Ws.Cells(Rows.Count, Colonne).End(xlUp).Row
Me.ComboBox2.AddItem Ws.Cells(J, Colonne)
Next J
End Sub
Private Sub ComboBox2_Change()
' Sous catégorie
Me.TextBox1 = ""
If Me.ComboBox2.ListIndex = -1 Then Exit Sub
Me.TextBox1 = Me.ComboBox2
End Sub
Private Sub CommandButton1_Click()
' Valider
Dim selection As Range
Set selection = Application.InputBox("Sélectionnez la cellule où vous désirez inserer le matériel ", Type:=8)
If Me.ComboBox2.ListIndex = -1 Then Exit Sub
selection = Me.TextBox1
End Sub
Private Sub CommandButton2_Click()
' Annulez
Unload Me
End Sub
Private Sub CommandButton3_Click()
'S'assurer que l'user possede toute les infos
Dim verif As String
verif = MsgBox("Pour ajouter du matériel vous devez avoir connaissance :" & Chr(10) & Chr(10) & "- Du prix d'un poste" & Chr(10) & "- De la consomation en fuel par poste (si le matériel en nécessite)" & Chr(10) & Chr(10) & "Possédez-vous ces deux infomations ?", vbYesNo, "Important")
If verif = vbNo Then Exit Sub
' ajouter_mat Macro
Sheets("Matériel").Select
Rows("283:284").Select
selection.Copy
Rows("288:288").Select
selection.Insert Shift:=xlDown
' Nom du mat
Dim nommer As String
nommer = InputBox("Saisir la Désignation du matériel à ajouter", "nouveau") 'La variable reçoit la valeur entrée dans l'InputBox
Range("B288") = nommer
Range("B289") = nommer
' Prix du mat pour un poste
Dim prix As String
prix = InputBox("Saisir le prix pour un poste (sans unité)", "nouveau") 'La variable reçoit la valeur entrée dans l'InputBox
Range("D288") = prix
' Conso fuel en litre
Dim fuel As String
fuel = InputBox("Saisir la consomation de fuel pour un poste (sans unité)" & Chr(10) & Chr(10) & Chr(10) & "NOTA: Si le matériel n'est pas concerné laissez le champ vide et validez)", "nouveau") 'La variable reçoit la valeur entrée dans l'InputBox
Range("I288") = fuel
' Insertion dans la BDD
Sheets("Datas").Range("L" & Rows.Count).End(xlUp).Offset(1, 0) = nommer
Sheets("planning").Select
End Sub
Private Sub UserForm_Initialize()
Dim I As Integer
Set Ws = Sheets("Datas")
With Me.ComboBox1
For I = 2 To Ws.Range("B2").End(xlToRight).Column
.AddItem Ws.Cells(2, I)
Next I
End With
End Sub
En PJ la structure de l'UF
Merci par avance et bonne journée.