Je rencontre un probl=E8me de positionnement d'affichage d'image sur une
feuille, et m'en explique.
Depuis un formulaire vba, l'utilisateur peut selectionner une photo.
Ce la rappatrie automatiquement le chemin d'acc=E8s.
Quand la personne valide les informations saisies se positionne sur
une feuille sur la ligne n+1 (creation d'une nouvelle ligne), j'ai
=E9crit ceci :
nbligne =3D Range("B1").CurrentRegion.Rows.Count
i =3D nbligne + 1
If Me.CheminPhot <> "" Then
Cells(i, 1).Value =3D Me.CheminPhot
img =3D Cells(i, 1).Value
Set monimage =3D ActiveSheet.Pictures.Insert(img)
monimage.Height =3D ActiveCell.Height
monimage.Width =3D ActiveCell.Width
end if
Cela fonctionne tr=E8s bien, =E0 un d=E9tail pr=E8s l'image se positionne
toujours en A1 et non sur ma ligne i.
Quelqu'un aurait il une id=E9e de solution =E0 mon probl=E8me.
Merci par avance de votre aide.
Cordialement.
Alex
Il n'y a pas de raison pourquoi ceci ne devrait pas fonctionner....
'---------------------------------------------------- Sub test() Dim i As Long, MonImage As Picture Dim Img As String With Worksheets("Feuil1") 'Adapte le nom de la feuille i = .Range("A65536").End(xlUp).Row + 1 If Me.CheminPhot <> "" Then .Range("A" & i).Value = "toto" ' Me.CheminPhot Img = .Range("A" & i).Value Set MonImage = .Pictures.Insert(Img) MonImage.ShapeRange.LockAspectRatio = msoFalse With .Range("A" & i) MonImage.Height = .Height MonImage.Width = .Width MonImage.Top = .Top MonImage.Left = .Left End With End If End With End Sub '----------------------------------------------------
Il n'y a pas de raison pourquoi ceci ne devrait pas fonctionner....
'----------------------------------------------------
Sub test()
Dim i As Long, MonImage As Picture
Dim Img As String
With Worksheets("Feuil1") 'Adapte le nom de la feuille
i = .Range("A65536").End(xlUp).Row + 1
If Me.CheminPhot <> "" Then
.Range("A" & i).Value = "toto" ' Me.CheminPhot
Img = .Range("A" & i).Value
Set MonImage = .Pictures.Insert(Img)
MonImage.ShapeRange.LockAspectRatio = msoFalse
With .Range("A" & i)
MonImage.Height = .Height
MonImage.Width = .Width
MonImage.Top = .Top
MonImage.Left = .Left
End With
End If
End With
End Sub
'----------------------------------------------------
Il n'y a pas de raison pourquoi ceci ne devrait pas fonctionner....
'---------------------------------------------------- Sub test() Dim i As Long, MonImage As Picture Dim Img As String With Worksheets("Feuil1") 'Adapte le nom de la feuille i = .Range("A65536").End(xlUp).Row + 1 If Me.CheminPhot <> "" Then .Range("A" & i).Value = "toto" ' Me.CheminPhot Img = .Range("A" & i).Value Set MonImage = .Pictures.Insert(Img) MonImage.ShapeRange.LockAspectRatio = msoFalse With .Range("A" & i) MonImage.Height = .Height MonImage.Width = .Width MonImage.Top = .Top MonImage.Left = .Left End With End If End With End Sub '----------------------------------------------------
Re : J'ai testé et cela bloque sur Set MonImage = .Pictures.Insert(Img) Avec la souris en me positionnant sur la ligne, apparait le message suivant : MonImage = Nothing, et le (img) apporte bien le l'adresse du lien Sur le message "Debogage" :
Erreur d'excution 1004 Impossible de lire propriété Insert de la classe Pictures
Si cela avait fonctionné, est que cela aurait voulu dire qu'il faille que je corrige mes lignes avec : cells(i,X) par des Range("A" & i) ?
Merci d'avance pour ta réponse. Bien cordialement. Alex
Re :
J'ai testé et cela bloque sur Set MonImage = .Pictures.Insert(Img)
Avec la souris en me positionnant sur la ligne, apparait le message suivant :
MonImage = Nothing, et le (img) apporte bien le l'adresse du lien
Sur le message "Debogage" :
Erreur d'excution 1004
Impossible de lire propriété Insert de la classe Pictures
Si cela avait fonctionné, est que cela aurait voulu dire qu'il faille que je corrige mes lignes avec : cells(i,X) par des Range("A" & i) ?
Merci d'avance pour ta réponse.
Bien cordialement.
Alex
Re : J'ai testé et cela bloque sur Set MonImage = .Pictures.Insert(Img) Avec la souris en me positionnant sur la ligne, apparait le message suivant : MonImage = Nothing, et le (img) apporte bien le l'adresse du lien Sur le message "Debogage" :
Erreur d'excution 1004 Impossible de lire propriété Insert de la classe Pictures
Si cela avait fonctionné, est que cela aurait voulu dire qu'il faille que je corrige mes lignes avec : cells(i,X) par des Range("A" & i) ?
Merci d'avance pour ta réponse. Bien cordialement. Alex
MichD
Ceci a été testé avec Excel 2010 et cela fonctionne très bien.
Cette ligne a été désactivée, car elle fait référence à un contrôle de ton formulaire que je n'ai pas... 'If Me.CheminPhot <> "" Then
' pour cette ligne de code : .Range("A" & i).Value = "toto" ' Me.CheminPhot Observe bien, j'ai mis "toto" car encore une fois le contrôle "Me.CheminPhot" n'existe pas dans mon environnement. À modifier dans ton application!
'Ceci est un fichier image sur mon ordinateur Img = "C:UsersMichDPicturesIMG.bmp"
Que tu utilises "Cells()" ou "Range" n'a pas d'importance pourvu que tu fasses référence à la cellule de la feuil1 ou celle que tu as utilisée dans ton application.
Quand cette ligne de code tombe en erreur, quelle est la valeur de la variable "Img" ? Est-ce que le chemin et le nom de l'image + extension du fichier existe réellement?
'------------------------------------------------------- Sub test() Dim i As Long, MonImage As Picture Dim Img As String With Worksheets("Feuil1") 'Adapte le nom de la feuille i = .Range("A65536").End(xlUp).Row + 1 'If Me.CheminPhot <> "" Then .Range("A" & i).Value = "toto" ' Me.CheminPhot Img = "C:UsersMichDPicturesIMG.bmp" ' .Range("A" & i).Value Set MonImage = .Pictures.Insert(Img) MonImage.ShapeRange.LockAspectRatio = msoFalse With .Range("A" & i) MonImage.Height = .Height MonImage.Width = .Width MonImage.Top = .Top MonImage.Left = .Left End With ' End If End With End Sub '-------------------------------------------------------
Ceci a été testé avec Excel 2010 et cela fonctionne très bien.
Cette ligne a été désactivée, car elle fait référence à un contrôle
de ton formulaire que je n'ai pas...
'If Me.CheminPhot <> "" Then
' pour cette ligne de code :
.Range("A" & i).Value = "toto" ' Me.CheminPhot
Observe bien, j'ai mis "toto" car encore une fois
le contrôle "Me.CheminPhot" n'existe pas dans mon
environnement. À modifier dans ton application!
'Ceci est un fichier image sur mon ordinateur
Img = "C:UsersMichDPicturesIMG.bmp"
Que tu utilises "Cells()" ou "Range" n'a pas d'importance
pourvu que tu fasses référence à la cellule de la feuil1
ou celle que tu as utilisée dans ton application.
Quand cette ligne de code tombe en erreur, quelle est la valeur
de la variable "Img" ? Est-ce que le chemin et le nom de l'image
+ extension du fichier existe réellement?
'-------------------------------------------------------
Sub test()
Dim i As Long, MonImage As Picture
Dim Img As String
With Worksheets("Feuil1") 'Adapte le nom de la feuille
i = .Range("A65536").End(xlUp).Row + 1
'If Me.CheminPhot <> "" Then
.Range("A" & i).Value = "toto" ' Me.CheminPhot
Img = "C:UsersMichDPicturesIMG.bmp" ' .Range("A" & i).Value
Set MonImage = .Pictures.Insert(Img)
MonImage.ShapeRange.LockAspectRatio = msoFalse
With .Range("A" & i)
MonImage.Height = .Height
MonImage.Width = .Width
MonImage.Top = .Top
MonImage.Left = .Left
End With
' End If
End With
End Sub
'-------------------------------------------------------
Ceci a été testé avec Excel 2010 et cela fonctionne très bien.
Cette ligne a été désactivée, car elle fait référence à un contrôle de ton formulaire que je n'ai pas... 'If Me.CheminPhot <> "" Then
' pour cette ligne de code : .Range("A" & i).Value = "toto" ' Me.CheminPhot Observe bien, j'ai mis "toto" car encore une fois le contrôle "Me.CheminPhot" n'existe pas dans mon environnement. À modifier dans ton application!
'Ceci est un fichier image sur mon ordinateur Img = "C:UsersMichDPicturesIMG.bmp"
Que tu utilises "Cells()" ou "Range" n'a pas d'importance pourvu que tu fasses référence à la cellule de la feuil1 ou celle que tu as utilisée dans ton application.
Quand cette ligne de code tombe en erreur, quelle est la valeur de la variable "Img" ? Est-ce que le chemin et le nom de l'image + extension du fichier existe réellement?
'------------------------------------------------------- Sub test() Dim i As Long, MonImage As Picture Dim Img As String With Worksheets("Feuil1") 'Adapte le nom de la feuille i = .Range("A65536").End(xlUp).Row + 1 'If Me.CheminPhot <> "" Then .Range("A" & i).Value = "toto" ' Me.CheminPhot Img = "C:UsersMichDPicturesIMG.bmp" ' .Range("A" & i).Value Set MonImage = .Pictures.Insert(Img) MonImage.ShapeRange.LockAspectRatio = msoFalse With .Range("A" & i) MonImage.Height = .Height MonImage.Width = .Width MonImage.Top = .Top MonImage.Left = .Left End With ' End If End With End Sub '-------------------------------------------------------