Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

UserForm de Saisie : Afficher données si fournisseur existe déjà dans la base

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...

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
 

ExcelDow

XLDnaute Occasionnel
Re : UserForm de Saisie : Afficher données si fournisseur existe déjà dans la base

Re Bonjour Lone-wolf et Joe,
Si vous me permettez, j'aimerais vous demander s'il vous plaît, si ça serais possible lors du transfert sur la feuille d'identifier dans la colonne "A" si il y a doublon ou non.
 

Joe[PT]

XLDnaute Junior
Re : UserForm de Saisie : Afficher données si fournisseur existe déjà dans la base

Re-bonjour,

Alors, j'ai "presque" le résultat recherché... !

3 problèmes au final persistent malgré mon entêtement :

1. J'arrive à saisir un fournisseur alors que j'avais oublié de rentrer un code fournisseur ! Le code doit être obligatoire et faire maximum 5 caractères alphabétiques, j'ai bricolé un bout de code qui était tellement faux qu'il plantait l'application alors je l'ai supprimé.

2. De plus, j'ai pu saisir un fournisseur qui est déjà dans la base... donc doubon, je n'arrive pas où il faut intervenir...

3. le 3e problème n'est pas grave et je vais m'en contenter parce que, pareille, je n'ai pas trouvé où il faut intervenir après plusieurs tentatives infructueuses, la combo me donne toutes les lignes de la colonne A alors que ma liste fournisseur commence à la ligne A16. Mais c'est pas grave.

Je continue à regarder et vous tiens au courant

Je vous laisse le fichier pour voir où j'en suis

Voici le fichier (qui est trop volumineux pour le mettre sur le forum...)

Bonne soirée.

Joe
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : UserForm de Saisie : Afficher données si fournisseur existe déjà dans la base

Bonsoir Joe,

Il faut pour commencer, mettre à 1 le Tag de la textbox1 qui est à 22. Il faut inscrire aussi les tag dans les contacts.

Pour voir si il y a des doublons, n'utilise pas la combo; change textbox4 par textbox2(Chez toi - Sociéte), ensuite incrit le code > Tabulation, qui vas tombé sur Société.

Enlève les frames, clic droit sur le formulaire et ajuste l'ordre de tabulation des Textbox.


A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…