Insérer une photo grâce à un bouton de commande

ovomaltine94

XLDnaute Nouveau
Bonjour à tous,

Autant vous le dire tout de suite, je n'y connais absolument rien en Visual Basic, mais bon j'essaie de me débrouiller...:rolleyes:

J'ai crée un bouton de commande sur un feuille excel et je souhaiterais que celui-ci me permette en cliquant dessus d'afficher la boîte "parcourir" pour aller chercher une photo sur un serveur ou autre, et qu'ensuite, une fois la photo choisie, qu'elle s'insère à un endroit précis dans des cellules prédéfinies sur ma feuille

Est-ce possible :confused::confused:

Si oui, quelle formule dois-je utiliser?

Merci pour votre aide :):):)
 

Bigfish

XLDnaute Occasionnel
Re : Insérer une photo grâce à un bouton de commande

Salut,

pas sur que cela sufise l'enregistreur de macro, mon cher ami staple1600;).

voici une solution :

Sub TuVeuxMaPhoto()
Dim FdFp As FileDialog, MaCellule As Range, Ratio As Double, HauteurPhoto As Double
HauteurPhoto = 72
Set MaCellule = ActiveCell.Cells(1)
Set FdFp = Application.FileDialog(msoFileDialogFilePicker)
With FdFp
.AllowMultiSelect = False
.Filters.Add "Images", "*.bmp; *.gif; *.jpg; *.jpeg"
If .Show = -1 Then
'ce qui suit permet de respecter le ratio hauteur/largeur en fonction de la hauteur finale voulu
'et ceci tout en tenant compte de l'echelle specifique de la largeur d'une cellule.
'Les dimensions de la photo seront alors completement adapter a la cellule active.
ActiveSheet.Pictures.Insert(.SelectedItems(1)).Select
With Selection
Ratio = .ShapeRange.Height / .ShapeRange.Width
MaCellule.RowHeight = HauteurPhoto
MaCellule.ColumnWidth = (MaCellule.ColumnWidth / MaCellule.Columns.Width) * HauteurPhoto * Ratio
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = HauteurPhoto
.ShapeRange.Width = HauteurPhoto * Ratio
.Placement = xlMoveAndSize
End With
End If
End With
Set FdFp = Nothing
End Sub

A+:)
 

ovomaltine94

XLDnaute Nouveau
Re : Insérer une photo grâce à un bouton de commande

J'y connais rien en Visual, mais j'y suis quand même arrivée avec sa formule, héhé!!!:D:D:D

Merci encore bigfish :)

La seule chose c'est qu'effectivement, la photo ne se met pas où je souhaite. Je voudrais qu'elle se place dans un groupe de cellule que j'ai nommé Photo.:(

Que dois-je modifier dans la formule :confused:

Merci encore

A bientôt,
 

Bigfish

XLDnaute Occasionnel
Re : Insérer une photo grâce à un bouton de commande

Salut,

ben il faut chercher un petit peu car ce n'esr vraiment pas complique. Suivant quel critere(s) tu veux inserer les photos ?

Dans tout les cas l'insertiont ce fait sur la cellule active. Donc il faut adapter le code pour activé la cellule qui doit recevoir la photo.

j'ai corrige la ligne en bleu dans le code car le ratio n'était pas respecté

Sub TuVeuxMaPhoto()
Dim FdFp As FileDialog, MaCellule As Range, Ratio As Double, HauteurPhoto As Double
HauteurPhoto = 72
Set MaCellule = ActiveCell.Cells(1)
Set FdFp = Application.FileDialog(msoFileDialogFilePicker)
With FdFp
.AllowMultiSelect = False
.Filters.Add "Images", "*.bmp; *.gif; *.jpg; *.jpeg"
If .Show = -1 Then
'ce qui suit permet de respecter le ratio hauteur/largeur en fonction de la hauteur finale voulu
'et ceci tout en tenant compte de l'echelle specifique de la largeur d'une cellule.
'Les dimensions de la photo sera alors completement adapter a la cellule active
ActiveSheet.Pictures.Insert(.SelectedItems(1)).Select
With Selection
Ratio = .ShapeRange.Width / .ShapeRange.Height
MaCellule.RowHeight = HauteurPhoto
MaCellule.ColumnWidth = (MaCellule.ColumnWidth / MaCellule.Columns.Width) * HauteurPhoto * Ratio
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = HauteurPhoto
.ShapeRange.Width = HauteurPhoto * Ratio
.Placement = xlMoveAndSize
End With
End If
End With
Set FdFp = Nothing
End Sub

A+:)
 

ovomaltine94

XLDnaute Nouveau
Re : Insérer une photo grâce à un bouton de commande

:(Ben à priori, c'est certainement très facile pour des personnes qui maîtrisent Visual Basic, mais pour une novice, c'est un peu galère.

J'ai essayé toute la soirée des tas de codes différents, sans succès.:(:(:(

Je veux simplement que ma photo se place toute seule sur la cellule C39 sans redimensionner les colonnes et lignes et qu'importe la cellule sur laquelle on a cliqué avant de télécharger la photo.:confused:

Un tit coup de main me serait fort utile, parce que là ça me déprime.:eek:

Voici ma formule:

Private Sub Télécharger_Click()
Dim FdFp As FileDialog, MaCellule As Range, Ratio As Double, HauteurPhoto As Double
HauteurPhoto = 150

Set MaCellule = ActiveCell.Cells(1)

Set FdFp = Application.FileDialog(msoFileDialogFilePicker)
With FdFp
.AllowMultiSelect = False
.Filters.Add "Images", "*.bmp; *.gif; *.jpg; *.jpeg"
If .Show = -1 Then

ActiveSheet.Pictures.Insert(.SelectedItems(1)).Select

With Selection
Ratio = .ShapeRange.Width / .ShapeRange.Height
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = HauteurPhoto
.ShapeRange.Width = HauteurPhoto * Ratio
.Placement = xlMoveAndSize

End With
End If
End With
Set FdFp = Nothing


End Sub

J'ai viré les 2 lignes suivantes parce que ça modifiait la taille de mes colonnes et lignes, peut être à tort???

MaCellule.RowHeight = HauteurPhoto
MaCellule.ColumnWidth = (MaCellule.ColumnWidth / MaCellule.Columns.Width) * HauteurPhoto * Ratio

Voilà voilà, merci encore pour votre aide.:):):)

A+
 

Bigfish

XLDnaute Occasionnel
Re : Insérer une photo grâce à un bouton de commande

Salut,

il fallait bien te laisser chercher un petit peu non ? ;)

Private Sub Télécharger_Click()
Dim FdFp As FileDialog, MaCellule As Range, Ratio As Double, HauteurPhoto As Double
HauteurPhoto = 150

range("C39").select

Set FdFp = Application.FileDialog(msoFileDialogFilePicker)
With FdFp
.AllowMultiSelect = False
.Filters.Add "Images", "*.bmp; *.gif; *.jpg; *.jpeg"
If .Show = -1 Then

ActiveSheet.Pictures.Insert(.SelectedItems(1)).Select

With Selection
.ShapeRange.LockAspectRatio = msotrue
.ShapeRange.Height = HauteurPhoto
.ShapeRange.Width = HauteurPhoto * Ratio
End With
End If
End With
Set FdFp = Nothing
End Sub

A+:)
 
J

jacky 17

Guest
Re : Insérer une photo grâce à un bouton de commande

Bonjour forum
ovomaltine94
Staple1600
Bigfish
J’ai aussi du mal à me faire comprendre
Je ne connais pas vraiment le VBA et encore moins l’anglais
Mais sur certain code j’ai peu les modifiés regarde le classeur joins si cela correspond à t’on souhais
La macro se trouve dans la feuil mais se positionne aussi dans un module
A+
Cordialement
Jacky 17
 

Pièces jointes

  • code_photo.zip
    19.6 KB · Affichages: 140

ovomaltine94

XLDnaute Nouveau
Re : Insérer une photo grâce à un bouton de commande

Avec Visual, je me suis rendue compte qu'à chaque fois on a des petites surprises...

En fait ce document sera partagé, j'aurais souhaité donc le vérouiller et faire en sorte qu'on ne puisse pas modifier certaines données, sauf qu'en vérouillant ma feuille, la macro ne veut plus lancer ma boîte, on me dit qu'il faut dévérouiller la feuille?

Que faut-il faire?

Sinon une autre petite question, quand on clique sur le bouton de commande pour ouvrir une photo, si on clique sur annuler, visual indique un message d'erreur également, y a t'il un moyen d'ajouter une formule permettant cette manipulation?

Merci pour votre aide à tous, j'aurais bien galéré sans vous.

A bientôt,
 

ovomaltine94

XLDnaute Nouveau
Re : Insérer une photo grâce à un bouton de commande

En fait j'ai résolu mon problème pour la protection de la feuille, j'ai trouvé toute seule comme une grande...héhé

Par contre, pour le "annuler" ça m'a pas l'air si simple, votre aide me serait précieuse...

A+ :)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz