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é
Bonjour Dranreb alors après quelque essais la base fonctionne, maintenant je crois qu'il nous restait à mettre en place des module afin de préparer des reporting d'extraction je crois, tu m'avais dis que tu avais d'excellent module pour ça.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
D'accord alors ma dernière version du classeur est équipée de deux modules de service supplémentaire permettant d'utiliser la fonction Gigogne.
Il y a aussi une Private Sub CLsA_SujFltChg qui assure la recherche intuitive sur la désignation article.
 

Pièces jointes

  • CBxLiéesGbstyle.xlsm
    543.6 KB · Affichages: 42

Dranreb

XLDnaute Barbatruc
Extrait de la page d'aide de GigIdx
— FONCTION GIGOGNE (Une gigogne en contient souvent plein d'autres emboîtées, d'où ce nom.) —

Function Gigogne(ByVal PlageOuTableau, ParamArray ColOrd() As Variant) As Collection
Renvoie une collection d'éléments de type SsGr. On la parcourt donc à l'aide d'au moins une variable déclarée As SsGr.
Ces éléments ont une propriété Id As Variant et une autre Co As Collection. Vous aurez à les utiliser aussi dans votre code.
PlageOuTableau La plage ou le tableau source de la collection désirée. Sont supportés :
Une expression Range représentant une plage de plusieurs lignes, ou faisant partie d'une plage
mise sous forme de tableau Excel (c'est alors celle ci qui sera retenue).
Une expression Range représentant une plage d'une seule ligne n'appartenant pas à une plage
mise sous forme de tableau Excel (elle sera étendue jusqu'à la dernière ligne renseignée).
Une expression Range représentant une plage d'une seule cellule n'appartenant pas à une plage
mise sous forme de tableau Excel (elle sera étendue jusqu'à la dernière cellule renseignée).
Un tableau 2D d'éléments de type Variant, à considérer tel quel.
Une expression ListObject représentant un tableau Excel.
Une expression Worksheet représentant une feuille Excel contenant au moins une plage
mise sous forme de tableau Excel.
Une expression String à évaluer.
La constante Null peut aussi être spécifiée si le tableau a déjà été spécifié auparavant, soit
en tant que ListObject à RàZArguments, soit d'une façon ou d'une autre à DicInvent.
ColOrd Liste d'entiers dont les valeurs absolues représentent les n° de colonnes des
arguments, et leurs signes le sens croissant ou décroissant du classement souhaité.
C'est selon ce que vous voulez pouvoir programmer derrière, conformément aux structures
expliquées ci après, que vous devez les définir.
Remarque: Un élément String sera interprété comme un titre de tableau Excel (ListObject) après retrait
d'un éventuel "+" ou "-" au début. Mais si c'est un "-" la colonne sera classée en ordre décroissant.
À part ça, un élément non numérique ou omis dans la liste marquera la fin des colonnes
définissant l'organisation du résultat, mais des colonnes supplémentaires spécifiées
derrière pourront encore influencer le classement des lignes de détail.
Il est aussi possible de ne rien spécifier s'ils ont déjà été donnés un par un avec AjoutArgument.

Le résultat de Gigogne peut être affecté à une collection :
Dim MaGigogne As Collection, MaPlage As Range
Set MaGigogne = Gigogne(MaPlage, 1, 2, -3, , 4, 5)
Mais on n'en utilisera en général pas, mais plutôt directement Gigogne(etc. dans la suite.
Dim MaPlage As Range, Niv1 As SgGr, Niv2 As SsGr, NivX As SsGr
La collection s'explore normalement par :
Initialisations globales
For Each Niv1 In Gignogne(MaPlage, etc…) '(ou bien éventuellement In MaGigogne)
TraitementDeNiveau
Next Niv1
ConclusionEtTotaux généraux
La structure d'un Traitement de niveau est la suivante :
Initialisations IntituléRubrique:=NivX.Id
For Each Élément In NivX.Co
StructureInterne
Next Élément
ConclusionEtTotaux pour:=NivX.Id
S'il concerne une autre colonne que la dernière spécifiée en ColOrd (avant vide, null etc.),
Élément sera un SsGr et la structure interne devra être à son tour un traitement de niveau.
S'il concerne la dernière colonne spécifiée (avant vide, null etc.), Élément sera un Variant
contenant un tableau à une dimension reproduisant les valeurs d'une ligne de PlageOuTableau.
Dans la Structure interne, un Élément(C) représentera donc la valeur présente en colonne C.
 

Dranreb

XLDnaute Barbatruc
À mon avis il suffirait de ne pas toucher aux tableaux de base. Je ne vois pas trop ce que ça apporterait de les mettre sur un autre classeur, je me contenterais de les mettre sur d'autres feuilles. Cela dit ça ne change rien aux algorithmes nécessaires à les établir. Faites les procédures dans un module standard, comme ça vous pourrez les appeler de n'importe où.
 

gbstyle

XLDnaute Impliqué
Bonjour, je n'ai malheureusement pas réussis à avancer, car je n'arrive pas à comprendre comment je peux extraire cette info, par exemple
je souhaiterais connaitre toute les commandes affecté à un article sur une période donnée.
1- dois créer un formulaire spécifique pour renseigner les valeur que je souhaite du type article plus plage de date
 

Dranreb

XLDnaute Barbatruc
C'est possible de limiter à un sous ensemble le résultat produit, ne serait-ce qu'en testant en aval si un détail remplit les conditions, mais la fonction Gigogne est plus efficiente si on peut s'arranger pour tout sortir, quitte à l'organiser par paquets dont chacun couvre une période d'une certaine unité de temps.
Le tout c'est de bien décider au départ le schéma de l'arborescence, c'est à dire dans l'ordre de quelles colonnes on veut le sortir.
 
Dernière édition:

Statistiques des forums

Discussions
312 192
Messages
2 086 054
Membres
103 109
dernier inscrit
boso_vs_viking