Se connecter avec
S'enregistrer | Connectez-vous

[VB Excel 97] Refedit dans userform

Dernière réponse : dans Programmation

Bonjour
Je cherche a mettre un lien hypertexte automatiquement avec une macro.
Mais j'ai un probleme
J'utilise une boite refedit pour que l'utilisateur puisse choisir la plage de cellule sur la quel le lien sera accessible.
Mais cela ne marche pas quand l'on change de feuille par rapport a la feuille ou est le bouton pour lancer la macro.

  1. Private Sub CommandButton1_Click()
  2. Dim ht As String
  3. Dim a(2) As String
  4. Dim I As Integer
  5. a(0) = "cm"
  6. a(1) = "ct"
  7. I = ComboBox1.ListIndex
  8. ht = RefEdit1.Value
  9.  
  10. FileCopy quelfichier, "i:\toto\courbe moteur\" + ressource + a(I) + ".pdf"
  11. Range(ht).Select
  12. ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
  13. "i:\toto\courbe moteur\" + ressource + a(I) + ".pdf"
  14. Unload UFajcourbe
  15. Unload UFfichier
  16. End Sub


A+ Edoir

Autres pages sur : excel refedit userform

Lassé par la pub ? Créez un compte
Expert Programmation

La propriété Value de l'objet RefVIew te renvoie une chaine ressemblant à ça : Feuille!$Colonne1$Ligne1:$Colonne2$Ligne2
Range ne peut pas accepter une adresse de ce type. C'est à toi de faire le découpage autour du point d'exclamation. Tu devrais obtenir :
Sheet("Feuille").Range("Colonne1$Ligne1:$Colonne2$Ligne2")...


En passant, arrêter avec vos Select/Selection/ActiveTruc. C'est comme ça qu'on a ces problèmes. Ecris donc :
  1. s = RefLink.Value
  2. p = InStr(s, "!")
  3. if p = 0 then Msgbox "?" : Exit Sub
  4. f = Left(s, p - 1)
  5. a = Mid(s, p + 1)
  6. Sheets("Truc").Hyperlinks.Add Anchor:=Sheets(f).Range(a), Address:= ...

ba rien g trouver la reponse
  1. s = RefLink.Value
  2. p = InStr(s, "!" )
  3. if p = 0 then Msgbox "?" : Exit Sub
  4. f = Left(s, p - 2)
  5. f2 = Mid(f, 2)
  6. a = Mid(s, p + 1)
  7. Sheets("Truc" ).Hyperlinks.Add Anchor:=Sheets(f2).Range(a), Address:= ...

Lassé par la pub ? Créez un compte