|
|
|
|
Bonjour,
dans word, comment insérer une image (ou un texte, ou un fichier) qui s'ouvre en pop up ou dans le corps du texte, par simple clic ? j'ai regardé dans insertion/objet ou fichier, je n'ai rien trouvé.
L'idée c'est : lorsqu'on clique sur "aperçu" (par exemple), un texte ou une image masqués s'ouvre, que ce soit par pop up ou non. Cela permet d'avoir un texte principal qui tienne sur une ou deux pages, et de n'afficher les images (qui prennent de la place à l'écran) que si on le souhaite. On trouve ca sur certains sites ou dans l'aide word en html.
Mettre un lien vers un fichier ne permet pas d'afficher dans la meme fenetre mon fichier word, et le texte ou l'image que je souhaite ajouter. Par ailleurs, utiliser les info bulles ne me convient pas vraiment car le texte de l'info bulle disparait dès qu'on bouge le curseur.
Faut-il passer par une macro ou les focntions de base de word sufisent t'elles ?
Merci pour les réponses
Bonjour,
|
Bonjour,
Dim petite_taille As Single
Dim grande_taille As Single
Dim position_initiale As Range
Function testeExistenceVariable(nomvariable)
Dim aVar As Variable
''cherche si la variable est déjà définie pour éviter une erreur
For Each aVar In ActiveDocument.Variables
If aVar.Name = nomvariable Then testeExistenceVariable = True: Exit For
Next aVar
End Function
Sub bascule_taille()
'fonction destinée à montrer/cacher les images et certaines explications du tutoriel
'à chaque fois que change_taille est appelé la variable "miniatures" (incluse dans
'ce document) est consultée
'si elle est à 1 on remet les images de la sélection en taille normale et on
'met la variable "miniatures" à 0
'sinon on diminue la taille des images de la sélection et on on met
' la variable 'miniatures" à 1
'si aucun texte ou image n'est sélectionné le changement de taille affecte toutes les images du
'document
'de la même façon on bascule les textes de la sélection (ou de tout le document)
' de la taille "petite_taille" à la taille
' "grande_taille" (typiquement : petite_taille=4 et grande_taille=10,5
petite_taille = 4
grande_taille = 10.5
'mémorisation de la sélection initiale pour repositionnement
'à la fin de la macro
Set initial = Selection.Range
'si la variable "miniatures" n'existe pas on la crée
If Not testeExistenceVariable("miniatures") Then ActiveDocument.Variables.Add "miniatures"
flgminiatures = ActiveDocument.Variables("miniatures").Value
If flgminiatures = 1 Then
change_taille 1
flgminiatures = 0
Else
change_taille 0
flgminiatures = 1
End If
ActiveDocument.Variables("miniatures").Value = flgminiatures
initial.Select
End Sub
Sub change_taille(taille)
Dim plage As Range
'si rien n'est sélectionné (texte ou image)
'alors faire la recherche/remplacement sur tout le document
If Selection.Range.Characters.Count <= 1 And Selection.InlineShapes.Count = 0 Then
Set plage = ActiveDocument.Range
Else
Set plage = Selection.Range
End If
change_taille_image plage, taille
change_taille_texte plage, taille
End Sub
Sub change_taille_texte(plage As Range, taille)
If taille = 1 Then
taille_recherche = petite_taille
taille_remplace = grande_taille
Else
taille_recherche = grande_taille
taille_remplace = petite_taille
End If
plage.Find.ClearFormatting
plage.Find.Replacement.ClearFormatting
With plage.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Format = True
.Font.Size = taille_recherche
.Replacement.Font.Size = taille_remplace
End With
plage.Find.Execute Replace:=wdReplaceAll
End Sub
Sub change_taille_image(plage As Range, taille)
Dim image As InlineShape
'taux de diminution de la taille de l'image (modifiable)
ratio = 0.1
'dans la cas particulier où une seule image est sélectionnée
' regarder si elle est en miniature ou pas pour appliquer ' 'agrandissement ou rapetissement
If plage.InlineShapes.Count = 1 Then
Set image = plage.InlineShapes(1)
If image.ScaleHeight < 10 Then taille = 1 Else taille = 0
End If
For Each image In plage.InlineShapes
With image
.LockAspectRatio = msoTrue
If .AlternativeText = "" And taille = 0 Then
coeff = ratio
.AlternativeText = "miniature"
.Height = coeff * .Height
.Width = coeff * .Width
Else
If .AlternativeText = "miniature" And taille = 1 Then
coeff = 1 / ratio
.AlternativeText = ""
.Height = coeff * .Height
.Width = coeff * .Width
End If
End If
End With
Next image
End Sub
|
je viens de tester une solution html/javascript
</head>
<script language="JavaScript" type="text/JavaScript">
<!--
ratio=10;
function ajoute_onclick() {
var var_change_taille = new Function("bascule_taille(this)");
coef=1/ratio;
for(i = 0; i < document.images.length; ++i) {
image=document.images[i];
if (image.width>50) {
image.width=coef* image.width;
image.height=coef*image.height;
image.alt="miniature";
image.border=1;
image.onclick= var_change_taille;
}
}
}
function bascule_taille(obj){
largeur=this.width;
hauteur=this.heigth;
if (obj.alt=="miniature") {
coef=ratio ;
obj.border=1;
obj.alt="";
}
else {
coef=1/ratio ;
obj.alt="miniature";
}
obj.width=coef* obj.width;
obj.height=coef*obj.height;
}
//-->
</script>
</head>
<body onload="ajoute_onclick()"; lang=FR link=blue vlink=purple>
à l'ouverture de la page web les images sont en miniatures. Des clics successifs sur une image la font passer de taille alternativement de taille réduite à taille normale. |
Hello Geli
Sub HidePix()
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Font.Hidden = Not (Selection.Font.Hidden)
Selection.EndKey Unit:=wdLine
End SubElle passe le paragraphe suivant de Hidden à not Hidden et inversément
2. Tu insères tes images 3. Dans le paragraphe qui précède chaque image, tu insères un champ de type MacroButton qui appelle la macro créée plus haut (HidePix) et tu tapes un texte à afficher (p.ex. 'view detail') et c'est tout! Une seule petit réserve: il faut que l'utilisateur n'ait pas choisi l'option d'afficher les Hidden texts par défaut. Pour s'en prémunir, tu peux ajouter une petite macro qui les cache à l'ouverture du document: Sub AutoOpen()
ActiveWindow.ActivePane.View.ShowAll = 0
ActiveWindow.View.ShowHiddenText = 0
End SubSimple, élégant... |