Automatiser texte d'hyperlien par macro

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
doudoudidou
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 30 déc. 2005 09:54
Localisation : Haute Savoie

Automatiser texte d'hyperlien par macro

Message par doudoudidou »

Bonjour,

Je suis en train d'établir un catalogue de plusieurs centaines de sites internet sur Calc avec nom, commentaire sur le site et hyperlien.

Le catalogue est terminé mais à la place des adresse URL, je souhaite maintenant voir un texte (paramètres supplémentaires), ce texte est: Lien

Je dois donc me taper tout le catalogue, lien par lien, pour ajouter ce paramètre à chaque fois.

Si quelqu'un pouvait m'indiquer la macro me permettant d'éviter de faire tout à la main...ce serait bien de sa part !

Merci d'avance !

OOo 2.1 sous WinXP SP2
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 14:42
Contact :

Message par bm92 »

Il faudra mettre dans cette macro les valeurs qui t'intéressent (nom de feuille, adresse de zone, texte à mettre).

Code : Tout sélectionner

dim laFeuille as object, laZone as object, coorz as object
dim uneCellule as object, tf as object
dim x as long, y as long

laFeuille = thisComponent.Sheets.getByName("Feuille1")
laZone = laFeuille.getCellRangeByName("C3:C11")

coorz = laZone.RangeAddress
for x = coorz.StartColumn to coorz.EndColumn
  for y = coorz.StartRow to coorz.EndRow
    uneCellule = laFeuille.getCellByPosition(x,y)
    if uneCellule.TextFields.Count > 0  then
      tf = uneCellule.TextFields(0)
      tf.Representation = "Lien"
    end if
  next
next
doudoudidou
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 30 déc. 2005 09:54
Localisation : Haute Savoie

Message par doudoudidou »

Merci infiniment bm92,

je vais essayé cela dès mon retour, suis en déplacement.

Cordialement
OOo 2.1 sous WinXP SP2
doudoudidou
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 30 déc. 2005 09:54
Localisation : Haute Savoie

Message par doudoudidou »

Encore merci bm92, la macro fonctionne parfaitement malgré un message d'erreur qui apparaît après qu'elle ai fini son travail:

"Runtime error basic"
La sous-procédure ou procédure fonctionnelle n'est pas définie
args (0) Name= Hyperlink.text

Voici la macro en entier:

Code : Tout sélectionner

sub Lien1
rem ----------------------------------------------------------------------
rem define variables

dim laFeuille as object, laZone as object, coorz as object
dim uneCellule as object, tf as object
dim x as long, y as long

laFeuille = thisComponent.Sheets.getByName("Infos Pratiques")
laZone = laFeuille.getCellRangeByName("C5:C1500")

coorz = laZone.RangeAddress
for x = coorz.StartColumn to coorz.EndColumn
  for y = coorz.StartRow to coorz.EndRow
    uneCellule = laFeuille.getCellByPosition(x,y)
    if uneCellule.TextFields.Count > 0  then
      tf = uneCellule.TextFields(0)
      tf.Representation = "Lien"
    end if
  next
next
args2(0).Name = "Hyperlink.Text"
args2(0).Value = "Lien"
args2(1).Name = "Hyperlink.URL"
args2(1).Value = "http://www.guideducreateur.com/"
args2(2).Name = "Hyperlink.Target"
args2(2).Value = ""
args2(3).Name = "Hyperlink.Name"
args2(3).Value = ""
args2(4).Name = "Hyperlink.Type"
args2(4).Value = 1

dispatcher.executeDispatch(document, ".uno:SetHyperlink", "", 0, args2())
OOo 2.1 sous WinXP SP2
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 14:42
Contact :

Message par bm92 »

Tu as ajouté dans ta macro un traitement sans rapport avec le sujet initial. Relis la règle n°7

L'ajout est l'insertion d'un lien sur la cellule courante. Mais il ne correspond pas exactement à ce que j'obtiens en utilisant l'enregistreur de macro. Notamment, les déclarations de variables manquent.
doudoudidou
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 30 déc. 2005 09:54
Localisation : Haute Savoie

Message par doudoudidou »

Désolé mais je ne saisis pas vraiment ce que tu veux me dire.
Je n'ai fait que de copier la macro à l'endroit qui me semblait le plus propice avec détails sur ma feuille, mes cellules et lignes concernées.

Mais alors pourquoi cela marche-t-il si bien au final ?

Merci de m'en dire un peu plus éventuellement.

Te suis reconnaissant du mal que tu t'es donné.
OOo 2.1 sous WinXP SP2
Répondre