Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

YANN-56

XLDnaute Barbatruc
Bonsoir à tous,

Voici un épilogue de ce que je cherchais depuis longtemps:

Adapter la "Loupe-ti" (Que beaucoup doivent connaître), à un USF.

Je bloque totalement sur la nervosité du curseur et du rafraichissement intempestif.
(Voir la présence du curseur sous forme de sablier)

Notamment, pour que la loupe fonctionne correctement dans les angles hauts et bas à gauche,
il faut faire appel à un escargot...! Sauf en sortant violemment la souris de l'image.

Il y a là certainement des adaptations du code que je ne sais pas faire;
ce pourquoi je fais appel à vous.

Merci d'avance.

Yann
 

Pièces jointes

  • LOUPE_YANN_1.xls
    47 KB · Affichages: 86
  • OVALE.jpg
    OVALE.jpg
    6.3 KB · Affichages: 93

tbft

XLDnaute Accro
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Bonsoir

Je regarde demain

Mais dans mon envoi de 19:53, j'ai fais une varaible globale dans le module chargement_images
VB:
Option Explicit

Public Const nom_image = "\toto.jpg"

As tu fais la même chose?
Bonne nuit et à demain...
 

tbft

XLDnaute Accro
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Salut Yann

J'ai un petit service à te demander:
Pourrais tu modifier ton code afin qu'il puisse:
demander de choisir une image et l'enregistrer sous un nom bidon (afin d'éviter de détruire l'image initiale)
remplacer le textbox par une barre de defilement (pour le zoom)

Si tu ne peux pas le faire dis le moi...
 

YANN-56

XLDnaute Barbatruc
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Bonjour TBFT,

Dans ma version initiale, le module "CHARGEMENT_IMAGE" créer une image
appelée "PROVISOIRE". les modifications ne sont appliquées que sur celle-ci.
En annihilant le "Kill" tu verras dans ton Dossier la présence de cette image
transformée suivant les dernières manœuvres,
alors que l'originale reste intacte.

Dans le dernier Classeur que j'ai joint ci-dessus, j'ai utilisé des Popups
qui par suite d'un click sur l'image de l'USF1 propose le choix des zooms.

J'ai préféré cette façon de faire à une barre de défilement (Qui clignote désagréablement)
ou à SpinButton car quand on vient les utiliser, le curseur est déplacé et actualise inutilement
la zone de zoom.

Quant au choix de la photo à traiter, j'avais dans l'idée de charger celles d'un Dossier choisi
dans une ListView, et par Double click sur les Items récupérer le chemin de celles-ci.
(Je me charge de cette option)

Qu'en penses-tu? (Popups & ListView)

Par ailleurs, j'aimerais rester au stade de ce dernier Classeur qui marche bien.
Tu as ajouté ta touche de perfectionniste que j'admire, mais je pense, prématurée.
Je suis en train de faire des tests pour limiter la taille de l'image sur la page
qui devait résoudre le problème issu de celle trop grande de "FILLE.jpg"

Amicalement.

Yann
 

tbft

XLDnaute Accro
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Re

lors du test avec la photo que tu a mis a disposition, je me suis aperçu d'une chose:
les premier test était fait sur une image carré....
c'est pour cela que sur la derniere version, je modifie la taille des images et des usf, juste pour ne pas déformé....

Note : je prefere dire deux la même chose que de passer à coté...
 

YANN-56

XLDnaute Barbatruc
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Bonsoir TBFT,

De la discussion jaillit la lumière!

Je te joins l'essai de l'instant, qui passe outre le TextBox.
Il reste que le rognage de droite n'est pas satisfaisant.

Je maîtrise mal les variables, et peut-être cela vient de là.
(Déjà je ne suis pas doué, mais tu as rebaptisé celles-ci!... Je suis un peu perdu...)

On ne passera pas à coté d'éviter ces déformations d'image par la suite... C'est certain.

S'il te plait, regarde en premier lieu cette utilisation du Popup.

Je vais travailler sur la ListView, et te laisser à ce dernier souci de visualisation.

Amicalement.

Yann

P.J. Stade actuel de mon coté.
 

Pièces jointes

  • LOUPE_YANN_TBFT.zip
    29.2 KB · Affichages: 24

YANN-56

XLDnaute Barbatruc
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Bonsoir TBFT, et à ceux qui passeront par ici (Bien que silencieux! :D )

Voici l'option de recherche de l'Image à traiter.

La première utilisation par double-click sur la ListView
fonctionne comme il le faut. Sauf que par la suite...
avec le choix d'une autre Image cela plante.

Le paramétrage des Popups en est certainement responsable.
Je vais continuer à chercher comment palier ce bug.

Je te soumets ma dernière bidouille en attendant tes commentaires éclairés.

A te lire.

Amicalement.

Yann

P.S. Le Fichier était trop gros, je le dépose donc ici:
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Bonsoir TBFT, et à ceux qui passeront par là,

Le choix successif des images ne pose plus de problème.

J'ai par ailleurs forcé la taille de l'image "PROVISOIRE" en écrivant: SH. width = 130 et SH.Height = 130....Ce qui ramène son format initial de 1600 x 1200 Pixels à 231 x 174
L'initialisation de l'Image de l'USF1 est correcte, mais le zoom ne fonctionne pas sur celle-ci.

Pour ce qui est des images "OVALE" et "ROND" pas de souci,
si ce n'est cette affaire de rognage à droite que j'ai dû casser!

Voici rectifié mon dernier envoi.

Au plaisir de te lire.

Yann
 

Pièces jointes

  • LOUPE_YANN_TBFT_03_11.zip
    33.1 KB · Affichages: 24

tbft

XLDnaute Accro
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Bonsoir Yann

J'ai essayé ton dernier fichier.
Il me demande de créer un dossier mais il me dit que ce n'est possible (voir image).
Si je réponds annuler ça bug.....
Peux tu m'éclairer,stp?
Car j'aimerai essayer cette version...
 

Pièces jointes

  • message erreur.jpg
    message erreur.jpg
    16.9 KB · Affichages: 34
  • message erreur.jpg
    message erreur.jpg
    16.9 KB · Affichages: 32
  • message erreur.jpg
    message erreur.jpg
    16.9 KB · Affichages: 34

tbft

XLDnaute Accro
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

RE RE RE

JE viens de comprendre ma boulette.
Je ne devais pas pas créer un nouveau fichier mais en choisir un....
Par contre il manque un truc dans le code usf1.init.
VB:
  Set RECHERCHE = Application.FileDialog(msoFileDialogFolderPicker)
     With RECHERCHE
      .Title = "     CHOISIR UN DOSSIER"
      .AllowMultiSelect = False
          If .Show = -1 Then
             For Each CHOIXDOSSIER In .SelectedItems
               DOSSIER_CHOISI = CHOIXDOSSIER
             Next CHOIXDOSSIER
         Else               'j'ai ajouter ce bout de code pour sortir quand 
          Me.Hide           ' on répond annuler à la question
          Exit Sub
         End If
    End With


Je continue mes investigations...

Un truc (ti prend ou ti prend pas c'est toi qui vois)
Personnellement,sous vba, j'ai configuré la tabulation à deux espaces.
Et, j’insère un tabulation à chaque niveau par exemple:
VB:
  for i=1 to nb
    if toto(i)="truc" then
      'blabla
      'tototititutu
      'tototititutu
      'tototititutu
      'tototititutu
    else
      'tototititutu
      'tototititutu
      'tototititutu
      'tototititutu
    end if
    'tototititutu
    'tototititutu
  next i
je trouve que cela rend la structure du code plus lisible.
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Re Bonsoir tbft,

Il est vrai que le plantage issu de la fermeture prématurée (Sans Choix) dans la boite de dialogue de recherche du Dossier n'est pas géré pour 'instant.

Donc tu es sensé avoir choisi le Dossier contenant les images
"ROND", "OVALE" et "FILLE" ainsi que LOUPE_YANN_TBFT_03_11

On va devoir ne pas se disperser en s'occupant trop de la forme,
et travailler sur le même Dossier.

Je te joins le global de celui sur lequel je travaille;
pour que nous parlions de la même chose.
Cijoint.fr - Service gratuit de dépôt de fichiers

Il contient tes améliorations et les miennes.

En prenant en compte l'utilisation du Popup, de la ListView,
de l'impossibilité de faire un Zoom sur l'image "FILLE",
et du rognage à droite qui n'est pas bon.

Il n'en demeure pas moins que notre projet est en bonne voie.

A te lire.

Yann
 

tbft

XLDnaute Accro
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Bonjour tout le monde
Coucou Yann

dans la macro Image1_MouseMouve, j'ai écris une connerie
VB:
'limitation des curseurs au dimensions de l'image1
z_X = Application.Max(Application.Min(X - Me.Image1.Left, Me.Image1.Width), 0)
z_y = Application.Max(Application.Min(Y - Me.Image1.Top, Me.Image1.Height), 0)

il fallait écrire ceci:
VB:
z_X = Application.Max(Application.Min(X, Me.Image1.Width), 0)
z_y = Application.Max(Application.Min(Y, Me.Image1.Height), 0)
 

YANN-56

XLDnaute Barbatruc
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

Bonsoir tbft, et à ceux qui passeront par ici,

Vachement heureux de voir que tu aies écrit une bêtise.
Ouf!!! Je suis un peu moins complexé au regard des miennes.

Tu ne m'as toujours pas dit si mon dernier jet te convenait ou pas dans son idée.

Je rectifie le tir avec ce que tu viens de me dire, et je reviens.

Amicalement, et à plus tard si tu donnes suite.

Yann
 

tbft

XLDnaute Accro
Re : Ralentir une macro ou un Repaint, voire gérer le mouvement d'un Curseur?

J'ai regardé un peu plus attentivement ton forçage à l'affichage
VB:
 Sub CHARGEMENT_IMAGE()
Dim SH As Shape
Dim CO As ChartObject
  CHEMIN = ThisWorkbook.Path & "\PROVISOIRE.jpg"
  Set S = Sheets("ACCUEIL")
  Set SH = S.Shapes("SUJET")
  SH.Width = 130
  SH.Height = 130

  Set CO = S.ChartObjects.Add(SH.Left, SH.Top, SH.Width, SH.Height)
  SH.Copy
  With CO.Chart
    .Paste
    .Export Filename:=CHEMIN
  End With
  CO.Delete
  UserForm1.Image1.Picture = LoadPicture(CHEMIN)
  Kill CHEMIN
End Sub

le faite de forcer la largeur puis la hauteur sans avoir dé-valider que l'image doit toujours conserver ces proportions, donne des trucs bizarres.

Je pense qu'il voudrait reprendre (en corrigeant) la partie du code qui redimensionne la taille des image1....

Qu'en pense tu????
 

Statistiques des forums

Discussions
314 563
Messages
2 110 741
Membres
110 910
dernier inscrit
Sergio 6531