Afficher une plage de cellules dans une forme

Bonjour à toutes les grosse têtes du forum

Il m'arrive souvent d'utiliser une forme (shape) pour afficher le contenu d'une plage (Range) lorsqu'elle est hors de la fenêtre active (ou dans une autre feuille).

Il me suffit pour cela de sélectionner cette plage, de cliquer ensuite sur l'icône "Appareil photo" et de cliquer sur la feuille de destination. Excel crée alors une forme rectangulaire sur laquelle apparaît une copie de la plage sélectionnée. Tant que la forme est active, l'adresse de sa plage source apparaît dans la barre de formule.

Par rapport à une copie écran "fenêtre" de la plage, cette méthode permet la mise-à-jour automatique de l'image affichée lorsque sa plage source est modifiée. Mais cela permet aussi de "zoomer" cette image en modifiant manuellement ou par VBA la taille de la forme (fonction "loupe").

Mais ce je ne sais pas comment, via VBA, créer cette "photo" et ensuite changer sa plage source à volonté (déplacer ma loupe).

J'ai bien essayé de trouver le code en déclenchant l'enregistreur de macro, mais sans obtenir complètement les réponses cherchées.

Quelqu'un peut-il m'aider à trouver le code pour réaliser cela ?

D'avance, un GRAND merci !

Bonsoir,

menu Affichage, nouvelle fenêtre, afficher dans cette dernière la feuille voulue "en zoom", puis menu affichage, réorganiser tout, et à votre convenance choisir une position verticale ou horizontale.

Vous obtenez une vision double de votre fichier avec les barres de scroll et le zoom disponibles.
Un fichier exemple, avec le fait que si vous enregistrez le fichier avec le partage en fenêtre, lors de l'ouverture suivante il se mettra directement en situation :

16partage.xlsm (16.09 Ko)

Sinon il y a un code VBA sur le bouton bleu pour le créer par code !

@ bientôt

LouReeD

Bonsoir LouReeD,

Merci pour cette réponse très rapide !

Malheureusement, elle ne peut m'aider dans mon développement actuel car je dois absolument utiliser la méthode "Appareil photo" d'Excel.

Mon programme devrait pouvoir être utilisé par tout un chacun pour corriger la courbure des segments d'une forme libre en agissant sur ses "nodes".

Je crois que très peu de programmeurs se sont intéressés à la manipulation de ces formes très particulières qui utilisent la technique des courbes de Bézier. Si c'était ton cas, je pourrais t'exposer mes idées et tu comprendrais pourquoi je veux suivre mon idée de "loupe".

Bien à toi et ...bonne nuit !

Georges

in essai

13geolek.xlsb (36.87 Ko)

Bonjour LouReeD et BsAlv

Sorry LouRed, J'ai voulu te répondre trop vite hier soir avant de prendre le temps de comprendre la solution que tu m'avais proposée, bien différente mais peut-être meilleure que la mienne !

Je l'examine dans la journée et te communique dès que possible mes conclusions.

Idem pour la proposition de Bart (BsAlv)

En attendant, grand merci à vous 2

Bonjour Bart et X (LouReeD),

Merci encore des solutions que vous avez accepté d'apporter à mon problème.

Mais je n'y ai pas trouvé ce que j'avais besoin. C'est sans doute parce que l'exposition de mon problème étant trop complexe , vous l'avez mal compris, c'est donc aussi ma faute.

En une simple phrase, voici ce que je dois faire :

Je veux afficher l'image apparaissant à l'intérieur d'une plage (source) dans une shape rectangulaire (cible) appelée "Loupe" 4 à 12 fois plus grande mais ayant les mêmes proportions (pour ne pas déformer l'image). La plage source et la cible sont sur la même feuille Excel.

Je cherche donc une expression du style "=Range.Address" permettant d'affecter à ma loupe l'image apparaissant à l'intérieur d'une plage de cellule.

Merci de votre aide si vous pouvez m'aider...

Georges

Bonsoir GEOLEK, BsAlv (), LouReeD (), le forum,

2 solutions dans ce post, si j'ai bien compris la demande :

La première. En cliquant sur l'icône présente dans la "Feuil1" du classeur joint, 2 InputBox permettent de choisir une plage de données (par exemple : $E$13:$G$15) puis un coefficient d'agrandissement (4, 5, 6,..., 12). L'image créée est positionnée en cellule O3 (modifiable dans le code du Module1).

Voici le classeur :

La deuxième. C'est un post répondu en août 2024, qui semble avoir plu, d'une solution un peu différente mais qui peut vous intéresser, avec un UserForm et son "Frame" (cadre) qui agrandira une image au survol de la souris.

Il s'agissait d'agrandir un graphique avec un facteur de zoom modifiable, mais il faudra certainement adapter le code à vos souhaits.

Je vous laisse découvrir le post en question en cliquant sur le lien :

https://forum.excel-pratique.com/excel/creer-une-loupe-sur-graphique-195139#p1215001

Concernant les courbes de Bézier, euh, comment dire...., je ne suis pas du tout spécialiste, je crains de ne pouvoir vous aider...

Cordialement.

AL 22

Rechercher des sujets similaires à "afficher plage forme"