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
Bonjour Antony,
Effectivement ce fichier rappelle des souvenirs.
Peut être un problème de références.
Allez dans l'éditeur VBA ( ALT + F11 )
Faites Outils/Références.
Y a t-il une librairie marquée "Manquante" ?
Si oui, décochez là, enregistrez, fermez XL et réouvrez le fichier.
Dans votre PJ j'ai ça:
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Vous avez donc les mêmes, plus à jour.
Donc la piste était mauvaise. Désolé.
Je n'ai pas les moyens de continuer, je ne dispose que de XL2007. Normalement 2013 et 2016 sont compatibles.
Mais peut être qu'un contributeur a déjà rencontré ce souci.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Au cours de test, je suis tombé sur ce bug sur cette ligne ( qui n'a rien à voir avec votre problème ) :
ActiveSheet.Unprotect ("Prepaye1234")
Vous avez changé le mot de passe de la feuille Pré-Paye, qui était Prepaye1234, et qui est autre chose.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…