Ouvrez le site Web dans Excel en utilisant ActiveWorkbook.FollowHyperlink

Donc, c'est essentiellement ce que j'essaie de faire. J'ai une colonne de # employé dans un file généré à partir de MSSQL. Je veux créer une fonction dans une cellule où l'URL serait, http://www.someplace.com/employee.php?ID=Employee#FromCell

Jusqu'à présent, tous les exemples que j'ai trouvés ne sont pas assez détaillés pour me permettre de comprendre ce qu'il faut faire. Je sais que ce n'est pas correct, mais c'est ce que j'ai fini jusqu'à présent

Function openurl(strSKU As Ssortingng) ActiveWorkbook.FollowHyperlink Address:="http://www.someplace.com/employee.php?ID=?strSKU=" & strSKU, NewWindow:=True End Function 

Je pense que je mélange les methods avec des fonctions, mais je ne sais pas où aller avec elle. Je veux essentiellement l'append en tant que fonction pour faciliter l'insertion dans la colonne.

Vous pouvez le faire sans VBA. Vous pouvez utiliser une formule.

 =Hyperlink("http://www.someplace.com/employee.php?ID="&A1,A1) 

A1 aurait l'identité de l'employé.

Consultez cette publication que j'ai faite sur la création d'hyperliens à partir de données externes:

http://www.spreadsheetsmadeeasy.com/creating-hyperlinks-with-external-data/

Faites défiler jusqu'à la section "Ajouter des hyperliens" pour plus d'informations.

Je vois que quelqu'un vous a fourni un travail pour accomplir cela, mais je vais vous donner la méthode que vous demandiez (au cas où). FYI, l'intellisense suce dans VBA lors du referencement d'objects OLE (c.-à-d., Certaines methods peuvent ne pas sembler appartenir aux objects buttons, mais ils le font).

Le script ci-dessous vous créera automatiquement les buttons et vous enverra l'user sur le site que vous avez spécifié lorsque vous avez cliqué. ** J'ai inclus des notes qui expliquent ce que chaque ligne fait.

Cela crée les buttons dans les colonnes B et obtient le paramètre URL de la colonne A:

 Sub CreateButtons() Dim btn As Button 'Create a variable for our button Application.ScreenUpdating = False 'Speed up the process by disabling ScreenUpdating ActiveSheet.Buttons.Delete 'Delete existing buttons. Dim Report As Worksheet 'Create our worksheet variable. Set Report = Excel.ActiveSheet 'Set our worksheet to the worksheet variable. Dim t As Range 'Create a variable for the cells we will reference. For i = 1 To Report.UsedRange.Rows.Count 'This will loop through each row in the used range of our worksheet. If Report.Cells(i, 1).Value <> "" Then 'If the value of the first cell is not empty, then do the following... Set t = Report.Range(Cells(i, 2), Cells(i, 2)) 'Assign the cell in the second column of the current row to the cell variable. Set btn = Report.Buttons.Add(t.Left, t.Top, t.Width, t.Height) 'Create a button and place it in the cell in the second column. With btn .OnAction = "openurl" 'Set the button to sortinggger the openurl sub-routine when it is clicked. .Caption = Report.Cells(i, 1).Value 'Set the caption of the button to equal the value of the cell in the first column. .Name = i 'Set the name of the button to equal the row on which it resides. This name will be used in the openurl sub; So don't change it. End With End If Next i End Sub 

C'est la macro effectuée lorsque l'user clique sur un button:

 Sub openurl() Dim Report As Worksheet 'Create a variable for the worksheet Set Report = Excel.ActiveSheet 'Assign the worksheet to our variable Dim i As Integer 'Create a variable for our row number i = Application.Caller 'Assign name of the button to our row number. Dim address As Ssortingng 'Create a variable for our address address = "http://www.someplace.com/employee.php?ID=?strSKU=" & Report.Cells(i, 1).Value 'Assign the URL to our address variable. ActiveWorkbook.FollowHyperlink address:=address, NewWindow:=True 'Send the user to the URL you specified (with the URL parameter at the end). End Sub 

INFO BONNE:

Suivez la prochaine étape pour que la procédure complète soit effectuée automatiquement pour vous:

Lorsque vous dites que datatables actuelles sont fournies à partir d'une database MSSQL, vous voulez probablement dire que vous tirez datatables vers Excel en utilisant un autre sous ou fonction VBA. Si c'est le cas, alors, si vous placez un script pour appeler le sous-programme "CreateButtons ()" après le script qui tire datatables, tout ce process sera effectué automatiquement pour vous. Exemple:

 Sub getEmployeeData() 'This represents your sub that pulls your data from MSSQL '================================================================ 'This represents your script to get your information into Excel. '================================================================ Call CreateButtons 'This runs the CreateButtons() subroutine. End Sub 

Prendre plaisir!

C'est ce qui a fonctionné pour moi:

 ActiveWorkbook.FollowHyperlink Address:=URL 

Mais je devais prendre le www. de l'URL avant qu'il ne fonctionne. Si je ne le faisais pas, alors je findais une exception de server non trouvé. Donc au lieu de:

 "http://www.myaddress.com" 

J'ai utilisé:

 "http://myaddress.com"