XL 2019 Passage de 2013 pro à 2019 pro, Pb avec formule VBA, liens hypertexte

ANTONY34200

XLDnaute Occasionnel
Bonjour à tout le forum.
J'ai un soucis depuis que je suis passé sur excel 2019 pro.
Avec 2013 pro, j'ai créée avec l'aide du forum une application de planning.
Sous 2013 pro, tout fonctionne parfaitement.
Sous 2019 pro, j'ai un soucis avec un code vba, dans le module "fonction_et_sous programme".
losrque que je nagigue entre les onglets et que je reviens sur l'onglet "G" j'ai un débogage sur cette ligne de code
VB:
' Insertion lien hypertexte
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
        SubAddress:=Cible, TextToDisplay:=NouveauNom
je ne comprends pas pourquoi, vue que sous 2013 tout allait bien. Le code ci-dessus est un extrait du code suivant :
Code:
Sub CumulTempsMensuel()
t0 = Timer
' Accélération par inhib events
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
' Effacement liste agents et temps
Sheets("G").Range("B6:C100").ClearContents
' Construction liste agents
Nagents = Application.WorksheetFunction.CountA(Sheets("Parametre").Range("H4:H100"))
For N = 1 To Nagents
    NouveauNom = Sheets("Parametre").Range("H" & 3 + N)
    IndexAGT = Sheets("Parametre").Range("J" & 3 + N)
    Sheets("G").Range("B" & 5 + N).Select
    Cible = "'" & "AGT " & IndexAGT & "'!$D$5"
    ' Insertion lien hypertexte
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
        SubAddress:=Cible, TextToDisplay:=NouveauNom
Next N
' transfert tableau planning dans array
tablo = Range("D6:QL36")
' Calcul des temps par agent
For Agent = 1 To Nagents                                            ' Pour tous les agents
    NomAgent = LCase(Cells(Agent + 5, 2))
    Durée = 0
    For Jour = 1 To 31                                              ' Pour tous les jours
        For Sites = 1 To 90                                         ' Pour tous les sites
            Nom = tablo(Jour, 5 * Sites - 3)                        ' Colonne du nom
            If LCase(Nom) = NomAgent Then                           ' Si c'est l'agent concerné
                Tdeb = tablo(Jour, 5 * Sites - 3 + 2)               ' Recup temps de début
                Tfin = tablo(Jour, 5 * Sites - 3 + 4)               ' Recup temps de fin
                If Tfin <= Tdeb Then Tfin = Tfin + 1                 ' Si fin < début on rajoute 24H
                Durée = Durée + Tfin - Tdeb                         ' Ajout du temps à la durée
            End If
        Next Sites
    Next Jour
    If Durée * 24 > 0 Then
        Cells(Agent + 5, 3) = Durée * 24                            ' on affiche que s'il y a un temps
    End If
Next Agent
' Retour events
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.StatusBar = "Temps de calcul page G : " & Round(1000 * (Timer - t0), 0) & "ms"
End Sub

Si quelqu'un pouvait m'aider, ou avoir un début de piste pour modifier ce code ...
Je vous joint mon fichier.
Merci d'avance, a tous ceux qui liront mon post, et qui pourront m'aider.
 

Pièces jointes

  • Planning Test.xlsb
    986.7 KB · Affichages: 3
Solution
Bonjour le Forum, Sylvanu,
j'ai résolu le problème !!!
c'était la protection de la feuille G qui empêchait le code du liens hypertexte de faire son travail !!!
donc dans le bouton rafraichir j'ai fait ça :
VB:
Sub BoutonRafraichir()
Sheets("G").Unprotect
' Sur appui bouton dans General
    FlagTri = 1         ' Autorise le tri ( qui est long )
    CumulTempsMensuel
    FlagTri = 0         ' Interdit le tri lorsqu'on selectionne la page General (gain de temps)
    Reperer_Doublon
    Sheets("G").Unprotect
    Sheets("G").Range("30:40").EntireRow.Hidden = False                       ' remettre visible les lignes masquées
    ' Ligne 32 corrsepond au 27 du mois ( cas défavorable de février )
    For i = 32 To 37
        If...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Il n'y a plus de liens hypertexte.
1- Dans G je met le N° agent et le nom agent
2- Quand on clique sur une cellule colonne B on va sur la feuille correspondante.

Mais sérieusement, laissez tomber cette approche, je ne maitrise rien de toutes ces macros qui se mordent la queue, c'est trop vieux pour que je me rappelle de tout. Il y a trop de risques.
Focalisez vous sur ces fameux liens, il y a bien une explication.
 

ANTONY34200

XLDnaute Occasionnel
Je sais bien qu'il doit y avoir une solution ...
j'ai repris le classeur de votre dernier post, sans rien modifier dans "G" colonne B j'ai laissé 1-Antony, en E6 j'ai mis antony, le transfert en feuille AGT 1 se fait. mais dans la feuille G en C6, je n'ai plus le nombre d'heure ... vous ne devez pas etre tres loin ... je cherche de mon coté
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Pourriez vous m'expliquer pourquoi quand je retire IndexAGT & " - " & , dans l'onglet G les caluls des heurs se font alors que si je le laisse, les calcul ne se font pas
Aucune idée, c'est ce qu'on appelle un effet de bord. On touche à quelque chose, et autre part un truc ne va plus. Comme je vous le disais c'est devenu trop complexe à force de rajouter des trucs puis des trucs pour pouvoir tout comprendre si longtemps après.

Encore un truc débile mai au moins ce sear ça de vérifier.
1- Vous sélectionner la page G, vous devriez avoir deux message :
1694695855285.png
1694695869130.png

qui donne ce qu'il est censé faire.
Ensuite vous posez la souris sur Agent2 en B6 vous devriez avoir l'info bulle :
1694695938788.png

Avec le chemin du fichier et l'adresse où il doit aller.
Est ce qu'au moins ça c'est ok ?
 

Pièces jointes

  • Planning Test (encore un test).xlsb
    963.2 KB · Affichages: 1

Statistiques des forums

Discussions
312 207
Messages
2 086 230
Membres
103 160
dernier inscrit
Torto