0

我在许多帮助下创建了一个代码,该代码与用户一起创建一个带有客户名称和许多其他信息的新工作表。在恢复所有名称客户端的第一页中,我创建了一个超链接(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
4

1 回答 1

0

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
于 2021-06-15T23:31:17.317 回答