Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Essayez ça pour voir. Mais je n'aime vraiment pas ça, mais c'est uniquement pour essayer.
J'ai supposer que tous les agents s'appelaient AGT x, et non par leur nom, sinon ça ne marche pas.
Dans CumulTempsMensuel, j'ai mis le lien en commentaire et mis :
VB:
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) = "AGT " & IndexAGT
    
    'Cible = "'" & "AGT " & IndexAGT & "'!$D$5"
    ' Insertion lien hypertexte
    'ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
        SubAddress:=Cible, TextToDisplay:=NouveauNom
Next N
Et dans la feuille G, j'ai mis :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo FinLstAGT
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [B6:B96]) Is Nothing Then
        If Target = "" Then Exit Sub
        NomFeuille = Target: [B1].Select
        Sheets(NomFeuille).Select
    End If
FinLstAGT:
End Sub
Mais j'ai horreur de ce genre de bidouille. On ne sait pas ce qu'on fait.
Donc tout au plus, si ça marche, cela voudra dire que c'est bien le lien ( syntaxe ou autre ) qui pose soucis.
C'est ce problème qu'il faut résoudre.
 

Pièces jointes

  • Planning Test (Bidouille).xlsb
    967.6 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
C'est une usine à gaz, et reprendre ça va conduire à de multiples effets de bord, du fait que des modules ont été rajoutés au fur et à mesure et que tout est imbriqué.
La solution doit passer par résoudre le pb des liens, qui n'a pas lieu d'être.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Un point intéressant dans la réponse de Bard ( ChaptGPT de Google ) à :
Les liens hypertextes écrits avec une macro VBA d'Excel 2013 ne fonctionnent plus avec Excel 2019. Quel peut être le problème ?
est :
 

ANTONY34200

XLDnaute Occasionnel
j'ai mis se post sur un autre forum.
Une persone dit :
 

ANTONY34200

XLDnaute Occasionnel
Re, déja 3 constats
1- le liens hypertexte fonctionne
2- il faut que j'écrive 1 - Antony dans la feuille "G"
3- rien ne se transfert dans la feuille de l'agent AGT1

Je vais voir, si j'arrive a comprendre quelque chose au code que vous avez modifié
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…