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
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.
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.
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
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
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 ???
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.
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 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.
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)
.