Author Topic: Saving an hyperlink to an Excel cell  (Read 2625 times)

0 Members and 1 Guest are viewing this topic.

Tramber

  • Guest
Saving an hyperlink to an Excel cell
« on: September 15, 2006, 02:37:48 AM »
In this thread, I learnt how to read an Excel cell hyperlink. And I thank the guys who helped.

I've been trying hard to do the opposite, I.E. to put an hyperlink.  :-P

Does anybody know how to put an hyperlink in XL through Vlisp ?

Patrick_35

  • Guest
Re: Saving an hyperlink to an Excel cell
« Reply #1 on: September 18, 2006, 12:17:39 PM »
Hi

An exemple

@+

Code: [Select]
(defun Liaison_Excel(/ Chemin_Excel Environ Version_Excel)
  (if (setq Chemin_Excel (vl-registry-read "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE" "Path"))
    (progn
      (foreach Environ (list "SYSTEMROOT" "WINDIR" "WINBOOTDIR" "SYSTEMDRIVE" "USERNAME" "COMPUTERNAME" "HOMEDRIVE" "HOMEPATH" "PROGRAMFILES")
        (if (vl-string-search (strcat "%" Environ "%") Chemin_Excel)
          (setq Chemin_Excel (vl-string-subst (strcase (getenv Environ)) (strcat "%" Environ "%") Chemin_Excel))
        )
      )
      (if (= (vl-string-elt Chemin_Excel (1- (strlen Chemin_Excel))) 92)
        (setq Chemin_Excel (strcat Chemin_Excel "Excel.exe"))
        (setq Chemin_Excel (strcat Chemin_Excel "\\Excel.exe"))
      )
      (cond
        ((findfile (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel))
          (setq Chemin_Excel (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel))
        )
        ((findfile (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel))
          (setq Chemin_Excel (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel))
        )
        ((findfile (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel))
          (setq Chemin_Excel (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel))
        )
      )
      (cond
        ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE11")
          (setq Version_Excel "2003")
        )
        ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE10")
          (setq Version_Excel "XP")
        )
        ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL8")
          (setq Version_Excel "97")
        )
        ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL9")
          (setq Version_Excel "2000")
        )
      )
      (if (not Version_Excel)
        (setq Chemin_Excel nil)
      )
    )
  )
  (list Chemin_Excel Version_Excel)
)

(setq Xl (vlax-get-or-create-object "Excel.Application"))

(if (null Xl-open)
  (vlax-import-type-library
    :tlb-filename (car (Liaison_Excel))
    :methods-prefix "Xl-"
    :properties-prefix "Xlp-"
    :constants-prefix "Xlc-")
)

(vla-put-visible xl 1)

(setq Xl_Wks      (vlax-get Xl "Workbooks"))
(setq Xl_Classeur (vlax-get (Xl-add Xl_Wks) "Sheets"))
(setq Xl_Feuille  (xlp-get-item xl_Classeur 1))
(setq Rng         (xlp-get-range xl_Feuille "A1"))
(setq Link        (xlp-get-hyperlinks Xl_Feuille))
(setq Ok          (xl-add Link Rng "My_Link"))
« Last Edit: September 19, 2006, 02:32:52 AM by Patrick_35 »

Patrick_35

  • Guest
Re: Saving an hyperlink to an Excel cell
« Reply #2 on: September 19, 2006, 05:15:09 AM »
And to go even further

Code: [Select]
(xlp-put-screentip ok "Information-bubble ")
(xlp-put-texttodisplay ok "Message to be posted")

@+

Tramber

  • Guest
Re: Saving an hyperlink to an Excel cell
« Reply #3 on: September 19, 2006, 07:12:15 AM »
Au poil !

That was so easy

I had this one : "(setq Link        (xlp-get-hyperlinks Xl_Feuille))"
but didn't succeed in "(xl-add Link Rng "My_Link")"

***************************************

Great Bonus !

Patrick_35

  • Guest
Re: Saving an hyperlink to an Excel cell
« Reply #4 on: September 19, 2006, 07:34:06 AM »
Quote
but didn't succeed in "(xl-add Link Rng "My_Link")"
I try it in my A2005 and it's a success  :?

I attach the lisp if you don't make a good copy & paste

@+

Tramber

  • Guest
Re: Saving an hyperlink to an Excel cell
« Reply #5 on: September 19, 2006, 08:04:17 AM »
Don't worry, I was meaning that I couldn't do it without your help. Now it's Ok, it works very good.