Faire apapraitre en premier une image

Julien77

XLDnaute Junior
Bonjour Forum,

Dans un modul j'ai ca :

Code:
Sub Feuil1_Photo1_QuandClic()
   'procedure sur la photo1
    
    Dim x As Range: Set x = Sheets("Feuil1").Range("B13")
    'declaration de la variable x
    
    Application.ScreenUpdating = False
    'mise a jour de l ecran desactivée
    
    x.Value = x.Value + 1
     'incrémentation de x (compteur)
    If x.Value > 2 Then x.Value = 1
    'si x est supérieur à 2 alors x = 1

    If Sheets("Feuil1").Range("B13") = 1 Then
    'si la cellule B13 de la feuille 1 = 1 alors
        ActiveSheet.Shapes("Photo1").Select
        'selectionner photo1
        Selection.ShapeRange.ScaleWidth 4, msoFalse, msoScaleFromTopLeft
        Selection.ShapeRange.ScaleHeight 4, msoFalse, msoScaleFromTopLeft
        'augmenter les dimensions de l'objet par 4
        
        Selection.ShapeRange.Left = ActiveSheet.Range("D9").Left
        Selection.ShapeRange.Top = ActiveSheet.Range("D9").Top
        
        Selection.ShapeRange.ZOrder msoBringToFront
        Sheets("Feuil1").Range("N3").Select
        'place l'image au premier plan
        
    Else
        ActiveSheet.Shapes("Photo1").Select
        'selection photo1
        Selection.ShapeRange.ScaleWidth 0.25, msoFalse, msoScaleFromTopLeft
        Selection.ShapeRange.ScaleHeight 0.25, msoFalse, msoScaleFromTopLeft
        'diminue en multipliant les dimensions de l'objet par 0.4
        
        Selection.ShapeRange.Left = ActiveSheet.Range("B11").Left
        Selection.ShapeRange.Top = ActiveSheet.Range("B11").Top
        
        Selection.ShapeRange.ZOrder msoBringToFront
        Sheets("Feuil1").Range("N3").Select
        'place l'image au premier plan
    End If
    
End Sub

Cette procedure me permet de zoomer sur une photo. Donc lorsque je clik sur la photo elle s agrandit et en reclikan dessus elle se remet à sa taille initiale.

Le problème : Sur 2007, quand je clik sur la photo, cette photo n est pas en premier plan du coup, plusieurs choses apparaissent dessus (ecriture, zone de texte etc..). Comment peut on le mettre, svp, en premier plan ?

Merci de votre reponse.
 

Hulk

XLDnaute Barbatruc
Re : Faire apapraitre en premier une image

Hello,

Tu as bien mis le Selection.ShapeRange.ZOrder msoBringToFront, mais pas au bon endroit !

Fallait la mettre en début de la procédure de la condition et aussi dans le Else..
Code:
    If Sheets("Feuil1").Range("B13") = 1 Then
        ActiveSheet.Shapes("Photo1").Select
        Selection.ShapeRange.ZOrder msoBringToFront
        ...
        ...
    Else
        ActiveSheet.Shapes("Photo1").Select
        Selection.ShapeRange.ZOrder msoBringToFront
        ...
        ...
 

Julien77

XLDnaute Junior
Re : Faire apapraitre en premier une image

ALORS hulk, jai pris note de ta solution et je l ai aplliqué mais même resultat. C bizarre la ligne de code est bien pris en compte car l image passe devant certain element mais pas pour d autres (chekbox, texbox et label). Ca devient agacant car je ne vois pas quoi faire, à savoir que sur excel 2003, la procedure tel que je l ai envoyé marche très bien, l image passe au premier plan devant tous les élements contenus en feuille1.

Si vous avez autre chose, n'hésitez pas loool.
 

Discussions similaires