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 :

Déclaration de variable : déclarer un lien


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut Déclaration de variable : déclarer un lien
    Bonjour,

    Je bloque sur un petit problème. Lorsque je lance ma macro une erreur de type erreur d'execution 13: Incompatibilité de type apparait. Au fait, je dois gérer une donnée qui est un lien hypertexte html. J'ai déclaré la variable dans ma fonction avec un et l'erreur apparaît au niveau du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(OPS_Table & "[[#Headers],[Link]]").Cells(i + 1, 1).Value = oLink
    Je ne sais pas comment faire. Pouvez vous me conseiller?

    Merci d'avance!

  2. #2
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut
    En faisant plusieurs tests je me suis rendu compte que la macro fonctionnait, mais que ça bloquait au moment de la mise a jour dans mon ishare car les liens copiés dans les cellules n'étaient plus actifs. Comment dois je coder pour les réactiver?

    Merci d'avance!

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    Ne sais pas trop mais si tu te penche sur ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range.Cells(i + 1, 1).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut
    Je n'arrive pas à faire fonctionner la macro avec cette ligne de code.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    et si tu fait ainsi :

    pour écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
     
    Sub EcrireLien()
     
    Dim Lien As String
    Lien = "http://www.developpez.net/forums/d1419685/logiciels/microsoft-office/excel/macros-vba-excel/declaration-variable-declarer-lien/#post7713643"
     
     
        Sheets("feuil1").Hyperlinks.Add Anchor:=Sheets("feuil1").Range("B4"), Address:=Lien _
            , SubAddress:="post7713643", TextToDisplay:="developpez"
    End Sub
    pour lire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub LireLien()
    Sheets("feuil1").Range("B4").Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut
    Salut jijie!

    Déjà je te remercie pour le temps que tu accordes à mon problème. Je n'arrive toujours pas à appliquer le code que tu me donnes.
    En se limitant à la colonne de la feuille contenant les liens n'y a t-il pas une syntaxte pour activer les liens que j'ai copiés.

  7. #7
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut
    Bonjour,

    Je viens vers vous car je suis confronté à un problème dans mon code. Effectivement, je cherche depuis quelques jours maintenant à activer des liens hypertextes avec ma macro et ça devient urgent. Je suis parvenu à faire quelque chose mais aujourd'hui le problème est qu'à chaque lien hypertexte copié une erreur d'exécution de type 1004: La méthode Range de l'objet Global a échoué.

    Je vous présente ci-dessous un bout de mon code.

    Pour la déclaration des variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Const OPS_Table_SHEET As String = "OPSData"
    Const OPS_Table_Connec As String = "http:lien vers mon ishare"
    Const OPS_Table_Connec_name As String = "Global Overall Progress"
    Const OPS_Table As String = "Table_Ops1"
    Public nb_OPS_Table As Integer
     
    Const OP_Table_SHEET As String = "OPData"
    Const OP_Table As String = "OP_Table_Data"
    Public nb_OP_Table As Integer
    Pour mettre à jour mes données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Call find_and_update_OP(Worksheets(Boxes_SHEET).Range("C2").Value, Worksheets(Boxes_SHEET).Range("C3").Value, "Time", Worksheets(Boxes_SHEET).Range("C6"), Worksheets(Boxes_SHEET).Range("D6").Value)
            Call find_and_update_OP(Worksheets(Boxes_SHEET).Range("C2").Value, Worksheets(Boxes_SHEET).Range("C3").Value, "Quality", Worksheets(Boxes_SHEET).Range("C7"), Worksheets(Boxes_SHEET).Range("D7").Value)
            Call find_and_update_OP(Worksheets(Boxes_SHEET).Range("C2").Value, Worksheets(Boxes_SHEET).Range("C3").Value, "Cost", Worksheets(Boxes_SHEET).Range("C8"), Worksheets(Boxes_SHEET).Range("D8").Value)
            Call find_and_update_OP(Worksheets(Boxes_SHEET).Range("C2").Value, Worksheets(Boxes_SHEET).Range("C3").Value, "Risk", Worksheets(Boxes_SHEET).Range("C9"), Worksheets(Boxes_SHEET).Range("D9").Value)
    La fonction pour la mise à jour des données (avec la copie des liens)
    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
    'Pour Overall Progress
    Sub find_and_update_OP(oProject As String, oHistory As String, oTitle As String, oFlag As String, oValue As String)
        Dim i As Integer
        Dim isUpdated As Boolean
     
        isUpdated = False
        nb_OPS_Table = ActiveWorkbook.Worksheets(OPS_Table_SHEET).ListObjects(OPS_Table).ListRows.Count
        For i = 1 To nb_OPS_Table
            'Si bon projet et histo correct, je remplis
            If (Range(OPS_Table & "[[#Headers],[Project]]").Cells(i + 1, 1).Value = oProject And Range(OPS_Table & "[[#Headers],[History]]").Cells(i + 1, 1).Value = oHistory And Range(OPS_Table & "[[#Headers],[Title]]").Cells(i + 1, 1).Value = oTitle) Then
                Range(OPS_Table & "[[#Headers],[Comment]]").Cells(i + 1, 1).Value = oValue
                With Worksheets(OPS_Table_SHEET)
                       .Hyperlinks.Add Anchor:=.Range(OPS_Table & "[[#Headers],[Flag]]").Cells(i + 1, 1), _
                        Address:=oFlag, _
                        ScreenTip:=oFlag, _
                        TextToDisplay:=oFlag
                    End With
                    isUpdated = True
            End If
        Next i
     
        If (isUpdated = False) Then
            Range(OPS_Table & "[[#Headers],[Comment]]").Cells(nb_OPS_Table + 2, 1).Value = oValue
            Range(OPS_Table & "[[#Headers],[Project]]").Cells(nb_OPS_Table + 2, 1).Value = oProject
            Range(OPS_Table & "[[#Headers],[Title]]").Cells(nb_OPS_Table + 2, 1).Value = oTitle
            Range(OPS_Table & "[[#Headers],[History]]").Cells(nb_OPS_Table + 2, 1).Value = oHistory
            With Worksheets(OPS_Table_SHEET)
                       .Hyperlinks.Add Anchor:=.Range(OPS_Table & "[[#Headers],[Flag]]").Cells(nb_OPS_Table + 2, 1), _
                        Address:=oFlag, _
                        ScreenTip:=oFlag, _
                        TextToDisplay:=oFlag
                    End With        
         End If
     
    End Sub
    Je pense que je n'ai rien oublié, sinon n'hésitez pas à me demander. C'est urgent s'il vous plait.

    Merci par avance!

    Petite précision, l'erreur apparaît à cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (Range(OPS_Table & "[[#Headers],[Project]]").Cells(i + 1, 1).Value = oProject And Range(OPS_Table & "[[#Headers],[History]]").Cells(i + 1, 1).Value = oHistory And Range(OPS_Table & "[[#Headers],[Title]]").Cells(i + 1, 1).Value = oTitle) Then

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour,

    donc le titre de cette discussion n'a aucun rapport avec la ligne déclenchant l'erreur ‼

    Te reste donc à vérifier chaque variable composant cette ligne
    avec un point d'arrêt et la fenêtre Variables locales par exemple …

    Déjà l'utilisation de oProject & oHistory me parait douteuse sans compter le double "=" !
    A revoir intégralement …

  9. #9
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut
    Bonjour Marc,

    Le titre n'est pas non plus sans rapport, j'utilise ce code pour mettre à jour autre chose que des liens et il fonctionne bien. C'est à partir du moment où j'ai introduit cette notion d'activation des liens qu'il m'a généré cette erreur.

    J'ai regardé les variables locales, il ne semble pas y avoir de problème. Que me suggèrerais tu sinon?

    Merci

  10. #10
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Le syntaxe de la ligne en erreur est correcte. Vérifie donc les variables OPS_Table, l'orthographe de l'entête "Project" et la valeur de i au moment du plantage.

  11. #11
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut
    Bonjour Daniel,

    Tout me semble bon hormis le i qui est de 32 pour une donnée à la ligne 31 de mon tableau.

Discussions similaires

  1. Transmettre une variable via un lien href
    Par developpeur_mehdi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 08/01/2005, 14h49
  2. déclaration de variables de 16, 32 et 128 bits
    Par samipate dans le forum C++
    Réponses: 10
    Dernier message: 30/12/2004, 22h33
  3. [FLASH MX2004] Déclaration de variables sous flash mx
    Par softyClochette dans le forum Flash
    Réponses: 4
    Dernier message: 29/11/2004, 16h11
  4. Passage de variable dans un lien asp
    Par VirginieGE dans le forum ASP
    Réponses: 4
    Dernier message: 27/07/2004, 10h06
  5. [debutant][Portée] Déclaration de variable .....
    Par Slein dans le forum Langage
    Réponses: 4
    Dernier message: 07/05/2004, 10h43

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