Problème d'alimentation de base de données code VBA

Bonjour à tous,

J'ai un petit souci d'alimentation de ma base de données. Ma codification VBA ne me permet pas de créé chronologiquement le numéro de la nouvelle référence.

De plus, lors de la création, la cellule prix de vente ne s'affiche en €. Avez-vous une solution SVP.

Bien à vous.

11classeur1.xlsm (52.45 Ko)

Bonjour,

A tester :

Merci pour ce test mais cela ne fonctionne pas !!

Désolé !

Qu'est ce qui ne fonctionne pas ?

Le numéro de référence ne s'affiche pas dans la BDD et le prix de vente reste sous la forme nombre standard

en fait non ! le numéro de référence est bien enregistré ainsi que le prix de vente dans le bon format, mais tout le reste n'est pas inscrit

Voici ce que fait mon code.

capture capture1

Ok je vois.

Je vais essayer d'y ajouter les autres Textbox en les identifiant correctement

J'ai oublié de mettre un contrôle sur la présence des valeurs numériques, il faut que les textbox contiennent une valeur.

Ajoutez ce code dans le userform pour contrôler la saisie des valeurs numériques :

Private Sub TextBox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        If InStr("1234567890,", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub

Ok, cependant si je veux alimenter ma BDD avec les autres textbox, dois-je utiliser ce type de codification :

ActiveCell.Value = Me.TextBox1.Value
ActiveCell.Offset(0, 1).Value = TextBox2
ActiveCell.Offset(0, 2).Value = TextBox3
ActiveCell.Offset(0, 4).Value = TextBox4
ActiveCell.Offset(0, 7).Value = TextBox5
ActiveCell.Offset(0, 8).Value = TextBox6
ActiveCell.Offset(0, 3).Value = TextBox7

Non, voir le code ci-dessous.

Il faut donner des noms explicites à vos contrôles. par exemple remplacer TextBox8 TextBoxValeur, etc...

Private Sub btnAjouter_Click()

    If TextBox8 = "" Then
       MsgBox "Saisissez la valeur !"
       Exit Sub
    End If

    Set LigneDonnees = Tab_Donnees.ListRows.Add

    With LigneDonnees
         'Affichage dans le fichier stock des infos du formulaire
         .Range(1, 1) = NouvelleReference 'Me.TextBox1.Value
         .Range(1, 2) = Me.TextBox1.Value
         .Range(1, 7) = CDbl(TextBox8)
         ' Il faudrait donner des noms explicites à vos contrôles.
     End With
     Set LigneDonnees = Nothing
     Unload Me
     MsgBox "Votre nouvel article a bien été enregistré !", vbOKOnly + vbInformation, "CONFIRMATION"
End Sub

ok !, je vais corriger les noms des texbox

je viens de faire un essai avec cette codification

ActiveCell.Value = Me.TextBox1.Value
ActiveCell.Offset(0, 1).Value = TextBox2
ActiveCell.Offset(0, 2).Value = TextBox3

cela fonctionne, je vais rajouter en effet la partie saisie obligatoire

Merci beaucoup de votre précieuse aide !!

Bonne soirée

Rechercher des sujets similaires à "probleme alimentation base donnees code vba"