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

Ovomaltine94 Messages postés 2 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 23 octobre 2008 - 22 oct. 2008 à 21:20
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 23 oct. 2008 à 15:32
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...

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

Si oui, quelle formule dois-je utiliser?

Merci pour votre aide

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 oct. 2008 à 22:04
VB6... => VBA
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
23 oct. 2008 à 00:26
Salut,

ici tu n'est pas dans le bon theme ! Pour Excel et plus generalement le VBA c'est ici :

--->  Thèmes / [forum-VISUAL-BASIC_1.aspx Visual Basic 6] / [theme-LANGAGES-DERIVES_287.aspx Langages dérivés] / [theme-VBA_244.aspx VBA] /

Non non !!! ne reposte pas ailleurs on continu malgré tout avec celui-ci !

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+
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
23 oct. 2008 à 00:29
oups ...

[../auteur/PCPT/401740.aspx PCPT] : Salut tu es deja passe par la a ce que je vois

bon ben [../auteur/OVOMALTINE94/1504796.aspx Ovomaltine94]maintenant tu es dans le bon theme... on dit merci [../auteur/PCPT/401740.aspx PCPT] et on sourit

A+
0
Ovomaltine94 Messages postés 2 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 23 octobre 2008
23 oct. 2008 à 07:48
Merci beaucoup Bigfish,



Quand je clique sur "mon télécharger", ma boîte s'ouvre bien, s'est déjà super bien , par contre la photo ne se met pas où je souhaite



En fait je voudrais qu'elle se mette dans un groupe de cellule que j'ai nommé Photo, qu'est-ce que je dois changer à la formule?

Merci encore à tous, j'ai galéré pendant plusieurs jours sur les forums sans rien trouver
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
23 oct. 2008 à 15:32
Salut,

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

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

A+
End Sub
0
Rejoignez-nous