XL 2019 VBA - Mémoire insuffisante, limite du nombre d'objets par userform ?

YabbyBen

XLDnaute Nouveau
Bonjour à tous,

Et d'avance un tout grand merci pour votre aide.

J'ai créé un userform VBA qui fonctionne très bien. Je souhaite faire évoluer ce userform en augmentant le nombre d'objets (zone texte, liste déroulantes,...). Et c'est là que ça coince ! à partir d'un certain nombre d'objet j'ai ce message d'erreur "Mémoire insuffisante" qui apparait dans une fenêtre.

J'ai testé le userform sans code, et le problème est le même.
Aussi tôt que je supprime l'objet en trop ça fonctionne. Assi tôt que je le rajoute, j'ai ce message d'erreur. Que ce soit un titre, une liste déroulante, une zone texte,... le problème est le même.

Du coup je m'interroge: existe-t-il une limite du nombre d'objet dans un userform ? Dans mon cas, je n'ai aucun intérêt à diviser mon projet en plusieurs userform.

Un immense merci pour votre aide
 

YabbyBen

XLDnaute Nouveau
Messieurs,
je comprends votre point de vue concernant la conception. N'étant pas informaticien mais autodidacte faisant de son mieux, je me réjouis d'avoir un userform qui fait son job.

Pour répondre à la question de Phil69970, oui ça fonctionne sur un PC ayant plus de mémoire.

voici une capture d'un onglet du userform. Cela me permet entre autre, d'actualiser des stocks. Sachant qu'une référence de stock est détaillée par un numéro d'article, un titre, une quantité, unité, fournisseur et sachant que le nombre d'article en stock est assez important, je me retrouve au final avec un userfrom qui déborde.
Mais encore une fois, dans ma situation, en divisant en plusieurs userform au lieu de plusieurs onglets, mon problème sera corrigé. Et à l'utilisation ça ne sera pas plus compliqué.

je suis conscient que le logiciel et/ou le développement au sens très large ne sont pas totalement appropriés aux besoins. Mais on fait ce qu'on peut :)

merci encore pour vos interactions
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    38.1 KB · Affichages: 58

Phil69970

XLDnaute Barbatruc
Re

C'est exactement ce que je m’apprêtais à écrire.
a quoi bon l'avoir fait cette demande ?
Tu es dans tes certitudes et tu viens demander de l'aide c'est forcement qu'au fond tu sais bien que ton fichier n'est pas viable et peut être même qu'il va planté un moment ou à un autre....o_O


J'ai dit exactement le contraire : ;)
Pour répondre à la question de Phil69970, oui ça fonctionne sur un PC ayant plus de mémoire.

Et si tu transfères le fichier sur un autre ordi qui a moins de mémoire que fais tu ?

Pose toi la bonne question :
Pourquoi 4 personnes du forum te dit que le fichier n'est pas viable ?
(@dysorthographie ,@JM27 ,@patricktoulon et moi)
Soit nous n'y connaissons rien.
Soit nous avons raison.

De toute manière il est évident que nous ne parviendrons pas à te convaincre donc moralité tu as fais un fichier parfait. 👽
Bonne chance

@Phil69970
 

JM27

XLDnaute Barbatruc
bonsoir
Je plussoie les répondeurs sur ce fil.
Pour moi un maxi de zone de saisie dans un userform est entre 30 et 50 .
quand j'étais en activité ,si j'avais des userform avec plus de zones de saisie , je me les aurais " pris dans la tronche " par les utilisateurs.
De plus quand je faisais des userform ayant un nombre important de zones de saisies , je prévoyais des "enregistrements" partiel , de manière à faire la saisie en plusieurs fois.
pour terminer , sans effort pour fournir un fichier anonymisé , j'ai du mal à comprendre que l'on puisse t'aider.
 

YabbyBen

XLDnaute Nouveau
bon vous ne me laissez pas le choix, j'ai donc créé un fichier pour vous expliquer 😀

Dans le fichier en exemple il n'y a qu'un onglet. Cet onglet ne contient que 3 ligne "article".
Dans mon fichier réel il y a 4 onglets. Chaque onglet contenant +- 80 lignes "article". Jusqu'ici ça fonctionnait très bien. Mais impossible d'ajouter de nouvelles lignes articles sans ce problème de mémoire. J'ai donc ajouté un nouveau Userform pour la nouvelle "fabrication" que je devais créer. Et là plus de problème de mémoire.

Le but du fichier est d'encoder une "fabrication" qui engendrera une MAJ des stocks et l'inscription d'un historique détaillant les articles utilisés (article + qté + fournisseur).
 

Pièces jointes

  • excel-downloads.xlsm
    96.8 KB · Affichages: 15

Dranreb

XLDnaute Barbatruc
Bonjour.
Conseil : Disposez vos fabrication dans l'autre sens, à raison d'une ligne par fabrication, voire une ligne par élément constitutif, quitte à en avoir plusieurs pour une même fabrication.
Et surtout, n'utilisez qu'un seul jeu de contrôles pour modifiez un seul élément à la fois.
Des ListBox permettraient des vues d'ensemble, avec possibilité, par sélection d'une ligne, de renvoi vers ce jeu de contrôles commun pour modification ou suppression.
 
Dernière édition:

Pollux032

XLDnaute Nouveau
Bonjour @YabbyBen ,
Je suis tombé par hasard sur cette publication.
À sa lecture et à la vue de l'extrait de la feuille, il y a visiblement une erreur de conception. Excel n'est probablement pas le meilleur choix : je te conseille d'utiliser Access.
Si tu le désires, je peux t'aider. (je te contacte directement)
 

Aspres

XLDnaute Nouveau
Bonjour à tous,

Et d'avance un tout grand merci pour votre aide.

J'ai créé un userform VBA qui fonctionne très bien. Je souhaite faire évoluer ce userform en augmentant le nombre d'objets (zone texte, liste déroulantes,...). Et c'est là que ça coince ! à partir d'un certain nombre d'objet j'ai ce message d'erreur "Mémoire insuffisante" qui apparait dans une fenêtre.

J'ai testé le userform sans code, et le problème est le même.
Aussi tôt que je supprime l'objet en trop ça fonctionne. Assi tôt que je le rajoute, j'ai ce message d'erreur. Que ce soit un titre, une liste déroulante, une zone texte,... le problème est le même.

Du coup je m'interroge: existe-t-il une limite du nombre d'objet dans un userform ? Dans mon cas, je n'ai aucun intérêt à diviser mon projet en plusieurs userform.

Un immense merci pour votre aide

Bonjour,

Il y a plusieurs années, années j'ai commencé un projet qui a évolué sans cesse, je me suis crée mon propre logiciel d'encaissement pour avoir mes propres statistiques sans avoir a passer par les options coûteuses et inadaptées des vendeurs de logiciels pro.

A force de rajouter des objets j'ai été confronté au même problème, j'ai donc poussé le nombre d'objets au max jusqu'à ce que ça plante, et a partir de là j'ai pu déterminer quel était le nombre d'objets max a ne pas dépasser.

Ce nombre est d'environ : 1210
Perso, j'en suis a 1207 et je n'en rajoute plus (dans cette fenêtre).

Si tu dépasse cette valeur, tout va partir en sucette et ça va devenir n'importe quoi dans ton excel.

Quand tu approche de cette valeur, tu dois ruser et commencer a faire apparaître des fenêtres séparées.

Pour vous donner un aperçu de mon projet, voici l'une de mes fenêtres, et tout fonctionne parfaitement ! ^^
 

Pièces jointes

  • 00.jpg
    00.jpg
    688.9 KB · Affichages: 13

patricktoulon

XLDnaute Barbatruc
Bonjour,

Il y a plusieurs années, années j'ai commencé un projet qui a évolué sans cesse, je me suis crée mon propre logiciel d'encaissement pour avoir mes propres statistiques sans avoir a passer par les options coûteuses et inadaptées des vendeurs de logiciels pro.

A force de rajouter des objets j'ai été confronté au même problème, j'ai donc poussé le nombre d'objets au max jusqu'à ce que ça plante, et a partir de là j'ai pu déterminer quel était le nombre d'objets max a ne pas dépasser.

Ce nombre est d'environ : 1210
Perso, j'en suis a 1207 et je n'en rajoute plus (dans cette fenêtre).

Si tu dépasse cette valeur, tout va partir en sucette et ça va devenir n'importe quoi dans ton excel.

Quand tu approche de cette valeur, tu dois ruser et commencer a faire apparaître des fenêtres séparées.

Pour vous donner un aperçu de mon projet, voici l'une de mes fenêtres, et tout fonctionne parfaitement ! ^^
@Aspres
un userform avec plus de 1200 ctrls est une erreur majeure de conception
on ne peut faire plus pire
tes controls formant ta grille par exemple dans ton userform peuvent être remplacé par un listview

bref on est dans la continuité du niveau de cette discussion
 

Discussions similaires

Statistiques des forums

Discussions
315 134
Messages
2 116 613
Membres
112 811
dernier inscrit
shade1452