XL 2013 vba excel

eldinal

XLDnaute Nouveau
bonjour quelqu'un pour m'aider en vba excel s'il vous plait

je travail sur une appli vba actuellement et mon code de creation d'article marche pas pour tous les sections j'ai un code pour envoir les données dans deux tableau différents

mais l'application se plante parfois










Option Explicit
Dim lo As ListObject

Private Sub CommandButton1_Click()
Dim i As Integer
Dim M As Integer
Dim s As String
Dim N As String
Dim W As String
If TextBox2.Value = "" Or TextBox3.Value = "" Or ComboBox1.Value = "" Or TextBox8.Value = "" Then

MsgBox "Tous les champs sont obligatoires"
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox1.Value = ""
TextBox8.Value = ""


Else
i = 1

ThisWorkbook.Worksheets("article section electricité").Activate
M = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To M
If ThisWorkbook.Worksheets("article section electricité").Range("B" & i).Value = TextBox2.Value Then
MsgBox "Article existe deja"
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox1.Value = ""
TextBox8.Value = ""
Exit Sub
End If
Next
While ThisWorkbook.Worksheets("article section electricité").Range("A" & i).Value <> ""
i = i + 1
Wend
ThisWorkbook.Worksheets("article section electricité").Range("A" & i).Value = TextBox2.Value
ThisWorkbook.Worksheets("article section electricité").Range("B" & i).Value = TextBox3.Value
ThisWorkbook.Worksheets("article section electricité").Range("C" & i).Value = ComboBox1.Value
ThisWorkbook.Worksheets("article section electricité").Range("D" & i).Value = TextBox8.Value

N = 1
While ThisWorkbook.Worksheets("Stock electricité").Range("A" & i).Value <> ""
N = i + 1
Wend
ThisWorkbook.Worksheets("Stock electricité").Range("A" & i).Value = TextBox2.Value
ThisWorkbook.Worksheets("Stock electricité").Range("B" & i).Value = TextBox3.Value
ThisWorkbook.Worksheets("Stock electricité").Range("C" & i).Value = 0
ThisWorkbook.Worksheets("Stock electricité").Range("D" & i).Value = TextBox8.Value
ThisWorkbook.Worksheets("Stock electricité").Range("E" & i).Value = "=D:D*C:C"

W = 1
While ThisWorkbook.Worksheets("Stock total").Range("A" & i).Value <> ""
W = i + 1
Wend
ThisWorkbook.Worksheets("Stock total").Range("A" & i).Value = TextBox2.Value
ThisWorkbook.Worksheets("Stock total").Range("B" & i).Value = TextBox3.Value
ThisWorkbook.Worksheets("Stock total").Range("C" & i).Value = 0
ThisWorkbook.Worksheets("Stock total").Range("D" & i).Value = TextBox8.Value
ThisWorkbook.Worksheets("Stock total").Range("E" & i).Value = "=D:D*C:C"

On Error GoTo GestionErreur
' Votre code ici
Exit Sub

GestionErreur:
' Code de gestion d'erreur
MsgBox "Une erreur s'est produite : " & Err.Description


MsgBox "Article Bien enregistrer !"
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox1.Value = ""
TextBox8.Value = ""


End If

End Sub

Private Sub CommandButton3_Click()
Unload Me
End Sub

Private Sub CommandButton5_Click()
creationfournisseur.Show
End Sub

Private Sub TextBox3_AfterUpdate()
Dim i As Integer
Dim M As Integer

i = 1
Set lo = Worksheets("Suppliers").Range("Tableau6").ListObject
Me.ComboBox1.List = lo.ListColumns(1).DataBodyRange.Value

End Sub

Private Sub UserForm_Initialize()
Dim i As Integer
Dim M As Integer
i = 1
ThisWorkbook.Worksheets("article section electricité").Activate
M = Cells(Rows.Count, "A").End(xlUp).Row
While ThisWorkbook.Worksheets("article section electricité").Range("A" & i).Value <> ""
i = i + 1
Wend
TextBox2.Value = " AC000" & i
End Sub
 

Pièces jointes

  • Projet de gestion de stock MPR.xlsm
    444.3 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Eldinal, et bienvenu sur XLD,
Déjà, utilisez la balise </> pour le code c'est plus lisible. ( à droite de l'icone GIF )
Ensuite quelque chose me trouble dans :
VB:
N = 1
While ThisWorkbook.Worksheets("Stock electricité").Range("A" & i).Value <> ""
N = i + 1
Wend

ou encore :

W = 1
While ThisWorkbook.Worksheets("Stock total").Range("A" & i).Value <> ""
W = i + 1
Wend
Dans les deux cas, vous incrémentez N et W mais votre Range est indicé sur "i". Comment sortez vous de ces boucles ? .
J'aurais plutôt vu :
Code:
N = 1
While ThisWorkbook.Worksheets("Stock electricité").Range("A" & N).Value <> ""
N = N + 1
Wend

W = 1
While ThisWorkbook.Worksheets("Stock total").Range("A" & W).Value <> ""
W = W + 1
Wend
 

eldinal

XLDnaute Nouveau
Bonjour Eldinal, et bienvenu sur XLD,
Déjà, utilisez la balise </> pour le code c'est plus lisible. ( à droite de l'icone GIF )
Ensuite quelque chose me trouble dans :
VB:
N = 1
While ThisWorkbook.Worksheets("Stock electricité").Range("A" & i).Value <> ""
N = i + 1
Wend

ou encore :

W = 1
While ThisWorkbook.Worksheets("Stock total").Range("A" & i).Value <> ""
W = i + 1
Wend
Dans les deux cas, vous incrémentez N et W mais votre Range est indicé sur "i". Comment sortez vous de ces boucles ? .
J'aurais plutôt vu :
Code:
N = 1
While ThisWorkbook.Worksheets("Stock electricité").Range("A" & N).Value <> ""
N = N + 1
Wend

W = 1
While ThisWorkbook.Worksheets("Stock total").Range("A" & W).Value <> ""
W = W + 1
Wend
Déjà, utilisez la balise </> pour le code c'est plus lisible. ( à droite de l'icone GIF )

pouvez vous me donner un exemple de comment utiliser cette balise là ??
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
pouvez vous me donner un exemple de comment utiliser cette balise là ??
1699446854419.png

affiche la valeur d'une colonne A dans textbox1 en fonction de la valeur du listbox1 choisi dans colonne B
Ô, grand amateur d'USF, ( je n'ai jamais vu autant d'USF dans un fichier :) ) dites au moins dans quel USF, quel listbox, quel textbox vous voulez faire l'opération.
En PJ, un ex : vous choissisez le nom et il renvoie le prénom, avec :
VB:
Init usf :
Sub GoUSF()
UserForm1.ComboBox1.List = [A1:A20].Value
UserForm1.Show
End Sub
Code Valider:
Private Sub CommandButton1_Click()
Nom = UserForm1.ComboBox1.Value
Ligne = Application.Match(Nom, [A1:A20], 0)
UserForm1.TextBox1.Value = Cells(Ligne, "B")
End Sub
 

Pièces jointes

  • ExUSF.xlsm
    14.5 KB · Affichages: 5

eldinal

XLDnaute Nouveau
Re,

Regarde la pièce jointe 1183170

Ô, grand amateur d'USF, ( je n'ai jamais vu autant d'USF dans un fichier :) ) dites au moins dans quel USF, quel listbox, quel textbox vous voulez faire l'opération.
En PJ, un ex : vous choissisez le nom et il renvoie le prénom, avec :
VB:
Init usf :
Sub GoUSF()
UserForm1.ComboBox1.List = [A1:A20].Value
UserForm1.Show
End Sub
Code Valider:
Private Sub CommandButton1_Click()
Nom = UserForm1.ComboBox1.Value
Ligne = Application.Match(Nom, [A1:A20], 0)
UserForm1.TextBox1.Value = Cells(Ligne, "B")
End Sub
cela ne fonctionne pas pour moi


Private Sub ComboBox2_Change()
Dim Nom As String
Dim Ligne As Variant
Nom = Entreedepiece1.ComboBox2.Value
Ligne = Application.Match(Nom, Worksheets("article section peinture").UsedRange.Rows(2).Value, 0)
Entreedepiece1.TextBox8.Value = Cells(Ligne, "D")
End Sub




voici mon code pour recuperer les données du combobox

Private Sub UserForm_Initialize()
Dim i As Integer
Dim M As Integer
i = 1
Set lo1 = Worksheets("article section peinture").Range("Tableau5").ListObject
Me.ComboBox2.List = lo1.ListColumns(2).DataBodyRange.Value


End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
1- Quitte à me répéter, pensez aux contributeurs qui essaient de vous lire.
Déjà, utilisez la balise </> pour le code c'est plus lisible. ( à droite de l'icone GIF )
2-
dites au moins dans quel USF, quel listbox, quel textbox vous voulez faire l'opération.
3-
Est ce que ça marche dans ma PJ ? Si oui, c'est lié à votre contexte.
4-
Pourquoi cherchez vous sur une ligne ( UsedRange.Rows(2) ) et non sur une colonne ?
( en supposant que Entreedepiece1.ComboBox2 soit une référence ou un nom d'article )
Comme je n'ai guère envie de plonger dans votre multitude d'USF, essayez cette PJ sur la feuille article section peinture, avec :
VB:
Sub essai()
Dim Nom As String, Ligne As Variant
Nom = InputBox("Référence : ")
Ligne = Application.Match(Nom, Worksheets("article section peinture").[A:A], 0)
MsgBox "Reference : " & Nom & Chr(10) & Chr(10) & "PU             :     " & Cells(Ligne, "D")
End Sub
La recherche s'effectue sur la colonne A.
 

Pièces jointes

  • Projet de gestion de stock MPR (1).xlsm
    362.1 KB · Affichages: 6

Statistiques des forums

Discussions
312 207
Messages
2 086 248
Membres
103 164
dernier inscrit
axelheili2