Format du combobox

Bonjour tout le monde,

je sèche sur un format de combobox.

Dans le fichier ci-joint en appelant le formulaire à l’aide du bouton USF, je peux choisir le taux de TVA situé dans le tableau de l’onglet Feuil2.

Or je ne me rappelle plus comment écrire le format.

Je voudrai si possible que les taux s’affichent comme dans le tableau, donc 5.50%, 10% et 20%

Merci d’avance pour votre aide.

Rubis57
Rubis57 VersionA.xlsm (20,5 Ko)

1 « J'aime »

Bonjour Rubis57
Les données intégrées dans un formulaire (combobox, textbox etc…) sont toutes uniquement en format texte
Celles-ci : 5,50%, 10%, 20% saisies en colonne « C » de l’onglet « Feuil2 » ne sont pas les véritables elles ne sont que celles d’apparence en fonction du format de leurs cellules (Pourcentage) les réelles sont : 0,055, 0,1, 0,2
Lorsque tu alimentes la combox de celles-ci ce sont ces dernières qui sont intégrés et non celles d’affichage
Donc si tu veux les avoirs dans cette combobox il faut les saisir dans les cellules à l’identique (5,50%, 10%, 20%) en utilisant pour chaque cellule le format texte

Pas d’autre choix

Ton fichier ainsi adapté

Rubis57 VersionA.xlsm (24,3 Ko)

J’ai aussi adapté la procédure du tri compte tenu de ces données en format texte pour les avoir dans la combobox en ordre progressif

2 « J'aime »

Bonjour,
Une suggestion,
T’as pas besoin de tes codes Initialiser
ceci suffit :
Tu cliques sur ton combobox1 et dans les Propriétés, dans Rowsource tu mets le nom du tableau.

1 « J'aime »

Bonsoir FFO,

Merci pour ton aide.
Je vais laisser comme tu l’as mis dans le fichier cela va très bien.

Je ferai des essais pendant le week end et je reviendrai mettre un petit mot.

Bonne soirée et Merci à toi.
Rubis

Bonsoir Will,

Merci pour la participation, mais j’ai mis en place la solution de FFO qui me va très bien.

A une prochaine fois OK.
Bonne soirée
Rubis

1 « J'aime »

Parfait
J’attends de tes nouvelles donc
Je croise les doigts !!!

Bonjour FFO,

après avoir effectué plusieurs essais, j’ai finalement modifié le fonctionnement.

J’ai mis une MFC en place et des Commandbuttons qui font le filtrage.
Je te laisse le fichier exemple. A toi de me dire si cela te semble correct si tu veux bien.

Merci d’avance et A+.

Rubis
Rubis57 VersionA.xlsm (29,1 Ko)

une autre version,
Rubis57 VersionA.xlsm (32,3 Ko)

Bonjour,

Merci pour ta participation. Or, si je choisis une ligne dans le combobox il me donne ce que tu vois sur l’image ci-jointe !

je suppose que vous utilisez le point au lieu de la virgule pour les décimaux.
donc utilisez-ceci dans le UserForm_Initialize (sans ce « replace »)

          If Len(aA(i, 1)) Then Dict(aA(i, 1)) = WorksheetFunction.Text(aA(i, 1), "0.0%")

1 « J'aime »

Bonjour
Cette approche donne le résultat attendu mais de mon point de vue est un peu lourde pour y parvenir :

mise en place d’une MFC
Autant de bouton avec leur traitement spécifique que de donnée impliquée
Quid si plus de données : plus de bouton et de code propre à chacun ?

La combobox devient inutile pourquoi son maintien

Quelle plus value pour toi ce nouveau fonctionnement en rapport avec celui que j’ai adapté ?

L’ancien par le simple choix dans la combobox pouvait être adapté pour un même résultat

Il avait l’avantage de ne pas être limité en nombre de pourcentage

Maintenant c’est toi qui utilises donc qui choisis

Ainsi ma vision de ce nouvel outil;

Bonjour,

Merci pour les infos.

D’après toi cela pourrait poser des problèmes de fonctionnement ?

Je n’ai besoin que de ces 3 taux de TVA.

Rubis

Pour moi je ne pense pas
Mais j’ai toujours utilisé les données et non les couleurs pour actionner un filtre cela évite de rajouter celle-ci pour l’obtenir toujours plus simple en terme de fonctionnement
Et ce qui est plus simple est toujours plus salutaire moins confronté au dysfonctionnement

Ne change rien utilise et tu verras il sera toujours temps de rectifier dans cet esprit si le besoin s’en fait sentir

Re,

Ok, je vais alors suivre tes conseils et on verra par la suite.
Tu as raison, les couleurs je ne suis pas trop fan non plus !

Voila, on va donc travailler avec cela et si besoin je reviendrai vers toi.

Merci en attendant pour tout et bon week-end.

Rubis

Re Cow,

je te remercie pour ton travail mais après réflexion j’ai décidé de suivre le conseil de notre Ami FFO.

Bon week-end à toi également et peut-être à une prochaine fois.

Rubis

bonjour Rubis57, FFO et moi disent la même chos, cad. utilisez un filtre pour vos pourcentages de TVA. La seule différence est que FFO ne veut pas utiliser vos 2 tableaux structurés, pourtant la manipulation n’est pas si difficile. Oubien on choisit pour un tableau structuré et on l’utilise oubien on le fait à l’ancienne.
J’ai ajouté des commentaires dans le VBA-editeur.
Rubis57 VersionA.xlsm (33,3 Ko)
Je suppose que vous copier& coller avec une macro à peu près pareil aux commandbuttons ???

Bonsoir Cow1,

malgré mes quelques années passées sur ce forum, j’ai du mal à comprendre ce que tu veux dire .
Je viens d’essayer ton fichier et oui il fonctionne très bien mais un petit soucis !

Si je choisis par exemple dans le combobox 5.5% et qu’il n’y en a pas il me donne l’info par msgbox. Cela est bien.
Par contre si a ce moment je referme l’usf il me vide le tableau3.

Regarde le fichier ci-joint
Rubis57 VersionA.xlsm (28,5 Ko)

Alors s’il te plait, pourrai tu m’expliquer pas à pas ce qui change par rapport au fichier de FFO ?

Merci beaucoup à toi
Rubis57

il faut supprimer ce « Exit Sub » dans cette ligne. Le tableau3 n’est pas vide, mais filtré pour ce TVA de 5.5%, donc aucune ligne et la macro devait encore supprimer ce filtre.,

 MsgBox "rien à copier&coller !!!": Exit Sub

FFO m’accuse de purisme, mais ce n’est pas le cas.

  • 65 K lignes, c’était dans un « xls », le « xlsx » avec 1.048 K existe depuis 2003, je crois, donc 21 années.
  • un tableau structuré est de temps en temps un outil avec sa propre volonté mais c’est utile et existe depuis 2010, je crois. Le but est d’avoir vos données dans une plage limitée sans lignes vides. Si on ajoute une ligne et le tableau structuré contient des formules ou des MFCs ou …, ces choses seront copiées. Ces colonnes sont nommées et on peut utiliser leurs noms au lieu d’un numéro, comme çà, si la mise à page change, on ne doit pas toujours modifier VBA.
  • pour le reste, FFO veut de la simplicité, bon, c’est comme « tirer sur un moustique avec un canon », si une tapette à mouche suffit.

le canon (j’utilise votre macro, parce que je ne connais pas celui de FFO, pour le filtre des valeurs au lieu de ces couleurs)

Set WS = Sheets("HISTORIQUE ACHATS")
     Set Wd = Sheets("TRIER ACHATS")
     Wd.Range("A3:G65000").Clear
     Dl = WS.Range("A" & Rows.Count).End(xlUp).Row
     WS.Range("$A$3:$G$" & Dl).AutoFilter Field:=7, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor
     WS.Range("$A$3:$G$" & Dl).Copy Wd.Range("A3")
     Wd.Range("A3:G65000").FormatConditions.Delete
     Sheets("HISTORIQUE ACHATS").ListObjects("Tableau3").Range.AutoFilter Field:=7
     Unload Me
     Sheets("TRIER ACHATS").Activate

la tapette à mouche

Set LO3 = Range("tableau3").ListObject     'TS source
               With LO3
                    With .Range
                         .AutoFilter
                         .AutoFilter 7, Pourc     'filtrer le pourcentage
                         N = .Columns(1).SpecialCells(xlVisible).Count - 1     'nombre de lignes filtrées
                    End With

                    Set LO7 = Range("tableau7").ListObject     'TS destination
                    If LO7.ListRows.Count Then LO7.DataBodyRange.ClearContents     'RAZ destination
                    If N <= 0 Then
                         MsgBox "rien à copier&coller !!!"
                    Else
                         LO7.Resize LO7.Range.Resize(N + 1)     'donner le tableau les bonnes dimensions
                         LO3.DataBodyRange.Copy     'copier source filtrée
                         LO7.DataBodyRange.Cells(1).PasteSpecial xlValues     'coller dans la destination
                    End If

                    .Range.AutoFilter        'enlever le filtre

le canon efface la plage A3:G65000, la tapette est plus précise et n’efface que la plage nécessaire, disons ici, max 10 lignes. Donc, si vous voulez de la force brute avec « collateral damage », utilisez le canon, si vous voulez doser vos forces, alors …, mais ce dosage demande un peu plus d’intelligence.

Bonjour,

Merci pour tes explications.

Voila comment j’ai placé tes codes dans le fichier. A priori cela fonctionne très bien comme ça.
Maintenant dis moi si je peux laisser cela .

Merci A+
Rubis
Rubis57 VersionA Cow18.xlsm (28,9 Ko)

j’ai juste ajouté une construction « IF … END IF » dans les macros « AFFICHER_HISTORIQUE_ACHATS_COMPLET » et « ComboBox1_Change » pour éviter une erreur si le « tableau7 » est vide ou on a rien à coller.
Rubis57 VersionA Cow18.xlsm (27,0 Ko)
.

1 « J'aime »