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

gbstyle

XLDnaute Impliqué
Bonjour, voila je souhaiterai lors de l'enregistrement sur mon tableau que le format nombre soit monétaire
ci joint mon bout de code
Private Sub BtnAenregistrer_Click()
Ref = Me.TxtARefArticles
With Sheets("Base_Articles")
Set trouvé = .Range("TblBaseArticles").Columns(1).Find(Ref, lookat:=xlWhole, LookIn:=xlValues)
If trouvé Is Nothing Then 'il s'agit d'un nouvelle articles
derlig = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'on se positionne sur la dernière ligne
Else 'existe déjà
derlig = trouvé.Row
If MsgBox("Souhaitez vous modifier l'article ?", vbYesNo) = vbNo Then Exit Sub
End If

.Range("A" & derlig) = TxtARefArticles
.Range("B" & derlig) = CboAFamille
.Range("C" & derlig) = CboASousfamille
.Range("D" & derlig) = TxtADesignation
.Range("E" & derlig) = CboAFournisseur
.Range("F" & derlig) = TxtALongueurcolisage
.Range("G" & derlig) = TxtALargeurcolisage
.Range("H" & derlig) = TxtAHauteurcolisage
.Range("I" & derlig) = TxtACréele
.Range("J" & derlig) = TxtANotes
.Range("K" & derlig) = TxtADelaislivraison
.Range("L" & derlig) = TxtAFraistransport
.Range("M" & derlig) = TxtAFacturation
.Range("N" & derlig) = CboAModedegestion
.Range("O" & derlig) = TxtAminicommande
.Range("P" & derlig) = TxtAPrixUnitHT ' => données à afficher en format Euros lors de la saisie dans le text box et lors de l'enregistrement que sont format se mette en monétaire dans le tableau source
J'ai essaye un code avec .NumberFormat = "#,##0.00 $" mais je n'y arrive pas, il me manque une déclaration de variable je pense


End With

End Sub

D'avance merci
 

gbstyle

XLDnaute Impliqué
L'idée d'origine avec ceci en complétant le tableau :
Les infos provienne du Tbl suivis commandes, mais avec la commande CBn valider on pourrait surement compléter le nouveau tableau de suivis entrée/sortie qu'en penses tu?
Mon seul soucis c'est comment réussir à déclarer un nouveau tableau :/
 

gbstyle

XLDnaute Impliqué
Donc j'essaye de synthétiser pour bien comprendre :
- Il faut que je puisse dupliquer le tableau suivis commande avec sélections des colonnes dont j'ai besoin sur le nouveau TblEntré/suivis => a la manière du wshsuivi fact
- le soucis c'est qu'il me sera impossible de gérer un même article en multi emplacement comme évoqué dans mon post précédent vu que pour une commande c'est 1 ligne = 1 réf

Ou alors je dois repenser le fonctionnement en délocalisant la gestion par emplacement
 

Dranreb

XLDnaute Barbatruc
TabCols(WshSuivCmd, x, y, z… ) devrait renvoyer un tableau avec les colonnes 1, 2, 3 etc. renseignées d'après les colonnes x, y, z etc. de TblSuiviCommandes

Au moins en récupérant en premier la référence article on pourrait fusionner les deux tableaux sur cette référence.
 

gbstyle

XLDnaute Impliqué
je suis sincèrement désolé mais je n'ai pas très bien compris ce que tu attend avec la fonction tabcol ?
j'essaye un peu de me documenter dessus mais ca me parait pas très clair :/ j'ai donc voulu tester l'enregistreur de macro autant te dire que ca ne correspond pas à mon besoin :/

Private Sub Worksheet_Activate()
Dim Tabcol(WshSuivCmd), A, B, H As Integer
End Sub
 
Dernière édition:

gbstyle

XLDnaute Impliqué
J'ai vu sur le forum que tu était intervenu sur un sujet pas similaire mais du meme type ou tu recommande ton module de référence GigIdx je crois,
j'ai crus voir dedans ce dont tu me parles mais je ne comprend pas tout :/

Function TabCols(ByVal PlgLig As Range, ParamArray Cols() As Variant) As Variant()
Renvoie un tableau ne comportant que certaines colonnes d'une plage spécifiée.
PlgLig La plage ou le tableau source.
Si une seule ligne est spécifiée, voire une seule cellule, elle sera étendue
jusqu'à la dernière cellule renseignée de plus qu'une chaîne vide.
Cols Liste des N° des colonne à reproduire, de gauche à droite.
L'utilisation de cette fonction étant assez marginale, il n'est pas prévu qu'elle puisse aussi comporter
des titres de colonnes, même si PlgLig est couvert par un ListObject.

Sub GarnirColonne(TCbl(), ByVal CCbl As Long, TSrc(), ByVal CSrc As Long)
Garnit une colonne d'un tableau à partir d'une autre colonne d'un autre tableau.
 

Dranreb

XLDnaute Barbatruc
C'est une fonction qui renvoie, comme valeur retournée au programme appelant, un tableau. Exactement tout comme la fonction TableUnique.
Elle peut donc servir d'expression tableau partout ou on a besoin de spécifier un tableau, notamment en paramètre des fonctions Gigogne et TableUnique. Il ne faut surtout pas la déclarer dans la procédure qui l'utilise, sinon sa définition du module MTableaux risque de ne plus être reconnue.
La fonction Gigogne par contre ne renvoie pas un tableau mais une Collection d'objets dont le type de donnée est SsGr (défini par le module de classe du même nom).
 

gbstyle

XLDnaute Impliqué
Bonjour Dranreb merci de l'explication meme si je pense qu'il me faut l'utiliser pour comprendre son effet.
Donc après quelque essais je n'ai pas réussis à mettre en place la copie du tableau je ne sais plus pas ou commencer avec cette manne d'information
 

gbstyle

XLDnaute Impliqué
Et bien je me suis arreté a ca car je n'arrive pas à intégrer le tabcol
VB:
Private Sub Worksheet_Activate()
Dim Données As Collection, TR()
Set Données = Gigogne(TableUnique(Me, WshSuivCmd), 1)
ReDim TR(1 To Données.Count, 1 To 13)

End Sub
 

gbstyle

XLDnaute Impliqué
En gros le code de rapatriement du tableau n'est autre que ca ? je vais essayer mais quelque chose m'interpelle
VB:
Option Explicit

Private Sub Worksheet_Activate()
Dim Données As Collection, TR()
Set Données = Gigogne(TableUnique(Me, Tabcols(WshSuivCmd, 1, 4, 5), 1)) 'colonne a copier de la feuille
ReDim TR(1 To Données.Count, 1 To 13) 'nombre de colonne tu tableau de la feuille wshentreesortie

End Sub
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
On avait déjà vu que Me ne marchait pas bien dans ce cas de figure il faut Me.ListObjects(1)
Non, pour simplement verser le tableau tu peux essayer
Me.ListObjects(1).DataBodyRange.Value = TabCols(WshSuivCmd, 1, 4, 5)
Mais j'aurais plutôt cru que le 1er n°de colonne spécifié serait celui de la ref Article, et non la réf commande.
 

Statistiques des forums

Discussions
312 108
Messages
2 085 380
Membres
102 876
dernier inscrit
BouteilleMan