salut christian tu as essayé de faire cela avec l'enregistreur de macros?? c'est un bon début, je pense jps
Christian Raoux a écrit:
Salut la liste
Je cherche à inserer une image dans une feuille excel
l'utilisateur doit cliquer sur bouton pour lancer une macro
avec : Application.Dialogs(xlDialogInsertPicture).Show
mais comment donner à l'image la taille voulue et sa position
merci d'avance
Christian
Misange
Bonjour, Regarde ici : http://disciplus.simplex.free.fr/classeursxl/av-listeimages.zip et là http://disciplus.simplex.free.fr/classeursxl/av-boitedialxl5.zip
"Christian Raoux" a écrit dans le message de news:
Salut la liste
Je cherche à inserer une image dans une feuille excel
l'utilisateur doit cliquer sur bouton pour lancer une macro
avec : Application.Dialogs(xlDialogInsertPicture).Show
mais comment donner à l'image la taille voulue et sa position
merci d'avance
Christian
Bonjour,
Regarde ici :
http://disciplus.simplex.free.fr/classeursxl/av-listeimages.zip
et là
http://disciplus.simplex.free.fr/classeursxl/av-boitedialxl5.zip
Bonjour, Regarde ici : http://disciplus.simplex.free.fr/classeursxl/av-listeimages.zip et là http://disciplus.simplex.free.fr/classeursxl/av-boitedialxl5.zip
"Christian Raoux" a écrit dans le message de news:
Salut la liste
Je cherche à inserer une image dans une feuille excel
l'utilisateur doit cliquer sur bouton pour lancer une macro
avec : Application.Dialogs(xlDialogInsertPicture).Show
mais comment donner à l'image la taille voulue et sa position
merci d'avance
Christian
Christian Raoux
Merci je vais essayer
christian
"Misange" écrivait news::
Bonjour, Regarde ici : http://disciplus.simplex.free.fr/classeursxl/av-listeimages.zip et là http://disciplus.simplex.free.fr/classeursxl/av-boitedialxl5.zip
Bonjour,
Regarde ici :
http://disciplus.simplex.free.fr/classeursxl/av-listeimages.zip
et là
http://disciplus.simplex.free.fr/classeursxl/av-boitedialxl5.zip
Bonjour, Regarde ici : http://disciplus.simplex.free.fr/classeursxl/av-listeimages.zip et là http://disciplus.simplex.free.fr/classeursxl/av-boitedialxl5.zip
"Christian Raoux" a écrit dans le message de news:
Salut la liste
Je cherche à inserer une image dans une feuille excel
l'utilisateur doit cliquer sur bouton pour lancer une macro
avec : Application.Dialogs(xlDialogInsertPicture).Show
mais comment donner à l'image la taille voulue et sa position
merci d'avance
Christian
Christian Raoux
Ok très bien Mais comment faire pour selectioner une image dans un répertoire du disk et la mêtre dans la procédure quand on ne connait pas le nom du fichier à l'avance ce qui permet à l'utilisateur de choisir son propre fichier image
Ok très bien
Mais comment faire pour selectioner une image dans un répertoire du disk
et la mêtre dans la procédure quand on ne connait pas le nom du fichier à
l'avance ce qui permet à l'utilisateur de choisir son propre fichier image
Ok très bien Mais comment faire pour selectioner une image dans un répertoire du disk et la mêtre dans la procédure quand on ne connait pas le nom du fichier à l'avance ce qui permet à l'utilisateur de choisir son propre fichier image
Pas sur d'avoir tout compris, mais ça me permet de demander un renseignement.
Sub ChoixImage() If Application.Dialogs(xlDialogInsertPicture).Show("C:Mes Documents") Then With ActiveSheet.Shapes(ActiveSheet.Shapes.Count) .Name = "MonImage" .LockAspectRatio = msoTrue .Height = 200 .Top = 20 .Left = 50 End With End If End Sub
Application.Dialogs(xlDialogInsertPicture).Show accepte un second paramètre mais comment fonctionne t'il ?
Alain CROS.
"Christian Raoux" a écrit dans le message de news:
Ok très bien Mais comment faire pour selectioner une image dans un répertoire du disk et la mêtre dans la procédure quand on ne connait pas le nom du fichier à l'avance ce qui permet à l'utilisateur de choisir son propre fichier image
merci Christian
Bonjour.
Pas sur d'avoir tout compris, mais ça me permet de demander un renseignement.
Sub ChoixImage()
If Application.Dialogs(xlDialogInsertPicture).Show("C:Mes Documents") Then
With ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
.Name = "MonImage"
.LockAspectRatio = msoTrue
.Height = 200
.Top = 20
.Left = 50
End With
End If
End Sub
Application.Dialogs(xlDialogInsertPicture).Show accepte un second paramètre mais comment fonctionne t'il ?
Alain CROS.
"Christian Raoux" <christian.raoux@free.fr> a écrit dans le message de news: XnF942668F5DD76Fchristianraoux@213.228.0.75...
Ok très bien
Mais comment faire pour selectioner une image dans un répertoire du disk
et la mêtre dans la procédure quand on ne connait pas le nom du fichier à
l'avance ce qui permet à l'utilisateur de choisir son propre fichier image
Pas sur d'avoir tout compris, mais ça me permet de demander un renseignement.
Sub ChoixImage() If Application.Dialogs(xlDialogInsertPicture).Show("C:Mes Documents") Then With ActiveSheet.Shapes(ActiveSheet.Shapes.Count) .Name = "MonImage" .LockAspectRatio = msoTrue .Height = 200 .Top = 20 .Left = 50 End With End If End Sub
Application.Dialogs(xlDialogInsertPicture).Show accepte un second paramètre mais comment fonctionne t'il ?
Alain CROS.
"Christian Raoux" a écrit dans le message de news:
Ok très bien Mais comment faire pour selectioner une image dans un répertoire du disk et la mêtre dans la procédure quand on ne connait pas le nom du fichier à l'avance ce qui permet à l'utilisateur de choisir son propre fichier image
merci Christian
Denis Michon
Bonjour Christian,
'Un merci à Denis Pasquier (mpfe) pour l'api que j'ai modifié pour ton problème.
Voici une façon de faire :
Tu appelles la procédure : Sub InsérerUnImage()
Tu prends soin de définir les variables suivantes selon ton projet. A ) Chemin B ) Filtre C ) Feuille D ) Plage
Dans le haut d'un module standard : Déclaration de l'api '------------------- Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type
Private Function SelectAFile(Chemin As String, Optional Filtre As String = "*.*") As String Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String OpenFile.lStructSize = Len(OpenFile) sFilter = "Tous les fichiers (" & Filtre & ")" & Chr(0) & Filtre & Chr(0) With OpenFile .lpstrFilter = sFilter .nFilterIndex = 1 .lpstrFile = String(257, 0) .nMaxFile = Len(OpenFile.lpstrFile) - 1 .lpstrFileTitle = OpenFile.lpstrFile .nMaxFileTitle = OpenFile.nMaxFile .lpstrInitialDir = Chemin .lpstrTitle = "Vos images" .flags = 0 End With lReturn = GetOpenFileName(OpenFile) If lReturn = 0 Then SelectAFile = "erann" Else SelectAFile = Trim(Left(OpenFile.lpstrFile, _ InStr(1, OpenFile.lpstrFile, Chr(0)) - 1)) End If End Function
'-------------------------------------- Sub InsérerUnImage()
Dim Image As Variant, Chemin As String Dim Filtre As String, Feuille As String, Plage As Range
'répertoire à l'ouverture Chemin = "C:Excel"
'Extensions des fichiers à lister du répertoire Filtre = "*.Jpg;*.bmp;*.ico"
'Où sera copier l'image : 'Nom de la feuille du classeur Feuille = "Feuil2"
'Étendue de la plage qui sera recouverte par l'image Set Plage = Range("b5:D6")
Image = SelectAFile(Chemin, Filtre) If Image <> "erann" Then InsérerImage Feuille, Range("b5:D6"), Image End If
End Sub '--------------------------------------
Sub InsérerImage(Feuille As String, RgImage As Range, NomImage As Variant) Dim Rg As Range Set Rg = Worksheets(Feuille).Range(RgImage.Address) With Rg Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top Set Image = Worksheets(Feuille).Pictures.Insert(NomImage) End With With Image .Left = Rg.Left .Top = Rg.Top 'Largeur de l'image Image.Width = Largeur 'Hauteur de l'image Image.Height = Hauteur 'Est-ce que l'image doit se déplacer avec les cellules 'voici les 3 constantes possibles .Placement = xlFreeFloating 'or xlmove or xlMoveAndSize 'Verrouillé ou pas .Locked = True 'or False End With Set Rg = Nothing
End Sub '-----------------------------
Salutations!
"Christian Raoux" a écrit dans le message de news: Salut la liste
Je cherche à inserer une image dans une feuille excel
l'utilisateur doit cliquer sur bouton pour lancer une macro
avec : Application.Dialogs(xlDialogInsertPicture).Show
mais comment donner à l'image la taille voulue et sa position
merci d'avance
Christian
Bonjour Christian,
'Un merci à Denis Pasquier (mpfe) pour l'api que j'ai modifié pour ton problème.
Voici une façon de faire :
Tu appelles la procédure : Sub InsérerUnImage()
Tu prends soin de définir les variables suivantes selon ton projet.
A ) Chemin
B ) Filtre
C ) Feuille
D ) Plage
Dans le haut d'un module standard : Déclaration de l'api
'-------------------
Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Function SelectAFile(Chemin As String, Optional Filtre As String = "*.*") As String
Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Tous les fichiers (" & Filtre & ")" & Chr(0) & Filtre & Chr(0)
With OpenFile
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
.lpstrInitialDir = Chemin
.lpstrTitle = "Vos images"
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
SelectAFile = "erann"
Else
SelectAFile = Trim(Left(OpenFile.lpstrFile, _
InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
End If
End Function
'--------------------------------------
Sub InsérerUnImage()
Dim Image As Variant, Chemin As String
Dim Filtre As String, Feuille As String, Plage As Range
'répertoire à l'ouverture
Chemin = "C:Excel"
'Extensions des fichiers à lister du répertoire
Filtre = "*.Jpg;*.bmp;*.ico"
'Où sera copier l'image :
'Nom de la feuille du classeur
Feuille = "Feuil2"
'Étendue de la plage qui sera recouverte par l'image
Set Plage = Range("b5:D6")
Image = SelectAFile(Chemin, Filtre)
If Image <> "erann" Then
InsérerImage Feuille, Range("b5:D6"), Image
End If
End Sub
'--------------------------------------
Sub InsérerImage(Feuille As String, RgImage As Range, NomImage As Variant)
Dim Rg As Range
Set Rg = Worksheets(Feuille).Range(RgImage.Address)
With Rg
Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left
Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top
Set Image = Worksheets(Feuille).Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing
End Sub
'-----------------------------
Salutations!
"Christian Raoux" <christian.raoux@free.fr> a écrit dans le message de news:XnF9426511A622Achristianraoux@213.228.0.4...
Salut la liste
Je cherche à inserer une image dans une feuille excel
l'utilisateur doit cliquer sur bouton pour lancer une macro
avec : Application.Dialogs(xlDialogInsertPicture).Show
mais comment donner à l'image la taille voulue et sa position
'Un merci à Denis Pasquier (mpfe) pour l'api que j'ai modifié pour ton problème.
Voici une façon de faire :
Tu appelles la procédure : Sub InsérerUnImage()
Tu prends soin de définir les variables suivantes selon ton projet. A ) Chemin B ) Filtre C ) Feuille D ) Plage
Dans le haut d'un module standard : Déclaration de l'api '------------------- Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type
Private Function SelectAFile(Chemin As String, Optional Filtre As String = "*.*") As String Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String OpenFile.lStructSize = Len(OpenFile) sFilter = "Tous les fichiers (" & Filtre & ")" & Chr(0) & Filtre & Chr(0) With OpenFile .lpstrFilter = sFilter .nFilterIndex = 1 .lpstrFile = String(257, 0) .nMaxFile = Len(OpenFile.lpstrFile) - 1 .lpstrFileTitle = OpenFile.lpstrFile .nMaxFileTitle = OpenFile.nMaxFile .lpstrInitialDir = Chemin .lpstrTitle = "Vos images" .flags = 0 End With lReturn = GetOpenFileName(OpenFile) If lReturn = 0 Then SelectAFile = "erann" Else SelectAFile = Trim(Left(OpenFile.lpstrFile, _ InStr(1, OpenFile.lpstrFile, Chr(0)) - 1)) End If End Function
'-------------------------------------- Sub InsérerUnImage()
Dim Image As Variant, Chemin As String Dim Filtre As String, Feuille As String, Plage As Range
'répertoire à l'ouverture Chemin = "C:Excel"
'Extensions des fichiers à lister du répertoire Filtre = "*.Jpg;*.bmp;*.ico"
'Où sera copier l'image : 'Nom de la feuille du classeur Feuille = "Feuil2"
'Étendue de la plage qui sera recouverte par l'image Set Plage = Range("b5:D6")
Image = SelectAFile(Chemin, Filtre) If Image <> "erann" Then InsérerImage Feuille, Range("b5:D6"), Image End If
End Sub '--------------------------------------
Sub InsérerImage(Feuille As String, RgImage As Range, NomImage As Variant) Dim Rg As Range Set Rg = Worksheets(Feuille).Range(RgImage.Address) With Rg Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top Set Image = Worksheets(Feuille).Pictures.Insert(NomImage) End With With Image .Left = Rg.Left .Top = Rg.Top 'Largeur de l'image Image.Width = Largeur 'Hauteur de l'image Image.Height = Hauteur 'Est-ce que l'image doit se déplacer avec les cellules 'voici les 3 constantes possibles .Placement = xlFreeFloating 'or xlmove or xlMoveAndSize 'Verrouillé ou pas .Locked = True 'or False End With Set Rg = Nothing
End Sub '-----------------------------
Salutations!
"Christian Raoux" a écrit dans le message de news: Salut la liste
Je cherche à inserer une image dans une feuille excel
l'utilisateur doit cliquer sur bouton pour lancer une macro
avec : Application.Dialogs(xlDialogInsertPicture).Show
mais comment donner à l'image la taille voulue et sa position