Intégration d'une variable dans une fonction.

Malcomiix

XLDnaute Nouveau
Bonjour cher membres et staff de XLD.

Je viens vers vous pour vous confronter mon petit soucis du moment...

Je ne fait que débuter en programmation (vba) soyez donc indulgents :)

Voila donc, pour mon BTS je suis amener à créer un Glossaire.

Celui-ci se trouve sur un fichier Glossaire.docx.

Il est lié à un fichier excel, Glossaire.xlsm.

J'ai donc un tableau qui reprends tout les savoir faire de mon Entreprise.

J'ai donc ceci,




J'ai donc un lien hypertexte dans ma colonne de mon tableau appelée "Liens"



Ces liens sont donc écris comme cela,

Code:
=LIEN_HYPERTEXTE("[\\212.85.150.134\Glossaire\Glossaire.docx]X_Bouterollage";"Lien vers la trame")

X_Bouterollage étant mon signet créer dans Word pour pouvoir pointer sur le tableau correspondant.

J'ai le souhait de remplacer [\\212.85.150.134\Glossaire\Glossaire.docx] par une variable (au cas ou le serveur ou se trouve le fichier change, j'anticipe ...). J'ai définis cette variable dans mon code principal.

Il sert à me créer une interface pour pouvoir créer ces lignes là, je vous le link:

Code:
Private Sub cancel_Click()

Unload Me

End Sub

Private Sub OK_Click()

Application.ScreenUpdating = False

Dim dpt, op, place As String

If puissance.Value = True Then
    dpt = "Puissance"
ElseIf signal.Value = True Then
    dpt = "Signal"
ElseIf optique.Value = True Then
    dpt = "Optique"
End If

If dpt = "" Then
MsgBox ("Veuillez selectionner un metier")

End If

op = phase.Value
place = signet.Value
place2 = intitulé.Value

i = Range("B7").End(xlDown).Offset(1, 0).Row
Cells(i, 1).EntireRow.Insert

Cells(i, 2).Value = dpt
Cells(i, 3).Value = op
Cells(i, 4).Value = place2
a = Cells(i, 5).Address

With Worksheets(1)
    .Hyperlinks.Add anchor:=.Range(a), _
        Address:="W:\05 - Méthodes\11 - Méthodes\Glossaire\Glossaire.docx", _
        SubAddress:=place, _
        TextToDisplay:="lien vers la trame"
End With

Unload Me

End Sub
Private Sub UserForm_Initialize()

With Me.phase
For i = 2 To 11
.AddItem Sheets("Macros").Cells(i, 1).Value
Next
End With

End Sub

Il faut bien sur que je garde la compatibilité du signet avec cette variable qui remplacera donc le chemin ou se trouve le .docx...

J'ai trouver une macro qui était capable de changer tout mes liens inscrit en colonne E

Code:
Sub Macro1()
Dim maFeuille As Worksheet
    
    For Each maFeuille In ActiveWorkbook.Worksheets
    
        maFeuille.Activate
        maFeuille.Cells.Replace What:="\\212.85.150.134\Glossaire\Glossaire.docx", Replacement:="M5", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        
    Next
    
End Sub

J'espère avoir été le plus clair possible, si besoin est je rajouterais des informations...


Merci bien


Cordialement.

Malcomiix.
 

Dranreb

XLDnaute Barbatruc
Re : Intégration d'une variable dans une fonction.

Bonjour.
À partir du moment ou quelque chose a besoin d'un texte entre doubles guillemets c'est qu'en général toute expression String peut faire l'affaire, et dans une telle expression vous vous pouvez concaténer par des '&' des parties fixes entre '"' et des variables.
Cordialement
 

Malcomiix

XLDnaute Nouveau
Re : Intégration d'une variable dans une fonction.

Bonjour.
À partir du moment ou quelque chose a besoin d'un texte entre doubles guillemets c'est qu'en général toute expression String peut faire l'affaire, et dans une telle expression vous vous pouvez concaténer par des '&' des parties fixes entre '"' et des variables.
Cordialement
Bonjour à vous Dranred !

Que voulez vous dire par concaténer (je suis aller voir des définitions) je ne vois pas ou je pourrais le faire dans mon bout de code précédent ... Sauriez vous m'éclaircir ?

Je vous en serais reconnaissant :)

Merci bien pour cette réponse encore un peu sombre à mes yeux ! ;)

Cordialement.
 

Dranreb

XLDnaute Barbatruc
Re : Intégration d'une variable dans une fonction.

Concaténer = mettre à la suite les uns des autres.
Marche aussi dans les formules où '&' y est également l'opérateur de concaténation.
Soit 'Chemin' le nom dans le classeur d'une cellule contenant le chemin soit '[\\212.85.150.134\Glossaire\Glossaire.docx]':
Code:
=LIEN_HYPERTEXTE(chemin&"X_Bouterollage";"Lien vers la trame")
 

Malcomiix

XLDnaute Nouveau
Re : Intégration d'une variable dans une fonction.

Voila je vous met à disposition mon fichier pour plus de clarté... désolé de ne pas y avoir penser plutôt ... :)

J'ai bien pris notes de tes conseils Dranreb mais étant novice je fait plus souvent " de la merde" en voulant changer le code à ma sauce que des miracles ...

Donc que je vous fasse un topo sur l'utilité de mes deux fichiers.

Donc je doit mettre en place un glossaire Excel et word. Mon fichier excel contient un tableau reprenant dans chaque colonnes :
Le métier
La phase
L'intitulée de cette opération
Et son lien (vers le document word)

Je créer ces lignes du tableau via une macro de création de lignes.
Celle ci reprend le métier/phase/intitulé/le lien.

Ce qui m'intéresse le plus c'est "ce lien", c'est à dire que quand il est généré, il est sous cette forme (quand je passe le curseur sur le mot lien voila ce que cela m'affiche:

file///E:\Glossaire\Glossaire XLD.docm - A

Le point que je veut aborder est le suivant.

Mon chemin: E:\Glossaire\Glossaire.docm pouvant changer d'un jour ou l'autre ... je voudrais lui assigner une variable "dynamique" je sais pas si c'est français ou possible. J'ai donc placer ce chemin dans une cellule "P5". J'aimerais donc que mes futurs liens prennent en compte cette variable dynamique et non E:\......

Si vous souhaitez vous entretenir avec moi je suis joignable électroniquement ou bien vocalement (skype, téléphone)

A bon entendeur salut :)

Et encore merci.

Cordialement
 

Pièces jointes

  • Glossaire XLD.xlsm
    43.1 KB · Affichages: 62
  • Glossaire XLD.xlsm
    43.1 KB · Affichages: 68
  • Glossaire XLD.xlsm
    43.1 KB · Affichages: 70
  • Glossaire XLD.docx
    22.1 KB · Affichages: 49
  • Glossaire XLD.docx
    22.1 KB · Affichages: 55
  • Glossaire XLD.docx
    22.1 KB · Affichages: 57
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Intégration d'une variable dans une fonction.

Ben mettez ça, ma fois:
VB:
Dim Anc As Range: Set Anc = Cells(i, 5)

With Worksheets(1)
    .Hyperlinks.Add anchor:=Anc, _
        Address:=.[P5].Value, _
        SubAddress:=place, _
        TextToDisplay:="Lien"
End With
Mais à mon avis, surtout s'il peut varier, il vaut mieux utiliser la fonction LIEN_HYPERTEXTE qu'un lien en dur.
 

Malcomiix

XLDnaute Nouveau
Re : Intégration d'une variable dans une fonction.

Okay Dranred, le soucis c'est que je me suis pas bien exprimer, comme tu le dis, il faudrait pouvoir l'écrire avec un lien hypertexte mais le seul soucis c'est qu'avec le bout de code que m'as écris mon collègue sa n'est pas possible c'est cela ? Surtout si je veut réussir à garder mon chemin et mon signet ? !
 

Dranreb

XLDnaute Barbatruc
Re : Intégration d'une variable dans une fonction.

Bonjour.
Je ne comprends pas votre question.
Utilisez des constantes String entre doubles guillemets ou des variable String ou un mélange de parties variables et de parties fixes par concaténations des deux.
 

Malcomiix

XLDnaute Nouveau
Re : Intégration d'une variable dans une fonction.

En faite je veut que via mon bouton "nouveau", je puisse créer des liens hypertexte de cette forme:

=LIEN_HYPERTEXTE("chemin#X_signet";"Lien")

Je veut que cette formule apparaisse dans ma boite de dialogue de formule ... Est ce plus clair ?

En ce moment j'ai bien un lien hypertexte de créer sauf que j'ai n'est que "Lien" d'écris dans la boite de dialogue de formule. Comment puis je y remédier ?
 

Dranreb

XLDnaute Barbatruc
Re : Intégration d'une variable dans une fonction.

Enregistrer une nouvelle macro pour pomper ultérieurement le code engendré, puis pendant que ça enregistre mettez au point la formule =LIEN_HYPERTEXTE(chemin&"X_signet";"Lien")
Il vous fabriquera une instruction du genre Selection.FormulaR1C1 = "=HYPERLINK(…
que vous pourrez adapter et remplacer par une concaténation de chemin, d'expression fixe pour VBA mais variable pour Excel, et de signet, fixe une fois défini pour Excel mais variable dans VBA.
 
Dernière édition:

Malcomiix

XLDnaute Nouveau
Re : Intégration d'une variable dans une fonction.

Ayant du mal à exprimer mes besoins je serais à la recherche d'une personne avec du temps de libre histoire de pouvoir s'entretenir via un logiciel de type skype ou autre ... Étant dans l'urgence d'informations concernant le VBA ... Je tente d'apprendre le VBA mais cela ne se fait pas du jour au lendemain ... malheureusement...
 

Malcomiix

XLDnaute Nouveau
Re : Intégration d'une variable dans une fonction.

Je n'est pas réussis à enregistrer une macro pendant que l'enregistreur de macro étant en route ... du moins j'ai pas du tout comprendre de ta démarche ... les écris me parle que trop peu ^^'

J'ai refait mes deux fichier (clean de toutes notions de mon boulot) pour faire une trame peut-être plus simple à comprendre ... J'ai expliquer le topo dans le dernier onglet ... Désolé Dranreb mais à croire que j'ai un cerf volant sur le vba .... sa me ressemble pas !

Merci encore de ta part !

PS je suis toujours à la recherche d'un bon programmateur vba, quitte à faire un cadeau ou payer un petit billet pour son travail :) qui sais ... !
 

Pièces jointes

  • Glossaire.xlsm
    34.8 KB · Affichages: 65
  • Glossaire.docx
    17.6 KB · Affichages: 50
Dernière édition:

Discussions similaires

Réponses
0
Affichages
175

Statistiques des forums

Discussions
312 471
Messages
2 088 707
Membres
103 927
dernier inscrit
Mkeal