Macro sur classeur partagé

Résolu
ben008 Messages postés 16 Date d'inscription samedi 20 décembre 2003 Statut Membre Dernière intervention 31 mars 2010 - 29 mars 2010 à 15:26
ben008 Messages postés 16 Date d'inscription samedi 20 décembre 2003 Statut Membre Dernière intervention 31 mars 2010 - 31 mars 2010 à 08:43
Bonjour ,

J'ai cru comprendre qu'il n'était pas possible de partager un classeur qui contient une macro.
Ou du moins celle ci ne fonctionnera pas ou mal.

Ce qui est mon cas :
J'ai un classeur partagé sur lequel j'ai créé une macro qui créer un lien automatiquement dans une cellule en recuperant la valeur de celle ci pour l'inserer dans le lien:

Public iVerrou As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
    
    On Error Resume Next
    
    If iVerrou = False Then
        
        iVerrou = True
        If Target.Value <> "" Then
            If Target.Column = 8 Then
                sVal = Target.Value
                Cells(Target.Row, Target.Column).Select
                ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
                "https://############/#######.php?ID=" & sVal
            End If
        End If
        iVerrou = False
    
    End If
End Sub


Le comportement de la macro est completement HS une fois partagée.
Quelqu'un aurait il un moyen de contourner ce probleme, voir une solution qui n'utiliserais pas de macro (peut etre une fonction excel que je ne connais pas?)

Merci pour vos reponses.
Ben

2 réponses

daffy17 Messages postés 106 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 22 avril 2010
30 mars 2010 à 15:01
Le problème ne viens pas de partager un fichier qui contient une macro.
La macro fonctionnera toujours même le fichier partagé (seul l'édition de la macro est impossible).
Cependant en partageant le fichier cela restreint certaines fonctionnalité comme la possibilité d'ajouter une liste de choix sur une cellule. La méthode "Hyperlinks" que utilise en fait partie.

Une des solutions serait d'ajouter la formule de lien hypertexte à ta cellule.

Public iVerrou As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
    
    On Error Resume Next
    
    If iVerrou = False Then
        
        iVerrou = True
        If Target.Value <> "" Then
            If Target.Column = 8 Then
                sVal = Target.Value
                Cells(Target.Row, Target.Column).Select
                Selection.Formula = "=HYPERLINK(""https://############/#######.php?ID=" & sVal & ""","""& Selection.Value & """)"
            End If
        End If
        iVerrou = False
    
    End If
End Sub


Cette formule :
Selection.Formula = "=HYPERLINK(""https://############/#######.php?ID=" & sVal & ""","""& Selection.Value & """)"
fonctionne avec un classeur verrouiller.
Elle correspond à la formule française de "=LIEN_HYPERTEXTE(URL,Valeur de la cellule)"
Seul inconvénient lors du clique sur la cellule c'est la formule qui apparait cependant la valeur de la cellule reste la même.
3
ben008 Messages postés 16 Date d'inscription samedi 20 décembre 2003 Statut Membre Dernière intervention 31 mars 2010
31 mars 2010 à 08:43
Bonjour a vous et merci de votre réponse cela marche parfaitement comme ceci.
Et le fait de voir la formule ne me dérange pas du tout du moment que les liens fonctionnent.

Merci encore.
0
Rejoignez-nous