Joe[PT]
XLDnaute Junior
Bonjour à tous,
Je viens (avec bien du mal) d'achever un UserForm qui permet de valider la saisie d'un fournisseur...
Par contre, je m'aperçois que si le fournisseur existe déjà dans la base, il le saisit une 2e fois alors qu'il serait plus judicieux d'afficher les éléments déjà saisis pour le fournisseur en question afin d'éventuellement pouvoir modifier des éléments puis valider...
Je pense qu'il faut poser une condition sur la première TextBox1 mais la syntaxe... Hum !
De plus, je m'aperçois que la ligne If .Cells(L, 17) <> ""... au lieu de me renvoyer 3% m'affiche à la validation : 300% (Personnellement, j'aimerai bien trouver des fournisseurs qui me font des remises de 300% )
En attendant vos avis, merci et bonne journée.
Joe
Je viens (avec bien du mal) d'achever un UserForm qui permet de valider la saisie d'un fournisseur...
Par contre, je m'aperçois que si le fournisseur existe déjà dans la base, il le saisit une 2e fois alors qu'il serait plus judicieux d'afficher les éléments déjà saisis pour le fournisseur en question afin d'éventuellement pouvoir modifier des éléments puis valider...
Code:
Private Sub CommandButton1_Click() 'Valider
Dim L As Long
' Si la textbox ne contient aucune valeur, alors ne pas mettre à jour (rien)
If TextBox1.Value = "" Then Unload Me: Exit Sub
With Worksheets("Fournisseurs")
L = .Cells(6000, 1).End(xlUp).Row + 1 '1ère ligne vide
For I = 1 To 19
.Cells(L, I) = Me.Controls("TextBox" & I)
Me.Controls("TextBox" & I) = ""
Next I
If .Cells(L, 9) <> "" Then .Cells(L, 9) = CDbl(.Cells(L, 9))
If .Cells(L, 10) <> "" Then .Cells(L, 10) = CDbl(.Cells(L, 10))
If .Cells(L, 11) <> "" Then .Cells(L, 11) = CDbl(.Cells(L, 11)): .Cells(L, 11).NumberFormat = "0.00 €"
If .Cells(L, 12) <> "" Then .Cells(L, 12) = CDbl(.Cells(L, 12))
If .Cells(L, 17) <> "" Then .Cells(L, 17) = CDbl(.Cells(L, 17)): .Cells(L, 17).NumberFormat = "0,00%"
' Permet d'ajuster automatiquement la largeur de la colonne R & S à son contenu
.Columns("R:S").AutoFit
End With
' Trier la liste en validant la saisie
'
Range("A16:Z1000").Select
ActiveWorkbook.Worksheets("Fournisseurs").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Fournisseurs").Sort.SortFields.Add Key:=Range( _
"A16"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Fournisseurs").Sort
.SetRange Range("A16:Z1000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A2").Select
' Repositionner le curseur en TextBox1 après validation pour une nouvelle saisie
'
TextBox1.SetFocus
End Sub
Je pense qu'il faut poser une condition sur la première TextBox1 mais la syntaxe... Hum !
De plus, je m'aperçois que la ligne If .Cells(L, 17) <> ""... au lieu de me renvoyer 3% m'affiche à la validation : 300% (Personnellement, j'aimerai bien trouver des fournisseurs qui me font des remises de 300%
En attendant vos avis, merci et bonne journée.
Joe