Variable entre deux macros

Bonjour,

Je rencontre un petit soucis entre macro vba

j'ai une première macro fonctionnant correctement et dans laquelle j'ai un select case

    Select Case i
Case 1

Doc_Type1 = Doc_Type
Doc_Label1 = Doc_Name
Doc_Link1 = Doc_Link

 End Select
 Next
 

j'ai ensuite une autre macro afin de détecter un click sur un label

Private Sub Doc_Label1_Click()

Link = Doc_Link1
  ActiveWorkbook.FollowHyperlink Address:=Link, NewWindow:=True
End Sub

seulement voila sur mon userform si je ne laisse pas un label avec le lien en clair cela ne fonctionne pas.

En effet je dois afficher Doc_Link1 pour que le click sur Doc_Label1 fonctionne..

si je supprime le label Doc-Link1 cela bug

A priori il s'agit de la variable Doc_Link1qui ne serait pas transférée entre les deux macro.

comment procéder svp?

Merci à vous

Private Sub Doc_Label1_Click()

Link = Doc_Link1

ActiveWorkbook.FollowHyperlink Address:=Link, NewWindow:=True

End Sub

Bonjour

Vos variables ne sont pas déclarées...

Sans voir le fichier voici peut être une piste.

En en-tête de l'userform, mettez

DIM Doc_Link1

Ensuite, votre code peut être ceci je pense

Private Sub Doc_Label1_Click()
  ActiveWorkbook.FollowHyperlink Address:=Doc_link1, NewWindow:=True
End Sub

Cordialement

Merci à vous Dan.

mon fichier est une base de donnée sur lequel je travaille comprenant un ensemble de donnée liés à des projets professionnels et donc confidentiel.. de plus c'est une macro parmis tant d'autre mais je n'ai jamais eu à faire passer de variables entre macro

les macros ici concernées:

Private Sub UserForm_Initialize()

Acronym = Sheets("Projects' View").Range("G2")
DIM Doc_Link1
Completeform

End Sub

Private Sub Completeform()
...

For i = 1 To 10
    With Sheets("Doc Library")
        ok = False
        Set ici = .Range("C:C").Find(Acronym, LookIn:=xlValues)
        If Not ici Is Nothing Then
            prem = ici.Address

                Do
                If ici.Offset(0, -2) = (ProjectId & "_" & i) Then ok = True
                If Not ok Then Set ici = .Range("C:C").FindNext(ici)
            Loop While Not ici Is Nothing And ici.Address <> prem And Not ok
        End If
        If ok Then
            Doc_Type = ici.Offset(0, 1)
            Doc_Name = ici.Offset(0, 2)
            Doc_Link = ici.Offset(0, 3)

        Else
           Doc_Type = ""
           Doc_Name = ""
           Doc_Link = ""

   End If
    End With

    Select Case i

Case 1

Doc_Type1 = Doc_Type
Doc_Label1 = Doc_Name
Doc_Link1 = Doc_Link

 End Select
 Next

End Sub

Private Sub Doc_Label1_Click()

  ActiveWorkbook.FollowHyperlink Address:=Doc_Link1, NewWindow:=True

End Sub

j'ai tenté votre solution qui me paraissait intéressante mais cela me rend une erreur d’exécution 5!

une idée svp?

Re

Non votre déclaration de variable DIM Doc_Link1 n'est mise où je vous ai dit

Vous devez la placer juste au dessus de la ligne Private sub initialize

Refaite un test

Cordialement

Edit : Faudra faire la même chose avec Acronym

exact, désolé pour ma mauvaise lecture de votre précédent post

cela fonctionne parfaitement

merci à vous

Rechercher des sujets similaires à "variable entre deux macros"