Validation necessaire apres saisie

J

jetronic

Guest
Bonjour,

Voila j'ai un petit soucis avec VBA et Excel. Je vais essayer de m'expliquer.
En gros j'essai de gerer un stock, donc j'ain créé une Userform de saisie pour les nouvelles entrées. Puis un bouton me permet d'ajouter une nouvelle ligne (ref produit, date, quantité ...) a la fin d'une feuille excel.

La rotine est la suivante :

Private Sub OK_Click()

LastLine = Sh_Entrees.UsedRange.Rows.Count + 1

' Inventaire en ROUGE
If NoFac = "Inventaire" Then Rows(LastLine).Font.ColorIndex = 3

' Correction en VERT
If NoFac = "Correction" Then Rows(LastLine).Font.ColorIndex = 10

Sh_Entrees.Cells(LastLine, 1).Value = Date_Entree
Sh_Entrees.Cells(LastLine, 2).Value = Fournisseur
Sh_Entrees.Cells(LastLine, 3).Value = NoFac
Sh_Entrees.Cells(LastLine, 4).Value = Entree
Sh_Entrees.Cells(LastLine, 5).Value = Compte
Sh_Entrees.Cells(LastLine, 6).Value = Ref
Sh_Entrees.Cells(LastLine, 7).Value = Designation
Sh_Entrees.Cells(LastLine, 8).Value = Famille
Sh_Entrees.Cells(LastLine, 9).Value = SousFamille

Entree = ""
Ref = ""
Designation = ""
Famille = ""
SousFamille = ""
Compte = ""

End Sub

Mon probleme :
j'utilise les colonnes date et quantité pour gérer mon stock en fonction des departs de marchandise. Mais ces valeurs récupérées par la UserForm necessitent que j'intervienne manuellement dans chacune des cellules pour les valider sinon il semblerait que les chiffres ou les dates rentrées ne soient pas pris en compte. Donc je selectionne la cellule nouvellement remplie, je clique sur la barre des formule, appuie sur Enter et la ca marche : la date qui etait a droite dans la cellule, passe a gauche et la quantité permet de faire des sommes automatiques.

Vous avez saisi mon souci ? Pas tres clair peut etre ...

Bon au moins j'aurai essayé, merci d'vance pour votre aide.

Cordialement,
jetronic
 
J

jetronic

Guest
Voila j'espere que tu pourras m'eclairer.

Au fait raccouci macro = Ctrl+@!#$+S ...

De plus peux tu me dire pourquoi je ne peux pas, par exemple dans la feuille STOCK, afficher uniquement les compte vente (CPT_VEN) commencant par 707 ou egal a 707* ? ?

Merci d'avance de ton aide,

jetronic
 

Pièces jointes

  • StocksVBA.zip
    18.9 KB · Affichages: 37
T

teddy

Guest
Ouf ça y est !!!!!!!!

Pour la date:
Sh_Entrees.Cells(LastLine, 1).Value = Format(Date_Entree, "dd/mm/yyyy")
Sh_Entrees.Cells(LastLine, 1).HorizontalAlignment = xlHAlignRight

Pour la quantité:
Sh_Entrees.Cells(LastLine, 4).Value = Val(Entree)

Pour tes comptes vente:
ce sont des nombres, pour ceux commençant par 707 il faut indiquer 707000

Petit bonus pour alléger ton code:
userform1.show sans la ligne load
unload userform1 sans la ligne hide

Voila et maintenant bon appétit :eek:))

@+
Teddy
 
J

jetronic

Guest
Et un autre petit soucis ... désolé :

Quand pour la date je rentre 01/12/04 il me formate ca en 12/01/04 !! Inversion du mois et de l'année, bizarre non ?

Ceci en utilsant bien ta formule : Format(Date_Entree, "dd/mm/yyyy").
 
T

teddy

Guest
Bonjour,

Pour la date essaye "mm/dd/yy", c'est le problème date format français et format anglo-saxon.

Pour ton tri, lorsqu'il marche c'est que le format est "générique" c'est à dire proche de texte (d'ailleur tes nombres sont cadrés à gauche) et dans l'autre cas ce sont des nombres.
En texte 7071 est après 7070999 alors qu'en nombre c'est le contraire CQFD

@+
Teddy
 
T

teddy

Guest
"Je m'étonne juste qu'un tri " égal à 707*" ne marche pas sur les chiffres comme sur le texte"

C'est juste de l'informatique de base, la façon dont sont "codés" les éléments en binaire.
Si tu veux approfondir, je te laisse le soin de chercher. :eek:))

@+
Teddy
 

Statistiques des forums

Discussions
312 450
Messages
2 088 511
Membres
103 873
dernier inscrit
Sabin