Limité le nombre de Module

Bonjours a tous.

Voila j’ai une macros pour une insertion avec suppression de photos dans des cellules bien déterminer.

Voir mon fichier test. ( Attention il y a un code ''0'' sur la page )

Mon probleme pour moi qu'il me faudrait en ensemble de cellules au nombre de 32 X 2 par lignes donc 64 modules.

Y a t’il un moyen de la simplifier comme par exemple activer la zone d’insertion ou suppression par la sélection du N° du bouton.

car 64 modules j’en perd mon latin.

Comme je suis novice je demande de l'aide SVP

Merci d'avance

Stef

13test.xlsm (37.84 Ko)

Bonjour,

Ton fichier est corrompu, et ne s'ouvre pas... !

A part ça, je ne comprends pas bien de quoi tu parles ! Qu'est-ce que tu entends par modules ? Tu as l'air de désigner des cellules ainsi ! Si c'est le cas, il vaudrait mieux pas ! Une cellule est une cellule, et un Module répond à une autre définition précise en VBA.

Pour ton information, une photo (ou n'importe quelle forme) insérée sur une feuille, n'est jamais dans une cellule ! On peut la positionner par rapport à telle ou telle cellule mais elle est dans la feuille, uniquement.

Cordialement.

Bonjour,

Salut MFerrand ...

Ci-joint une tentative d'interprétation ... émanant d'un non-électricien ...

10test-stef3700.xlsx (8.13 Ko)

Salut James !

Ton fichier s'ouvre ! c'est déjà un plus !

Salut James !

Ton fichier s'ouvre ! c'est déjà un plus !

Salut MFerrand ...

Voilà qui me rassure ... j'ai, à tout le moins, franchi ce cap ...

Re bonjour a tous effectivement sans le fichier en pièce joint comme model a mon probleme

difficile de comprendre

voila je l'ai remis .......(je ne comprend pas pourquoi il ne fonctionner pas )

pour les modules dans mon fichier bien sur dans la macro.

Merci d'avance pour la solution

pas évident d'expliquer mon souci comme je suis novice

Stef

Je dois avouer que je suis perplexe !

Il y a là tout ce qu'il faut pour heurter mon bon sens "primaire"

Déjà 8 modules Standard avec une macro seulement par module ! Et des macros semblables qui se répètent par couples ! Une feuille qui commence à être garnie de boutons...

Et tout ça pour mettre ou supprimer quelques images !

J'opte pour un retour aux fondamentaux, bien oubliés...

2 actions : Insérer ou Supprimer, ça mérite 2 boutons au maximum !

Il s'agit de 2 actions plutôt élémentaires : une procédure pour chacune, ça fait 2 macros !

Modules (Standard) : Tant que je ne vois pas de justifications sérieuses pour en créer déjà un second (et le nombre de macros n'est pas en soi une justification sérieuse), je considère qu'un seul suffit. Au demeurant vu que le code sera plutôt réduit, rien ne justifie de dépasser un module Standard.

Comment faire pour déterminer l'emplacement ? Soit on les remplit à la suite... soit tout simplement on demande à l'utilisateur de le choisir !

Si on se crée une identification judicieuse des emplacements, ils pourront être aisément définis par décalage à partir du premier (qui pourra être nommé, ce qui simplifiera encore...)

Et on pourra même établir une proc. Function renvoyant l'emplacement sous forme de plage à partir de son identification, appelée par les autres proc. selon besoins...

On atteindra alors 3 procédures !

Cordialement.

Re bonjour

la j’avoue de ne pas comprendre.

c’est pourquoi je demande de l'aide.

afin d'une insertion d'une photos depuis le bouton associer puis de supprimer n’importe la-quel par ordre non défini.

Cordialement

@ MFerrand ...

Pour le coup ... le libellé choisi pour le Sujet ... est parfaitement en adéquation avec la situation ...

Limiter le nombre de Modules ....

YES !

On en reparle plus tard ! Urgence repas décrétée ! momentanément !

Re bonjour

la j’avoue de ne pas comprendre.

c’est pourquoi je demande de l'aide.

afin d'une insertion d'une photos depuis le bouton associer puis de supprimer n’importe la-quel par ordre non défini.

Cordialement

Quoi donc ne comprends-tu pas ?

J'avais entamé une longue explication mais... désolé tout s'est figé et impossible à récupérer.

Donc indique ce qui t'échappe lorsqu'on te dit de : te mettre en mode Normal, zoom 100%, supprimer 8 boutons sur les 10 existants, en conserver 2 (insertion et suppression), les placer sur les premières lignes, en les figant, pour qu'il soient toujours visibles, supprimer 7 Modules sur les 8 existants actuellement, limiter le code à 2 procédures (insertion, suppression), faisant appel à un Userform pour choix de l'emplacement (vide si insertion, occupé si suppression) dans une liste, et à une fonction renvoyant l'emplacement sous forme de plage pour insertion (si suppression, si on a renommé en fonction emplacement, plus besoin de le chercher pour supprimer)...

Cordialement.

merci de l'idée.

histoire de deux boutons avec userform pourquoi pas

un model je suis preneur car pour la mise en place pour moi compliquer.

A savoir que les photos se trouveras dans le dossier image dans windows..

au final il me faudra choisir photos par photos dans la cellule concerné.

je me répète un modèle je suis preneurs

car Excel je suis novice.

merci

stef

D'accord ! Je t'ai préparé une démo mais il faudra attendre que j'ai pu la tester, en principe demain...

A+

Merci MFERRANT

je passiente.

Cela n'aura pas été trop long, j'espère !

On est donc parti de ton fichier initial, qui comporte actuellement 12 emplacements photos, groupés par rangs de 2, et que tu pourras prolonger en respectant la même structure. Les rangs sont numérotés de 1 à 6, il faudra poursuivre la numérotation (en colonne F) en prolongeant...

Tu verras un nom dans le gestionnaire de noms, défini par la formule suivante :

=MAX(Feuil1!$F:$F)

qui permettra à tout moment de connaître le nombre max de la colonne F et donc le nombre d'emplacements.

Deux boutons figurent sur la droite (pour qu'on visualise qu'ils ne sont pas liés à un emplacement déterminé) : Inser et Sup. La même macro est affectée à ces deux boutons : InserSup.

La macro fait elle-même le tri de savoir qui l'a appelée (les 2 boutons ayant pour nom Bouton 1 et Bouton 2, elle récupère le dernier caractère (converti en nombre) dans une variable, ce qui lui permet de savoir si on lui demande d'insérer ou de supprimer.

La proc. fera appel à un Userform pour faire choisir l'emplacement, après avoir modifié les mentions qui indiqueront s'il s'agit d'une insertion ou d'une suppression, et avoir alimenté une ComboBox avec une liste des emplacements disponibles (pour une insertion) ou utilisés (pour une suppression).

Pour disposer de la liste, elle va faire appel à une fonction : ListEmplac, sans argument ou False pour une insertion, avec argument True pour une suppression. La fonction va selon le cas, parcourir les photos existantes, tirer l'emplacement du nom, et retrier les emplacements ainsi extraits, ceci en cas de suppression, ou bien parcourir tous les emplacements possibles, tester si une photo existe, et conserver l'emplacement dans le cas contraire, ce pour une insertion. S'il apparaît que tous les emplacements sont vides (suppression demandée) ou tous sont pleins (insertion demandée), elle renvoie 0 et l'utilisateur sera avisé que sa demande ne peut aboutir...

L'utilisateur est donc appelé à choisir son emplacement dans une boîte de dialogue, il choisit donc dans la liste, et clique sur OK (s'il clique sur Annuler, cela annulera l'opération). S'il clique sur OK sans avoir choisi, la boîte reste affichée en attendant qu'il fasse son choix ou clique sur Annuler. Le choix fait, la boîte est masquée et la main revient à la procédure qui récupère le choix et décharge le Userform.

S'il s'agit d'une suppression, elle reconstitue le nom de la photo et appelle une procédure : SupprimPhoto en lui passant le nom en argument. Procédure qui supprime la photo...

S'il s'agit d'une insertion, elle fait appel à une fonction : PositPhoto en lui passant le numéro de l'emplacement et qui va lui renvoyer la plage correspondant à cet emplacement (objet Range). Elle passe alors cette plage, ainsi que le numéro d'emplacement, à une procédure qu'elle appelle : InserPhoto.

Cette procédure va faire choisir l'image par l'utilisateur, finaliser l'opération d'insertion, et nommer la photo insérée. Elle ajuste l'affichage de façon que l'utilisateur puisse voir la photo qui vient d'être insérée.

L'ensemble fait donc 5 procédures (dont 2 Function) que tu trouveras dans Module1. Le code du Userform ne comporte que 3 petites procédures (dans le Module ad-hoc) : 2 attachées aux boutons OK et Annuler, et une interceptant la fermeture (dans le cas où l'utilisateur cliquerait sur la croix de fermeture) pour la finaliser en annulation.

J'en profite encore pour noter que tu avais fait un effort certain sur le code pris intrinsèquement, mais que ton projet péchait sur la façon de structurer l'application pour parvenir au résultat avec une économie de moyens...

Je te laisse étudier ce modèle, et si tu butes sur tel ou tel aspect, n'hésite pas à demander des explications.

Cordialement.

35stef3700-test.xlsm (39.67 Ko)

Ou lala un travail de chef

je test dans la soirée je te tien au jus

Merci Merci.....

Ps pour les codes pour ma part beaucoup trop compliquer alors la respect............

Merci

Cordialement stef

Re Après Test

Nickel Merci Mr Ferrand

Idée parfait comme je voulait.

Je clôture

Cdt

Stef

Rechercher des sujets similaires à "limite nombre module"