微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用用户表单创建超链接? VBA

如何解决如何使用用户表单创建超链接? VBA

我在许多帮助下创建了一个代码,该代码用户一起创建了一个包含客户名称和许多其他信息的新工作表。在恢复所有名称客户端的第一页中,我制作了一个发送到客户端队列名称的超链接(C 列)。但是用户表单会出现错误 424。

 Private Sub btnajoutclient_Click()

Dim numFeuilClient As String
Dim prenomFeuilClient As String
Dim telFeuilClient As String
Dim mailFeuilClient As String
Dim AdresseFeuilClient As String
Dim cpFeuilClient As String
Dim villeFeuilClient As String
 'RENDRE LES FEUILLES VISIBLES'
Worksheets(2).Visible = True
Worksheets(3).Visible = True
 'CREER 2 BOITES POUR AVOIR LES INFOS : NOM ET TEL'
numFeuilClient = frmnouveauclient.TextBoxcasenom
prenomFeuilClient = frmnouveauclient.TextBoxprénom
telFeuilClient = frmnouveauclient.TextBoxcasenumérotel
mailFeuilClient = frmnouveauclient.TextBoxcasemail
AdresseFeuilClient = frmnouveauclient.TextBoxcaseadresse
cpFeuilClient = frmnouveauclient.TextBoxcasecodepostal
villeFeuilClient = frmnouveauclient.TextBoxcaseville   
 'freezer lécran
Application.ScreenUpdating = False
'SI PAS DE NOM SAISIE ALORS EXIT'
If numFeuilClient = "" Then
 Worksheets(2).Visible = False
 Worksheets(3).Visible = False
 Exit Sub
End If
'ON SUPPRIME LA ZONE SELECTIONNER LA FEUILLE TYPE'
Sheets("FeuilClient").Range("_zonesuprfinal").ClearContents
Sheets("FeuilClient").copy after:=Sheets(Sheets.Count)
'RENOMMER LA FEUILLE
   ActiveSheet.Name = numFeuilClient
'ON MET LE NOM ET LE TEL DANS LES CASES SELECTIONEE DE LA FEUILLE CLIENT'
ActiveSheet.Range("_nomclient").Value = numFeuilClient
ActiveSheet.Range("_telclient").Value = telFeuilClient
ActiveSheet.Range("_prenomclient").Value = prenomFeuilClient
ActiveSheet.Range("_mailclient").Value = mailFeuilClient
ActiveSheet.Range("_adresse").Value = AdresseFeuilClient
ActiveSheet.Range("_codepostal").Value = cpFeuilClient
ActiveSheet.Range("_ville").Value = villeFeuilClient
'Aller sur la feuille fichier client
Sheets(1).Activate
'On trouve une case vide et y met le nom sur le fichier client
Feuil3.Range("A1048000").Select
ActiveCell.End(xlUp).Select
ActiveCell.Offset(1,0).Select
ActiveCell.Value = numFeuilClient
'On trouve une case vide et y met le nom sur le tel du client
Sheets("FichierClient").Range("B1048000").Select
ActiveCell.End(xlUp).Select
ActiveCell.Offset(1,0).Select
ActiveCell.Value = telFeuilClient
'Mettre un hyperlien sur le fichierclient
Sheets("FichierClient").Range("C1048000").Select
ActiveCell.End(xlUp).Select
ActiveCell.Offset(1,0).Select




Hyperlinks.Add Anchor:=ActiveCell,Address:="",_
     SubAddress:="'" & numFeuilClient & "'!A1",TextTodisplay:="Voir Client"



 'ON REND INSIVIBLE LES FEUILLES'
  Worksheets(2).Visible = False
 Worksheets(3).Visible = False
'défreezer l'écran
  Application.ScreenUpdating = True
End Sub

解决方法

Hyperlinks 需要符合 Worksheet

简单的解决方法是将其更改为

ActiveSheet.HyperLinks.Add ...

也就是说,有很多机会可以改进此代码。考虑这个

Private Sub btnajoutclient_Click()
    Dim numFeuilClient As String
    Dim prenomFeuilClient As String
    Dim telFeuilClient As String
    Dim mailFeuilClient As String
    Dim AdresseFeuilClient As String
    Dim cpFeuilClient As String
    Dim villeFeuilClient As String
    Dim wsFeuilClient As Worksheet

    With ThisWorkbook ' or ActiveWorkbook or specify a workbook
        'RENDRE LES FEUILLES VISIBLES'
        .Worksheets(2).Visible = True
        .Worksheets(3).Visible = True

         'CREER 2 BOITES POUR AVOIR LES INFOS : NOM ET TEL'
        With frmnouveauclient
            numFeuilClient = .TextBoxcasenom
            'SI PAS DE NOM SAISIE ALORS EXIT'
            If numFeuilClient = vbNullString Then
                GoTo CleanUp
            End If

            prenomFeuilClient = .TextBoxprénom
            telFeuilClient = .TextBoxcasenumérotel
            mailFeuilClient = .TextBoxcasemail
            AdresseFeuilClient = .TextBoxcaseadresse
            cpFeuilClient = .TextBoxcasecodepostal
            villeFeuilClient = .TextBoxcaseville
        End With

        'freezer lécran
        Application.ScreenUpdating = False

        'ON SUPPRIME LA ZONE SELECTIONNER LA FEUILLE TYPE'
        .Worksheets("FeuilClient").Range("_zonesuprfinal").ClearContents
        Set wsFeuilClient = .Worksheets("FeuilClient").Copy(after:=.Sheets(.Sheets.Count))

        'RENOMMER LA FEUILLE
        With wsFeuilClient
            .Name = numFeuilClient

        'ON MET LE NOM ET LE TEL DANS LES CASES SELECTIONEE DE LA FEUILLE CLIENT'
            .Range("_nomclient").Value = numFeuilClient
            .Range("_telclient").Value = telFeuilClient
            .Range("_prenomclient").Value = prenomFeuilClient
            .Range("_mailclient").Value = mailFeuilClient
            .Range("_adresse").Value = AdresseFeuilClient
            .Range("_codepostal").Value = cpFeuilClient
            .Range("_ville").Value = villeFeuilClient
        End With

        'Aller sur la feuille fichier client
        With .Sheets(1)
            'On trouve une case vide et y met le nom sur le fichier client
            .Cells(.Rows.Count,1).End(xlUp).Offset(1,0).Value = numFeuilClient
        End With
        With .Worksheets("FichierClient")
            'On trouve une case vide et y met le nom sur le tel du client
            .Cells(.Rows.Count,2).End(xlUp).Offset(1,0).Value = numFeuilClient
            'Mettre un hyperlien sur le fichierclient
            With .Cells(.Rows.Count,3).End(xlUp).Offset(1,0)
                .Value = numFeuilClient

                .Worksheet.Hyperlinks.Add Anchor:=.Cells,Address:=vbNullString,_
                    SubAddress:="'" & numFeuilClient & "'!A1",TextToDisplay:="Voir Client"
            End With
        End With

CleanUp:
        'ON REND INSIVIBLE LES FEUILLES'
        .Worksheets(2).Visible = False
        .Worksheets(3).Visible = False
    End With

    'défreezer l'écran
    Application.ScreenUpdating = True
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。