Cette macro doit me servir à progresser en paléographie
But : Avoir dans une feuille des images de mots du XVIeme et voir en infobulle son sens (sa transcription) quand on passe le curseur de la souris dessus
Dans un dossier j’ai mis des captures de mots de textes anciens. Ce sont des fichiers jpeg. J’ai mis dans les cases d’une feuille excel les noms de ces fichiers (ex dans une case il y a « sieur » ; dans le dossier des images il y a un fichier « sieur.jpg ».
Je veux deux choses principales :
1) Que la macro affecte un commentaire à la cellule de telle façon qu’en passant le curseur sur la cellule (lorsqu’elle contiendra l’image correspondante) une infobulle m’affiche la transcription (ici : « Sieur » en commentaire.)
2) Qu’elle place correctement l’image dans la cellule (Sieur.jpg dans la cellule qui contient le mot « Sieur » en adaptant l’image aux dimensions de la cellule sans la déformer.
On m’ai dé sur ce forum à faire la macro (on me l’a faite avec beaucoup de gentillesse). Elle crée bien les commentaires de chaque cellule mais elle introduit plusieurs fois les mêmes images (surtout dans les premières cellules à gauche de la zone sélectionnée ; si je sélectionne une zone de 9 cellules, (3X3)elle place 18 images dont 12 dans la première colonne ! et elle ne les dimensionne pas comme souhaitée. Si quelqu’un voit comment résoudre cela, je suis preneur.
Voilà la macro :
' cette macro insère les commentaires et les images (il faut changer le répertoire de celles-ci (adapter)
Sub versComm()
Dim X, Nom, repertoirePhoto As String
Dim Cell As Range
Dim Img As Shape
repertoirePhoto = "C:\Users\Dominique\Pictures\tousles mots\" ' Adapter
On Error Resume Next ' pour évite l'arrêt de la macro si le nom ne correspond pas à une image valide
With ActiveSheet
For Each Cell In Selection
X = Cell.FormulaR1C1 ' place le contenu de la cellule dans la variable X
Cell.AddComment ' ajoute l'objet commentaire
Cell.Comment.Visible = False 'le commentaire sera masqué
Cell.Comment.Text Text:=X 'place le contenu de X dans l'objet commentaire
Nom = X
.Pictures.Insert(repertoirePhoto & Nom & ".jpg").Name = Nom
.Shapes(Nom).Left = Cell.Left
.Shapes(Nom).Top = Cell.Top
.Shapes(Nom).LockAspectRatio = msoTrue
.Shapes(Nom).Height = Cell.Height
.Shapes(Nom).Width = Cell.Width
'Cell.Value = "" ' à activer au besoin pour vider la cellule
Next
End With
End Sub
But : Avoir dans une feuille des images de mots du XVIeme et voir en infobulle son sens (sa transcription) quand on passe le curseur de la souris dessus
Dans un dossier j’ai mis des captures de mots de textes anciens. Ce sont des fichiers jpeg. J’ai mis dans les cases d’une feuille excel les noms de ces fichiers (ex dans une case il y a « sieur » ; dans le dossier des images il y a un fichier « sieur.jpg ».
Je veux deux choses principales :
1) Que la macro affecte un commentaire à la cellule de telle façon qu’en passant le curseur sur la cellule (lorsqu’elle contiendra l’image correspondante) une infobulle m’affiche la transcription (ici : « Sieur » en commentaire.)
2) Qu’elle place correctement l’image dans la cellule (Sieur.jpg dans la cellule qui contient le mot « Sieur » en adaptant l’image aux dimensions de la cellule sans la déformer.
On m’ai dé sur ce forum à faire la macro (on me l’a faite avec beaucoup de gentillesse). Elle crée bien les commentaires de chaque cellule mais elle introduit plusieurs fois les mêmes images (surtout dans les premières cellules à gauche de la zone sélectionnée ; si je sélectionne une zone de 9 cellules, (3X3)elle place 18 images dont 12 dans la première colonne ! et elle ne les dimensionne pas comme souhaitée. Si quelqu’un voit comment résoudre cela, je suis preneur.
Voilà la macro :
' cette macro insère les commentaires et les images (il faut changer le répertoire de celles-ci (adapter)
Sub versComm()
Dim X, Nom, repertoirePhoto As String
Dim Cell As Range
Dim Img As Shape
repertoirePhoto = "C:\Users\Dominique\Pictures\tousles mots\" ' Adapter
On Error Resume Next ' pour évite l'arrêt de la macro si le nom ne correspond pas à une image valide
With ActiveSheet
For Each Cell In Selection
X = Cell.FormulaR1C1 ' place le contenu de la cellule dans la variable X
Cell.AddComment ' ajoute l'objet commentaire
Cell.Comment.Visible = False 'le commentaire sera masqué
Cell.Comment.Text Text:=X 'place le contenu de X dans l'objet commentaire
Nom = X
.Pictures.Insert(repertoirePhoto & Nom & ".jpg").Name = Nom
.Shapes(Nom).Left = Cell.Left
.Shapes(Nom).Top = Cell.Top
.Shapes(Nom).LockAspectRatio = msoTrue
.Shapes(Nom).Height = Cell.Height
.Shapes(Nom).Width = Cell.Width
'Cell.Value = "" ' à activer au besoin pour vider la cellule
Next
End With
End Sub