VBA : renvoyer à une cellule
Bonjour à tous,
Je vais essayer d'être le plus clair possible même si je l'admets je suis un grand débutant.
J'ai un problème sur Vba : j'aimerais créer une base de données qui permet de gérer un petit stock très simplement (entrée sortie), puis avoir un second onglet qui permet une information sur un produit. (Objectif terminale permettre à des élèves d'avoir au moins une vidéo et un cours pour expliquer chaque outils).
Tout fonctionne sur excel, mais maintenant j'aimerais rendre la base excel inaccessible en ayant seulement une interface VBA.
Je ne sais pas si cela change quelque chose, mais l'ensemble devrait être piloté par douchette lecteur de QR code (pour le moment sous excel ça ne change rien).
Le VBA que j'aimerais le faire fonctionner comme excel : une fois que j'aurai remplis "le nom et prénom", "code article", "quantités", et appuyer sur entrée ou sortie il remettrait à zéros ces 3 cases de manière à pouvoir les remplir à nouveau indéfiniment.
Je joins une image de ce que je voudrais arriver à faire sous VBA (voir userform1) mais je suis bloqué pour le moment par mon niveau : comment renvoyer simplement en vba à une case excel (voir image).
Ma deuxième question est la suivante dans VBA (userform1): comment faire passer "automatiquement"(avec la touche entrée) une fois remplis la case "nom et prénom" pour arriver dans "code article" et identiquement à quantités.
Enfin est-il possible de dédoubler le bouton "mise à jour stock" en deux (un bouton entrée qui ajoute un + devant la formule et un bouton sortie qui ajoute un "-" devant la formule)
En vous remerciant par avance de votre temps consacrés.
En attente de vous relire.
Flygc
Bonjour
Je t'ai fait les premières lignes, dans ton bouton entrée :
Private Sub CommandButton1_Click()
With Sheets("Saisie")
.Range("A2").Value = TextBox1.Value
.Range("B2").Value = TextBox2.Value
.Range("D2").Value = TextBox3.Value
End With
End SubPar contre il faut avant de rentre que tu contrôles la cohérence des champs saisis, style Nom en texte, quantité numérique etc...
pour le nom tu peux faire un évènementKeypress sur ton textbox
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("1234567890", Chr(KeyAscii)) <> 0 Then KeyAscii = 0: Beep
End SubPour la quantité (numérique,
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("1234567890", Chr(KeyAscii)) = 0 Then KeyAscii = 0: Beep
End SubEtc...
Pour la deuxième question tu as la propriété Tabindex que tu peux mettre à 0 pour le premier champ, à 1 pour le suivant et ainsi de suite, en faisant tabulation tu iras aux champs suivants
Commence déjà un peu
Dis-moi
[/code]
Merci patty 5046
Je crois que c'est la première fois que je fait quelque chose sans message d'erreur
Même tabindex (enfin je crois)
Quelque notion que je n'ai pas encore tout à fait résolu :
Comment aller à la ligne sur excel après chaque donnés entré(nom, code article, quantités) ? Pour le moment je valide mais rien n'est validé en arrière plan (voir image stylos noir).
Comment pour la commandbbutton 2 (sortie) dire que je veux le signe "-" (moins) avant la case "A2" "B2" "D2"
voici le code en question.
Private Sub CommandButton2_Click()
With Sheets("Saisie")
.Range("A2").Value = TextBox1.Value
.Range("B2").Value = TextBox2.Value
.Range("D2").Value = TextBox3.Value
End With
End SubJe vous joins également le nouveau fichier
merci d'avance
flygc
Re
Private Sub CommandButton1_Click()
With Sheets("Saisie")
lig = Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("A" & lig).Value = TextBox1.Value
.Range("B" & lig).Value = TextBox2.Value
.Range("D" & lig).Value = TextBox3.Value
.Range("I" & lig).Value = TextBox4.Value
End With
End Sub
Private Sub CommandButton2_Click()
With Sheets("Saisie")
lig = Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("A" & lig).Value = TextBox1.Value
.Range("B" & lig).Value = TextBox2.Value
.Range("D" & lig).Value = TextBox3.Value * -1
End With
End SubTu peux je pense avec cet exemple continuer à remplir tout seul les autres champs ??
Quant à ton stock, tu as mis une formule .... je suis nulle en formule, désolée
A+
Re merci
Je modifie avec tes donnés
Je vais essayer.
Merci beaucoup
À+