PMG
XLDnaute Junior
Bonjour le fil, le forum,
Je me permets de partager une petite "astuce" que j'ai trouvé en cherchant à résoudre un problème lié à l'utilisation de l'appareil photo.
En effet, lors de l'utilisation de plusieurs images liées (tableaux en particulier) un problème récurrent de lenteur se fait sentir.
Celui-ci serait dû à la mise à jour intempestive de la liaison, rendant l’exécution de code VBA très lente (je suis passé de 3sec à 13sec environ avec 10 tableaux).
Voici l'une des solutions traduite et expliquée (Source: http://dailydoseofexcel.com/archives/2010/05/12/performance-of-linked-pictures/) avec mes connaissances de newbie:
1/ Gestionnaire de nom
Créer un nom: PicOn
Référence: 1
2/Gestionnaire de nom
Créer un nom: Pic1
Référence: =SI(PicsOn=1;Feuil1!$C$3:$I$10;"")
3/VBA
4/Image
Une fois votre image créer, dans la bar de formule remplacer:
=$C$3:$I$10 par =Pics1
5/Utilisation
Intégré les codes VBA (3) avec des boutons ou ds un code.
En espérant que cela puisse en dépanner certains, car l'utilisation de l'appareil photo est vraiment pratique!
Les remarques, modifications, etc, sont les bienvenus!
PMG
Je me permets de partager une petite "astuce" que j'ai trouvé en cherchant à résoudre un problème lié à l'utilisation de l'appareil photo.
En effet, lors de l'utilisation de plusieurs images liées (tableaux en particulier) un problème récurrent de lenteur se fait sentir.
Celui-ci serait dû à la mise à jour intempestive de la liaison, rendant l’exécution de code VBA très lente (je suis passé de 3sec à 13sec environ avec 10 tableaux).
Voici l'une des solutions traduite et expliquée (Source: http://dailydoseofexcel.com/archives/2010/05/12/performance-of-linked-pictures/) avec mes connaissances de newbie:
1/ Gestionnaire de nom
Créer un nom: PicOn
Référence: 1
2/Gestionnaire de nom
Créer un nom: Pic1
Référence: =SI(PicsOn=1;Feuil1!$C$3:$I$10;"")
3/VBA
VB:
Sub TurnOffPictures()
ThisWorkbook.Names("PicsOn").RefersTo = "0"
End Sub
Code:
Sub TurnOnPictures()
ThisWorkbook.Names("PicsOn").RefersTo = "1"
End Sub
4/Image
Une fois votre image créer, dans la bar de formule remplacer:
=$C$3:$I$10 par =Pics1
5/Utilisation
Intégré les codes VBA (3) avec des boutons ou ds un code.
En espérant que cela puisse en dépanner certains, car l'utilisation de l'appareil photo est vraiment pratique!
Les remarques, modifications, etc, sont les bienvenus!
PMG
Code:
Sub Pics()
Dim f1 As Worksheet, f2 As Worksheet
Application.ScreenUpdating = False
Set f1 = Sheets("Feuil1")
Set f2 = Sheets("Feuil2")
'Défnition de la zone à copier
f1.Range("C3:I10").Copy
'Collage de la photo
With f2
.Range("E1").Select
.Pictures.Paste.Name = "Pics1"
Application.CutCopyMode = False
End With
With ThisWorkbook
.Names.Add Name:="PicsOn", RefersTo:="=1"
.Names.Add Name:="Pics1", RefersToR1C1:= _
"=IF(PicsOn=1,Feuil1!R3C3:R10C9,"""")"
End With
f2.Shapes.Range(Array("Pics1")).Select
Selection.Formula = "=Pics1"
End Sub