XL 2010 Macro pour coller une capture d'écran avec redimensionnement de l'image

guegan56

XLDnaute Nouveau
Bonjour à tous,

Je sollicite votre aide afin dre réaiser une macro permettant de :
Cliquer sur un bouton pour coller le copier fait au préalable avec redimensionnement de l'image :
Si clic bouton alors coller image entre C58 et D58
idem pour le carré du dessous (si clic nouveau bouton alors coller image entre C61 et D61
l'image ne doit pas excéder les colonnes C et D et la longueur serait à adapter

Mon fichier contient des macros pour afficher / masquer des lignes donc peut etre que le bouton foulaire serait mieux ...

NB : Je ne peux pas charger de fichier sur mon pc.

Pourriez vous svp m'indiquer comment faire cela ?

En vous remerciant par aavnce,
Cordialement
 

Pièces jointes

  • Testtt.xlsm
    41.7 KB · Affichages: 11

Nairolf

XLDnaute Accro
Salut,

Une idée de code pour le collage d'une capture d'écran (colle aussi du texte) :
VB:
Sub CollageCapture()

Dim largeur As Double

On Error Resume Next
ActiveSheet.Select
largeur = Selection.Width + Selection.Offset(, 1).Width
ActiveSheet.Paste
Selection.ShapeRange.Width = largeur

End Sub
 

guegan56

XLDnaute Nouveau
Salut Nairolf,

Ton code fonctionne parfaitement (copier coller + redimension).
J'ai toutefois deux sujets :
1) le copier coller se fait en cellule E58 à F59 alors que je souhaiterai que cela se fasse en C58 à 59
2) j'ai affecté la macro à un bouton formulaire avec la proporiété dimensionner et déplacer avec les cellules.
Aussi quand je masque / démasque des lignes, le bouton se cache et se réaffiche (cest ce que je souhaite).
Nénamoins, lorsque je ferme et ensuite je réouvre le fichier, le bouton "disparait".
J'ai déjà partagé mon problème mais je ne trouve pas de solution ... c'est le dernier truc qui me manque
1604492212332.png
 

Nairolf

XLDnaute Accro
Le code que je t'ai donné permet de coller sur la cellule sélectionnée, pour coller toujours sur C58:D58 :
VB:
Sub CollageCapture()

Dim largeur As Double

On Error Resume Next
Range("C58").Select
largeur = Range("C58").Width + Range("C58").Offset(, 1).Width
ActiveSheet.Paste
Selection.ShapeRange.Width = largeur

End Sub

Je n'ai pas réussi à reproduire ton problème avec le bouton.
 

guegan56

XLDnaute Nouveau
Merci beaucoup,

Pour le problème 2 :
je dois masquer des lignes contenant ces Activex. Ils sont alors automatiquement masqués avec la ligne car ils suivent le déplacement et le formalisme des cellules.

Malheureusement, si j'enregistre dans cet état (lignes cachées), que je ferme mon classeur et que je le réouvre, tous mes Activex qui était cachés ont disparus ou plus précisément sont d'une taille 0 quelque part sur la feuille.

J'ai lu des articles où il indique que ce serait un bug de excel 10.

Je ne sais pas quoi faire pour contourner cela.
Aurais tu une idée ?
 

Nairolf

XLDnaute Accro
Salut,

Si tu cliques droit sur ton bouton ActiveX et que tu choisis "Format de contrôle", puis que accède à l'onglet "Propriétés", il faut sélectionner l'option "Déplacer sans dimensionner avec les cellules".

Et dans ton code vba tu rajoutes
VB:
Worksheets("Feuil1").CommandButton1.Visible = False
et
VB:
Worksheets("Feuil1").CommandButton1.Visible = True
selon que tu veuilles le cacher ou le montrer.
 

Statistiques des forums

Discussions
312 104
Messages
2 085 344
Membres
102 865
dernier inscrit
FreyaSalander