Mon formulaire bug et ferme Excel

Bonjour le groupe,

Depuis hier j'essaie de résoudre un problème mais en vainc

lorsque je veux ajouter un article à ma base de données, le programme bug et se ferme. je joint le fichier est ce que quelqu'un peux m'aider.

Voici le chemin,

Introduire un mouvement

introduire un mouvement stock

et Ajouter, après avoir complété le formulaire au dessus

Merci d'avance pour votre aide

Amicalement

Bruno

Bonjour Crole18 le forum

voilà tu cliques introduire un mouvement tu rempli les Textboxs en haut tu cliques ajouter

a+

Papou

4crole18-v1.xlsm (400.73 Ko)

Salut Crole18,

Salut Paritec,

le problème vient du fait que tu cherches, avec AJOUTER, à modifier la ROWSOURCE de ta ListBox = conflit!

Il te faut donc annuler ROWSOURCE et charger la ListBox "manuellement"...

Private Sub UserForm_Activate()
'
For X = 1 To 9
    Me.Controls("txtMvt" & X).Text = ""
Next
With Worksheets("Articles")
    iRow = .Range("A" & Rows.Count).End(xlUp).Row
    Me.LstArticles.List = .Range("A1:I" & iRow).Value
End With
'
End Sub

[b]Autres choses :

[/b]- pour te faciliter la vie, nomme des TextBox de façon à pouvoir utiliser leurs données dans une boucle.

Ainsi, j'ai renommé les TextBox du haut, txtArt1, txtArt2,..., celles du bas txtMvt1...

- dans la même idée, utilise directement, quand c'est possible, les données connues sans passer par l'affectation d'une variable sauf si cette variable est utilisée de nombreuses fois dans la procédure, évidemment.

Private Sub LstArticles_Click()
'
Me.TxtCbArticles.Text = CStr(Me.LstArticles.ListCount)
'
'Remplit les informations des TextBox
If Me.LstArticles.ListIndex > 0 Then
    For X = 1 To 9
        Me.Controls("txtMvt" & X).Text = Me.LstArticles.Column(X - 1, Me.LstArticles.ListIndex)
    Next
End If
'
End Sub

- tu peux adresser directement une feuille sans l'activer : suffit de la nommer dans le code...

Private Sub Cmd_ajouter_article_Click()
'
With Worksheets("Articles")
    iRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
    For X = 1 To 9
        .Cells(iRow, X) = Me.Controls("txtArt" & X).Text
    Next
End With
'
End Sub

- question données connues, sers t'en pour te faciliter la vie!

Ici, quand tu veux créer un nouvel article, le clic dans txtArt1 (Num) crée le n° et la réf sur base des données de 'ARTICLES' et te positionnes direct sur 'Conditionnement'...

Private Sub txtArt1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'
If Me.txtArt1.Text = "" Then
    With Worksheets("Articles")
        iRow = .Range("A" & Rows.Count).End(xlUp).Row
        Me.txtArt1.Text = CStr(Val(.Range("A" & iRow).Value) + 1)
        Me.txtArt2.Text = CStr(Val(.Range("B" & iRow).Value) + 1)
    End With
    Me.txtArt4.SetFocus
End If
'
End Sub

A+

Bonjour le forum,

Je tiens à vous remercier pour votre précieuse aide

et je vous souhaite une excellente journée

Amicalement

Crole18

Rechercher des sujets similaires à "mon formulaire bug ferme"