Enregistrer le format d'une valeur textbox en monétaire

gbstyle

XLDnaute Occasionnel
Je viens de faire unnouveau test en partant d'un TBLSuiviCommande vierge
J'ai réussis à passer 4 articles sur la commande C00001
Par contre des que j'ai selectionner un fournisseur différent et que j'ai voulu créer la C00002
ca ne fonctionne pas
 

gbstyle

XLDnaute Occasionnel
Encore mieux je suis partis d'une base vierge j'ai crée consécutivement 3 commande sur 3 fournisseur différent des articles
Tout à était mémorisé.
J'ai sauvegardé, j'ai réouvert ma base et je me suis dis tient je rajoute un article sur la 2ème commande et bim ca plante.
J'ai la sensation que ca marche pour une première utilisation mais des que je veux modifier la plage commande ca plante
 

Dranreb

XLDnaute Barbatruc
Au fait on n'a essayé, dans le test Microsoft, que l'écriture dans la ligne qui suit le tableau, alors que le classeur d'application marche toujours avec des ajouts de membres aux collections ListRows. Mais c'est décourageant d'essayer: on a le sentiment que ça marchera toujours aussi…
 

gbstyle

XLDnaute Occasionnel
Donc si je comprend bien tu m'explique qu'il faudrait qu'on essaye de faires des ajouts de lignes et non pas par ajout de membre en collection listRows

Le problème est lié à la fermeture de l'userform et a sa réouverture, car je ne peux plus modifier les commande si ce n'est en supprimant une ligne pour en rajouter une

C'est à s'arracher les cheveux cette histoire :/
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Dans le classeur d'application ? Mais on a déjà essayé, ça fait pareil.
C'est dans le classeur test qu'on a pas essayé de faire comme dans le classeur d'application. Mais comme dit…
Je suis d'accord pour cette auto-violence capillaire
 

gbstyle

XLDnaute Occasionnel
Pour l'instant tout les essais que j'ai effectué depuis ce matin avec les commentaire que je t'apporte sont fait a partir de ce code :
VB:
Private Sub CBnValiderC_Click()
If LCouC = 0 Then ReDim TVLC(1 To 1, 1 To 11)

TVLC(1, 4) = TVLF(1, 2)
TVLC(1, 2) = ValeurTBx(Me.TBxCmdDate, vbDate)
TVLC(1, 3) = Me.TBxCmdEnregistrepar.Text
TVLC(1, 5) = Me.CBxDelaislivraison.Text
TVLC(1, 6) = ValeurTBx(Me.TBxMontant, vbCurrency)
TVLC(1, 7) = ValeurTBx(Me.TBxCmddatelivraisonestime, vbDate)
TVLC(1, 8) = Me.CBxRefArticle.Text
TVLC(1, 9) = Me.CBxDsgnArticle.Text
TVLC(1, 10) = ValeurTBx(Me.TBxCmdQtecmd, vbDouble)
TVLC(1, 11) = ValeurTBx(Me.TBxPrixUnitHT, vbCurrency)

If LCouC = 0 Then
    CLsC.ValeursVers TVLC
    MsgBox "ClsC.Plgtablo: " & CLsA.PlgTablo.Rows.Count & " lignes, Adresse=" _
       & CLsC.PlgTablo.Address(External:=True), vbInformation, "Débogage"
    CLsC.Lignes.Add.Range.Resize(, 11).Value = TVLC
    'Dim LRs As ListRows, LRw As ListRow, Rng As Range 'essais pour chanter la ligne CLsC.Lignes.Add.Range.resize(,11).value=TVLC
    'Set LRs = CLsC.Lignes
    'Set LRw = LRs.Add
    'Set Rng = LRw.Range
    'Rng.Resize(, 11).Value = TVLC
    CLsC.Actualiser
    Rem. Refaire un Dictionary ? Refiltrer quelque chose ? On verra !
Else
  
    CLsC.Lignes(LCouC).Range.Resize(, 11).Value = TVLC '11=nombre de colonnes contenant des constantes
  
    End If
End Sub
Et meme résultat avec ceci aux niveau des manipulation
VB:
Private Sub CBnValiderC_Click()
If LCouC = 0 Then ReDim TVLC(1 To 1, 1 To 11)

TVLC(1, 4) = TVLF(1, 2)
TVLC(1, 2) = ValeurTBx(Me.TBxCmdDate, vbDate)
TVLC(1, 3) = Me.TBxCmdEnregistrepar.Text
TVLC(1, 5) = Me.CBxDelaislivraison.Text
TVLC(1, 6) = ValeurTBx(Me.TBxMontant, vbCurrency)
TVLC(1, 7) = ValeurTBx(Me.TBxCmddatelivraisonestime, vbDate)
TVLC(1, 8) = Me.CBxRefArticle.Text
TVLC(1, 9) = Me.CBxDsgnArticle.Text
TVLC(1, 10) = ValeurTBx(Me.TBxCmdQtecmd, vbDouble)
TVLC(1, 11) = ValeurTBx(Me.TBxPrixUnitHT, vbCurrency)

If LCouC = 0 Then
    CLsC.ValeursVers TVLC
    MsgBox "ClsC.Plgtablo: " & CLsA.PlgTablo.Rows.Count & " lignes, Adresse=" _
       & CLsC.PlgTablo.Address(External:=True), vbInformation, "Débogage"
    'CLsC.Lignes.Add.Range.Resize(, 11).Value = TVLC
    Dim LRs As ListRows, LRw As ListRow, Rng As Range 'essais pour chanter la ligne
    Set LRs = CLsC.Lignes
    Set LRw = LRs.Add
    Set Rng = LRw.Range
    Rng.Resize(, 11).Value = TVLC
    CLsC.Actualiser
    Rem. Refaire un Dictionary ? Refiltrer quelque chose ? On verra !
Else
  
    CLsC.Lignes(LCouC).Range.Resize(, 11).Value = TVLC '11=nombre de colonnes contenant des constantes
  
    End If
End Sub
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Oui je sais, la solution proposée au poste #724 plante aussi. C'est juste que le classeur de test fonctionne comme elle au lieu de fonctionner comme le classeur d'application retenu pour le moment.
 

gbstyle

XLDnaute Occasionnel
bonjour dranreb, alors voici quelque news j'ai essayé de fouiner sur d'autre forum mais à vrai dire pas beaucoup de réponse excepté les réponses traditionnelle du style "Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior."
Cependant j'ai eu un premier retour qui me dirait ca, je n'ai pas pu encore approfondir mais des que j'ai des news je reviens vers toi pour te tenir informer
"
Ça bloque là avec un message d'horreur que j'ai oublié. (Excel 2016, presque Excel 2019. Il manque 2 ou 3 cossins déjà sortis pour le programme Office Outsiders.)"
 

gbstyle

XLDnaute Occasionnel
Salut Dranreb, alors écoute ce matin j'ai effectué une modification toute simple
j'ai était dans gestionnaire affichage des nom, j'avais une listedenom déclaré sur le champt réf commande du tableau Suivis commande
J'ai tout simplement surpprimer cette liste de nom
J'ai effectué toute modification potentiel et a priori tout refonctionne

Par contre expliquez pourquoi c'est impossible pour moi :/
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Ah, ça, je n'avais vraiment pas pensé à regarder s'il ne trainait pas un parasite de ce genre.
Je ne vois d'ailleurs rien de spécial dans les noms du dernier classeur BDDGDSTK.xlsm joint, hormis des noms que j'éviterais autant que possible de définir s'ils font double emploi avec des noms de tableaux Excel.
 

gbstyle

XLDnaute Occasionnel
Si je comprend bien tu me demandes de renommer les noms de liste différement des noms de tableaux
En tout cas je ne sais pas expliquez pourquoi c'est du à cà

Par contre j'aurai voulu savoir penses tu qu'il est possible d'ajouter ce type de label dans mon userform
Me.LabNbCmd = ????.Lignes.Count
J'aurai voulu connaitre le nombre de commande encours et
dansun second label d'afficher le numéro de la dernière commande utilisé en info de sorte à ne pas chercher qu'elle numéro de commande je devrais créer
Toute ces infos sont dispo je pense à partur du tableau Suivis facturation
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Non, j'éviterais de les définir, en utilisant directement les références aux tableaux, mais je ne suis pas sûr que ce soit toujours possible.
Oui, tu mets CLsC à la place des ???? et tu aura le nombre total de commandes.
Tu devrait le trouver dans CLsC.Items(CBxCommande).SujetBdD(0)(1)…
 

gbstyle

XLDnaute Occasionnel
Oyé oyé, Bonjour Dranreb comment vas tu ?
je viens te donner quelque nouvelle d'utilisation de notre base de gestion.
Et j'ai quelque petit soucis a régler de format de texte, je m'explique
Dans le cadre de CBxLié lorsque je saisie une référence de type "000003", il vient m'enregistrer systématiquement mes information comme ceci "3", je n'ai pas réussis à modifier le programme donc je le modifie de facon manuelle dans le tableau base articles mais c'est assez chiant car des que j'ai eu une modification article il me recrée un article avec une réf 3
Je ne sais pas si tu as toujour un historique de notre fichier, mais ca m'étonnerais je pense que tu gardes toujour une trace d'un fichier sur lequel tu as travaillé ;)
Si jamais tu peux m'aider je suis preneur d'avance merci
 

Dranreb

XLDnaute Barbatruc
Boujour.
Pour des informations numériques, il est possible de spécifier un format de nombre au CLsA.Add de la ComboBox.
Pour des infos texte il faudrait mettre un format Texte sur la colonne. Il devrait aussi être possible de spécifier "&" (comme ça, entre double apostrophe) derrière le numéro de colonne.
 
Dernière édition:

gbstyle

XLDnaute Occasionnel
Je n'ai pas bien assimiler ta deuxieme solution, car je pense que les références devrait être au format texte
upload_2018-8-31_13-32-25.png
 

gbstyle

XLDnaute Occasionnel
Malgré la création de ma référence en 00002, et que mon format de cellule de mon tableau est en texte il me met systématiquement 2, je voudrais qu'il me mette exactement ma saisie, car je peux avoir des référence de type 00002 comme je peux avoir NRV150987
Je pense qu'il serait judicieux que je vois quelle est le format de valeur je souhaite et pour être simple j'aimerai qu'il mémorise exactement mes saisie sachant :
que mes réf peuvent etre numérique, alpha numérique de plusieur caractère ex :
0001 / Ab1548A / NRV150987
 
Dernière édition:

gbstyle

XLDnaute Occasionnel
j'ai le meme soucis en créan la réf fournisseur je pense que c'est pas grand chose meme en mettant le format texte dans la cellule en saissant 0001 tu vois qu'il affiche dans la base fournisseur 1
 

gbstyle

XLDnaute Occasionnel
Bonjour Dranreb, et merci pour ton retour
en effet cela fonctionne j'avai oublié de mettre les colonnes concerné en format de cellule texte, sinon ce la ne fonctionnait pas :/
Par contre j'ai mes date qui se mettent par défaut en format américain, c'est a dire au lieu de 31/8/2018 j'ai 8/31/2018, le format est déclaré dans le code en vbdate, y'a t'il une astuce car meme en mettant ma colonne en format date, par défaut il me met en format américain
Il me met les date en format personalisé à chaque enregistrement
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
VbDate est une constante VbVarType qui désigne le type Variant/Date. Dans quel contexte est-elle utilisée ? Il y a un bogue sur d'anciennes versions d'Excel même en écrivant un Variant/Date dans une cellule portant un format de date. On peut y remédier en affectant la valeur à Value2. Attention: la cellule doit alors avoir obligatoirement un format de date.
 

Discussions similaires


Haut Bas