Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 VBA Problème d'insertion d'une formule dans une colonne avec mise en forme de tableau

Flown720

XLDnaute Nouveau
Bonsoir,

J'ai soucis sur un code qui fonctionne très bien sur mon ordinateur par contre, sur d'autre PC avec la même version d'office ça ne fonctionne pas.
On utilise le même fichier commun.
J'ai vérifier que les références VBA sont bien activé.

VB:
    'Extrait de la boucle ou j'inscrit les liens en fonction de la colonne "B"
    
    For i = LigneMin To LigneMax
    If Range("B" & i) = "X" Then
    Else
    'Création des liens des document XLSX
    Lien = Range("W" & i)
    Range("U" & i).FormulaLocal = "=LIEN_HYPERTEXTE(""" & Lien & """;""X"")"

    End If
    
    Next

Sur certains PC, le code inscrit la formule sur la totalité de colonne "U" du tableau sous mise en forme, alors que normalement ça devrait inscrire sur la ligne ciblé par la variable i
Si vous avez une idée de pourquoi ça fonctionne sur un PC et pas les autres ? ils sont tous en Office 2013, et en windows 10

Merci de votre aide, bonne soirée
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Ça dépend semble-t-il d'un statut non accessible de la formule soit comme propre à toute la colonne soit comme occasionnelle.
Ce statut peut cependant être changé soit en tapant provisoirement des valeurs constantes dans certaines lignes soit au contraire en propageant une formule à toutes les lignes.
 

Flown720

XLDnaute Nouveau
Bonjour
C'est une bien mauvaise nouvelle pour moi.
J'avais trouvé une alternative en créant un lien par cette méthode

VB:
Range("T" & i).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Path_Source, TextToDisplay:="X"

Tout marche bien, sauf quand j'enregistre le fichier, après les liens sont convertis et ce qui fait que le lien marche plus, donc je suis pas plus avancé non plus...
 

Flown720

XLDnaute Nouveau
J'ai du mal expliqués mon soucis, je vais essayé d’être plus clair.
Mon fichier comporte environ 400 lignes, l'utilisateur sélectionne 1 ou plusieurs lignes, pour que la macro copie un fichier, et le renomme en fonction des références de la ligne, pour ensuite créer un lien du fichier généré.
Sauf que sur mon poste sur lequel j'ai développé, tout fonctionne, ça crée bien dans la colonne "lien" uniquement la ligne, et sur les PC de mes collègues ça écrase tous les liens crées par le lien du dernier fichier.

C'est pour ça que j'ai vraiment besoin, que le code crée uniquement la ligne, et non pas qu'il la propage sur toute la colonne du tableau..
 

Dranreb

XLDnaute Barbatruc
J'ai bien compris, mais c'est probablement seulement parce qu'actuellement il y a déjà la même formule partout (ou aucune formule nulle part) dans cette colonne. Dès que ce sera corrigé ça ne se reproduira plus, chaque nouvelle formule différente n'ira que dans la ligne indiquée.
Maintenant si la valeur de Lien était figée, en constante dans une colonne voisine, vous pourriez la spécifier comme argument à une formule =LIEN_HYPERTEXTE commune à toutes les lignes. Peut être que ce serait mieux, il faut voir. Vous n'avez pas joint de classeur me permettant de voir comment on pourrait rendre ça indépendant du fait qu'à l'nstant où vous assignez la formule il est instruit que la colonne entière est munie d'une formule commune ou au contraire de valeurs disparates mêlant constantes et formules différentes. Ce n'est pas une différence entre ce qui se passe sur votre ordi et celui de vos collègues. Il suffirait que vous mettiez, pour tester, la même formule à toutes les lignes chez vous pour que dès lors un changement à une ligne se mette aussi à changer toute la colonne.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
D'ailleurs, ayant un peu étudié votre code il me semble que vous pourriez très bien affecter à toute la colonne :
VB:
.FormulaR1C1 = "=IF(RC2<>""X"",HYPERLINK(RC23,""X""),"""")"
 

Flown720

XLDnaute Nouveau
Bonsoir, merci de votre retour.
J’y avais pas pensé du tout d’utiliser un SI pour faire apparaître le lien. C’est une trop bonne idée et peut-être même encore plus simple!! Je teste ça demain
Merci et bonne soirée
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…