Microsoft 365 VBA : Rogner une capture d'écran

  • Initiateur de la discussion Initiateur de la discussion 2pi_N
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

2pi_N

XLDnaute Nouveau
Bonjour,

J'ai un fichier Excel qui contient une macro qui prend une capture d'écran (je me place dans la feuille où je veux prendre la capture) et la colle dans une autre feuille, ma macro fonctionne jusque-là mais j'éprouve de la difficulté à rogner la capture d'écran

Voici mon code :
VB:
Sub capture_ecran()

Application.Wait Now + TimeValue("00:00:04")

Application.SendKeys "({1068})", True
DoEvents
Workbooks("Classeur2.xlsm").Worksheets("Feuil1").Paste

Dim shp As Shape
With ActiveSheet
    Set shp = Sheets("Feuil1").Shapes(Sheets("Feuil1").Shapes.Count)
End With

End Sub

1685969528015.png


L'image rognée que je veux obtenir après rognage ci-dessous
1685969605439.png


Dans l'exemple, je voudrais obtenir seulement la zone du graphique en rognant.
Y-a-t-il un moyen de rogner x longueur par la gauche ; y longueur par le bas ; z longueur par la droite et w longueur par le haut ? J'ai lu aussi des conversions à faire entre les pixels et centimètres de résolution d'image concernant le rognage
J'ai pensé aux méthodes CropLeft, CropBottom, CropRight de PictureFormat mais je tombais sur des erreurs, je dois mal les utiliser. J'ai essayé aussi l'enregistreur de macros mais je n'obtiens pas le résultat escompté ou je tombe sur des erreurs

Quelle sont les fonctions qu'il faut utiliser pour rogner une image par VBA ?

Merci d'avance pour votre aide
 

Pièces jointes

Solution
Merci @vgendron, ce n'est pas exactement ce que je recherchais à faire, je voulais effectuer des captures d'écrans et rogner des images à des positions déjà inscrites dans le programme sans que l'utilisateur entre les positions de rognage.
J'ai donc poursuivi mes recherches et trouvé ce que je cherchais, on peut utiliser les méthodes CropLeft, CropBottom, CropRight et CropTop de PictureFormat qui utilisent des points pour rogner une image dans une macro : il faut convertir la longueur à retirer (affichée en cm) en points parce que ces méthodes fonctionnent en terme de points
1 cm équivaut à 28,35 points
shp.PictureFormat.CropLeft = 1699 ' on va retirer à gauche environ 59,92 cm
shp.PictureFormat.CropBottom = 87.9...
Hello

vas voir du coté des ressources
patricktoulon a fait quelque chose de pas mal du tout: si ca peut t'aider
 
Merci @vgendron, ce n'est pas exactement ce que je recherchais à faire, je voulais effectuer des captures d'écrans et rogner des images à des positions déjà inscrites dans le programme sans que l'utilisateur entre les positions de rognage.
J'ai donc poursuivi mes recherches et trouvé ce que je cherchais, on peut utiliser les méthodes CropLeft, CropBottom, CropRight et CropTop de PictureFormat qui utilisent des points pour rogner une image dans une macro : il faut convertir la longueur à retirer (affichée en cm) en points parce que ces méthodes fonctionnent en terme de points
1 cm équivaut à 28,35 points
shp.PictureFormat.CropLeft = 1699 ' on va retirer à gauche environ 59,92 cm
shp.PictureFormat.CropBottom = 87.9 ' on va retirer en bas environ 3,1 cm
shp.PictureFormat.CropRight = 487.33 ' on va retirer environ à droite 17,19 cm
shp.PictureFormat.CropTop = 212 ' on va retirer environ 7,48 cm

Cordialement,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour