Probleme positionnement image dans boucle

Le
Alex
Bonsoir à tous,

J'ai tenté de faire une boucle, afin d'afficher dans toutes les
cellules une photo. Le nom de la photo est inscrit dans chaque cellule
de la colonne F.

Ma boucle fonctionne bien, elle ouvre bien toutes mes images, mais
dans la même cellule en F2 ?

Ma macro :

Dim i As Long
i = ActiveCell.Row
Dim nbligne As Long

nbligne = Range("F2").CurrentRegion.Rows.Count

For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and Settings
PC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
i).Value & ".jpg")
monimage.Height = ActiveCell.Height
monimage.Width = ActiveCell.Width

Next i

End Sub

Comment dois je faire pour qu'il me mette la photo sur la ligne
correspondant au nom ?

Je vous remercie par avance de vos réponses

Cordialement.
Alex
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Modeste
Le #20735721
Bonsour® Alex avec ferveur ;o))) vous nous disiez :

Ma boucle fonctionne bien, elle ouvre bien toutes mes images, mais
dans la même cellule en F2 ?

Ma macro :

Dim i As Long
i = ActiveCell.Row
Dim nbligne As Long

nbligne = Range("F2").CurrentRegion.Rows.Count

For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and Settings
PC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
i).Value & ".jpg")
monimage.Height = Cells(i,6).Height '<==========
monimage.Width = Cells(i,6).Width '<==========

Next i

End Sub


Daniel.C
Le #20735441
Bonjour.
Il m'a semblé qu'il fallait mettre i+1 au lieu de i, c'est à toi de
voir :
For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and
SettingsPC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
i + 1).Value & ".jpg")
monimage.Top = Cells(i + 1, 7).Top
monimage.Left = Cells(i + 1, 7).Left
monimage.Height = ActiveCell.Height
monimage.Width = ActiveCell.Width

Next i

Cordialement.
Daniel

Bonsoir à tous,

J'ai tenté de faire une boucle, afin d'afficher dans toutes les
cellules une photo. Le nom de la photo est inscrit dans chaque cellule
de la colonne F.

Ma boucle fonctionne bien, elle ouvre bien toutes mes images, mais
dans la même cellule en F2 ?

Ma macro :

Dim i As Long
i = ActiveCell.Row
Dim nbligne As Long

nbligne = Range("F2").CurrentRegion.Rows.Count

For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and Settings
PC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
i).Value & ".jpg")
monimage.Height = ActiveCell.Height
monimage.Width = ActiveCell.Width

Next i

End Sub

Comment dois je faire pour qu'il me mette la photo sur la ligne
correspondant au nom ?

Je vous remercie par avance de vos réponses

Cordialement.
Alex


Alex
Le #20741281
On 10 déc, 11:30, Daniel.C
Bonjour.
Il m'a semblé qu'il fallait mettre i+1 au lieu de i, c'est à toi de
voir :
For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and
SettingsPC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
i + 1).Value & ".jpg")
monimage.Top = Cells(i + 1, 7).Top
monimage.Left = Cells(i + 1, 7).Left
monimage.Height = ActiveCell.Height
monimage.Width = ActiveCell.Width

Next i

Cordialement.
Daniel



> Bonsoir à tous,

> J'ai tenté de faire une boucle, afin d'afficher dans toutes les
> cellules une photo. Le nom de la photo est inscrit dans chaque cellule
> de la colonne F.

> Ma boucle fonctionne bien, elle ouvre bien toutes mes images, mais
> dans la même cellule en F2 ?

> Ma macro :

> Dim i As Long
> i = ActiveCell.Row
> Dim nbligne As Long

> nbligne = Range("F2").CurrentRegion.Rows.Count

> For i = nbligne To 2 Step -1
> Set monimage = ActiveSheet.Pictures.Insert("C:Documents and Settings
> PC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
> i).Value & ".jpg")
> monimage.Height = ActiveCell.Height
> monimage.Width = ActiveCell.Width

> Next i

> End Sub

> Comment dois je faire pour qu'il me mette la photo sur la ligne
> correspondant au nom ?

> Je vous remercie par avance de vos réponses

> Cordialement.
> Alex- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonsoir Daniel,

Merci de ta réponse.
J'ai malgré modifié ta ligne de commande monimage.Top = Cells(i + 1,
7).Top

J'ai du supprimer le "+1", pour que les images se mettent bien sur la
bonne ligne sinon j'avais un décallage image de 1 ligne. et bien
conserver le +1 sur ta seconde ligne de commande ( monimage.Left =
Cells(i + 1, 7).Left )

Peux tu me confirmer que Top veut bien le haut de la cellule et left
la marge gauche de la cellule ?. Et pourquoi +1 que sur une ligne
j'arrive pas à bien l'interpreter.

En tout cas un grand merci.
Cordialement.
Alex
Alex
Le #20741461
On 10 déc, 11:30, Daniel.C
Bonjour.
Il m'a semblé qu'il fallait mettre i+1 au lieu de i, c'est à toi de
voir :
For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and
SettingsPC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
i + 1).Value & ".jpg")
monimage.Top = Cells(i + 1, 7).Top
monimage.Left = Cells(i + 1, 7).Left
monimage.Height = ActiveCell.Height
monimage.Width = ActiveCell.Width

Next i

Cordialement.
Daniel



> Bonsoir à tous,

> J'ai tenté de faire une boucle, afin d'afficher dans toutes les
> cellules une photo. Le nom de la photo est inscrit dans chaque cellule
> de la colonne F.

> Ma boucle fonctionne bien, elle ouvre bien toutes mes images, mais
> dans la même cellule en F2 ?

> Ma macro :

> Dim i As Long
> i = ActiveCell.Row
> Dim nbligne As Long

> nbligne = Range("F2").CurrentRegion.Rows.Count

> For i = nbligne To 2 Step -1
> Set monimage = ActiveSheet.Pictures.Insert("C:Documents and Settings
> PC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
> i).Value & ".jpg")
> monimage.Height = ActiveCell.Height
> monimage.Width = ActiveCell.Width

> Next i

> End Sub

> Comment dois je faire pour qu'il me mette la photo sur la ligne
> correspondant au nom ?

> Je vous remercie par avance de vos réponses

> Cordialement.
> Alex- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Re Bonsoir,

Encore un point. Quelle ligne faut il ajouter pour me masquer la photo
quand je masque la ligne ou la colonne.
Merci d'avance de vos réponses.
Alex
isabelle
Le #20741661
bonjour Alex,

For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and SettingsPC
de AlexMes documentsMes imagesALEXANDRE" & Range("F" & i + 1).Value
& ".jpg")
With monimage
.Placement = xlMoveAndSize '<----- permet de masquer l'image
avec la ligne
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Cells(i, 7).Top
.Left = Cells(i, 7).Left
.Width = Cells(i, 7).Width
.Height = Cells(i, 7).Height
End With
End With
Next i
End Sub

isabelle

Alex a écrit :
Re Bonsoir,

Encore un point. Quelle ligne faut il ajouter pour me masquer la photo
quand je masque la ligne ou la colonne.
Merci d'avance de vos réponses.
Alex



Daniel.C
Le #20742471
> On 10 déc, 11:30, Daniel.C
Bonjour.
Il m'a semblé qu'il fallait mettre i+1 au lieu de i, c'est à toi de
voir :
For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and
SettingsPC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
i + 1).Value & ".jpg")
monimage.Top = Cells(i + 1, 7).Top
monimage.Left = Cells(i + 1, 7).Left
monimage.Height = ActiveCell.Height
monimage.Width = ActiveCell.Width

Next i

Cordialement.
Daniel



Bonsoir à tous,



J'ai tenté de faire une boucle, afin d'afficher dans toutes les
cellules une photo. Le nom de la photo est inscrit dans chaque cellule
de la colonne F.



Ma boucle fonctionne bien, elle ouvre bien toutes mes images, mais
dans la même cellule en F2 ?



Ma macro :



Dim i As Long
i = ActiveCell.Row
Dim nbligne As Long



nbligne = Range("F2").CurrentRegion.Rows.Count
For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and Settings
PC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
i).Value & ".jpg")
monimage.Height = ActiveCell.Height
monimage.Width = ActiveCell.Width



Next i



End Sub



Comment dois je faire pour qu'il me mette la photo sur la ligne
correspondant au nom ?



Je vous remercie par avance de vos réponses
Cordialement.
Alex- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -



Bonsoir Daniel,

Merci de ta réponse.
J'ai malgré modifié ta ligne de commande monimage.Top = Cells(i + 1,
7).Top

J'ai du supprimer le "+1", pour que les images se mettent bien sur la
bonne ligne sinon j'avais un décallage image de 1 ligne. et bien
conserver le +1 sur ta seconde ligne de commande ( monimage.Left > Cells(i + 1, 7).Left )

Peux tu me confirmer que Top veut bien le haut de la cellule et left
la marge gauche de la cellule ?. Et pourquoi +1 que sur une ligne
j'arrive pas à bien l'interpreter.

En tout cas un grand merci.
Cordialement.
Alex


Cells(...).Top ou Range("xx").Top veut bien dire "haut de la cellule
depuis le haut de la fenêtre" et Left, dans le même contexte veut bien
dire "position depuis la gauche de la fenêtre du bord gauche de la
cellule". J'ai mis "+1", et je l'ai testé parce que tu mesures
"nbligne" depuis F2, donc il te manque la première ligne; par exemple,
si ta dernière cellule est F6, nbligne est égal à 5 (de F2 à F6).
Daniel
isabelle
Le #20742451
correction
il faut enlever le + 1 de la ligne Set monimage =...
isabelle

isabelle a écrit :
bonjour Alex,

For i = nbligne To 2 Step -1
Set monimage = ActiveSheet.Pictures.Insert("C:Documents and
SettingsPC de AlexMes documentsMes imagesALEXANDRE" & Range("F" &
i + 1).Value & ".jpg")
With monimage
.Placement = xlMoveAndSize '<----- permet de masquer l'image
avec la ligne
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Cells(i, 7).Top
.Left = Cells(i, 7).Left
.Width = Cells(i, 7).Width
.Height = Cells(i, 7).Height
End With
End With
Next i
End Sub

isabelle

Alex a écrit :
Re Bonsoir,

Encore un point. Quelle ligne faut il ajouter pour me masquer la photo
quand je masque la ligne ou la colonne.
Merci d'avance de vos réponses.
Alex





Publicité
Poster une réponse
Anonyme