IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

liens hypertexe VBA - non reconnu par XL 2019 [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable RH
    Inscrit en
    Octobre 2016
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable RH
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2016
    Messages : 253
    Par défaut liens hypertexe VBA - non reconnu par XL 2019
    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 navigue entre les onglets et que je reviens sur l'onglet "G" j'ai un débogage sur cette ligne de code
    VB:
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    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.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 437
    Par défaut
    Bonjour,

    Le problème vient de ce que la feuille "G" est protégée! Il faut commencer par "ôter la protection".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("G").Unprotect
    Sheets("G").Protect
    Cordialement.

  3. #3
    Membre confirmé
    Homme Profil pro
    Responsable RH
    Inscrit en
    Octobre 2016
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable RH
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2016
    Messages : 253
    Par défaut
    Bonjour et merci pour votre réponse,
    tout fonctionne bien a présent.
    Merci


    Citation Envoyé par EricDgn Voir le message
    Bonjour,

    Le problème vient de ce que la feuille "G" est protégée! Il faut commencer par "ôter la protection".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("G").Unprotect
    Sheets("G").Protect
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. definition de type non reconnu par g++ ou erreur?
    Par harsh dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 09/06/2006, 01h42
  2. fichier .cc non reconnu par VC++
    Par xanax dans le forum MFC
    Réponses: 4
    Dernier message: 15/05/2006, 15h13
  3. Antivirus non reconnu par centre de sécurité
    Par shukin dans le forum Windows XP
    Réponses: 8
    Dernier message: 04/04/2006, 15h22
  4. [API]JTAPI non reconnu par eclipse
    Par julio84 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 15/04/2005, 14h03
  5. [Lomboz] [JBoss] JBoss 3.2.6 non reconnu par Lomboz ?
    Par romain3395 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 17/12/2004, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo