Macro n'aime pas la nouvelle année

Résolu/Fermé
thony - 28 janv. 2014 à 09:50
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
- 11 févr. 2014 à 11:11
Bonjour,

j'ai mis en place une macro en 2013 pour améliorer l'ergonomie d'une base de données excel. Elle permet notamment la création automatique de lien hypertexte pour aller dans le dossier correspondant à la ligne consultée en cliquant sur la référence de la colonne L.

En début d'année j'ai ouvert le fichier nommé "bilan 2013.xls" présent dans le répertoire "Année 2013", j'ai enregistré sous le nom "bilan 2014.xls" et sous le répertoire "Année 2014".

Avec le fichier "bilan 2013.xls", j'ouvre et les liens hypertextes sont de suite actifs sans valider aucune cellule. En passant la souris sur les cellules de la colonne L, je vois s'afficher le lien hypertexte donc tout va bien.
Par contre avec le fichier "bilan 2014.xls" les liens hypertextes ne sont plus fonctionnels à l'ouverture du fichier, on ne voit pas le lien hypertexte en survolant les cellules et il faut obligatoirement entrer dans une cellule de la colonne L, et en valider le contenu pour que les liens hypertextes fonctionnent.

Je ne comprends pas cette différence de fonctionnement juste pour un changement de nom de fichier et d'un répertoire d'enregistrement.
Avez vous une idée ?

Ci dessous le code de ma macro :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False 'désactive le rafraîchissement d'écran
Dim derlign As Long
Dim Lien
Dim zone As Range
Dim cell As Range
Dim nom As String
Dim répertoire As String

répertoire = "\\bfrclocfp01\Ordo$\CONTROLE\Bilan Fournisseur\Année "

derlign = ActiveSheet.Range("L65536").End(xlUp).Row ' recuperation numero derniere ligne non vide en colonne L
If Not Intersect(Target, Columns("L")) Is Nothing Then 'vérifie si une valeur change en colonne L, si oui macro s'active
Set zone = ActiveSheet.Range("L" & 2, "L" & derlign) 'défini la zone de travail de la macro
For Each cell In zone
On Error Resume Next
' vérifie l'existence du répertoire année, sinon le créé
ChDir répertoire & Range("B" & cell.Row)
If Err <> 0 Then
MkDir répertoire & Range("B" & cell.Row)
End If
' vérifie l'existence du répertoire retour, sinon le créé
ChDir répertoire & Range("B" & cell.Row) & "\Non conformité"
If Err <> 0 Then
MkDir répertoire & Range("B" & cell.Row) & "\Non conformité"
End If
' vérifie l'existence du répertoire fournisseur, sinon le créé
ChDir répertoire & Range("B" & cell.Row) & "\Non conformité\" & Range("F" & cell.Row)
If Err <> 0 Then
MkDir répertoire & Range("B" & cell.Row) & "\Non conformité\" & Range("F" & cell.Row)
End If
' vérifie l'existence du sous répertoire du nom de la référence de la NC, sinon le créé
ChDir répertoire & Range("B" & cell.Row) & "\Non conformité\" & Range("F" & cell.Row) & "\" & Range("L" & cell.Row)
' vérifie qu'il existe la lettre R ou D pour poursuivre et créer le lien sinon passe à la cellule suivante car NC annulée
If Left(Range("L" & cell.Row), 1) = "R" Or Left(Range("L" & cell.Row), 1) = "D" Then
If Err <> 0 Then
MkDir répertoire & Range("B" & cell.Row) & "\Non conformité\" & Range("F" & cell.Row) & "\" & Range("L" & cell.Row)
End If

'format du lien hypertexte
Lien = répertoire & cell.Offset(0, -10) & "\Non conformité\" & cell.Offset(0, -6) & "\" & cell
'création du lien hypertexte
ActiveSheet.Hyperlinks.Add Anchor:=cell, Address:=Lien
End If
Next cell


End If

Set zone = Nothing 'vide la mémoire
Application.ScreenUpdating = True 'réactive le rafraîchissement d'écran

End Sub

12 réponses

Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
28 janv. 2014 à 22:23
Bonjour,
Est-ce que cette macro a servie pour le passage 2012 à 2013 et si oui les liaisons hypertextes fonctionnaient-elles ?

0
Bonsoir
J'ai mis en place cette macro début 2013.
Par contre ça me fait penser qu'après avoir enregistré ma version 2014. J'ai refermé le fichier et en l'ouvrant Excel m'a indiqué que des liaisons existaient. Comme la macro était faite pour être indépendante j'ai demandé à ce que ces liaisons soient cassées car ça n'avait pas de sens à mes yeux
0
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
28 janv. 2014 à 23:34
Bonjour,
Si j'ai bien compris cela n'as jamais été testé.
Pouvez-vous mettre à disposition une partie d'un fichier pour que je puisse réaliser un test.
Si oui le mettre sur https://www.cjoint.com/ et poster le lien.
0
bonjour,

le fichier contient des données internes entreprise, je vais essayer de créer un fichier échantillon et de vous l'envoyer.

Merci
Anthony
0
Bonjour,

le fichier en question
http://cjoint.com/?3BctvQq2oH3
on voit que sur l'onglet fichier de travail, cellule L240 on a un lien hypertexte qui s'est créé, tout comme dans l'onglet livraisons contrôlées en L3 ou dans la colonne L de l'onglet articles. il s'agit de dysfonctionnement en plus du principal, plus de création des liens hypertextes lors de l'ouverture du fichier
0
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
2 févr. 2014 à 22:43
Bonjour,
C'est très gentil de votre part, mais pour moi je suis en relation avec thony.
Désolé.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonsoir,

exact je me confonds entre mon pseudo et mon prénom, autant pour moi.

le fichier en question
http://cjoint.com/?3BctvQq2oH3
on voit que sur l'onglet fichier de travail, cellule L240 on a un lien hypertexte qui s'est créé, tout comme dans l'onglet livraisons contrôlées en L3 ou dans la colonne L de l'onglet articles. il s'agit de dysfonctionnement en plus du principal, plus de création des liens hypertextes lors de l'ouverture du fichier

thony
0
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
Modifié par Le Pingou le 3/02/2014 à 16:36
Bonjour,
Merci pour le fichier.
Pour information j'avais recrée une application selon la procédure de votre code et les liens obtenu en colonne [L] fonctionnaient correctement en ouvrant à chaque fois le bon répertoire. Je suppose que c'est ce que vous vouliez.
J'ai parcouru votre fichier et dans un premier constat j'ai remarqué que les lins ne sont pas correctement écrit selon les référence de votre code (par exemple, pour ajout de l'année : il y a : Année%202013 .... Ce devrait-être Année%2013.... !
Je vais contrôler l'exécution de la procédure sur votre classeur et vous donnerez une réponse.

Note: pouvez-vous m'indiquer la version Excel que vous utilisez...?

Salutations.
Le Pingou
0
Bonjour,
Désolé pour le délai de réponse.
J'utilise Excel 2003
Bonne journée
0
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
8 févr. 2014 à 14:21
Bonjour,
En suivant votre code, une information manque.... !
J'ai une question : que doit ouvrir le lien hypertexte.... Le dossier ou se trouve les classeurs ou un classeur ou... » ?

0
Le lien hypertexte doit ouvrir le dossier en référence
Le but est d'éviter d'avoir à ouvrir un explorer et de chercher le dossier, on accède aux différents dossiers en cliquant sur les références de la colonne L
0
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
8 févr. 2014 à 15:33
Bonjour,
Merci je regarde dans ce sens avec un test.
0
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
Modifié par Le Pingou le 9/02/2014 à 16:26
Bonjour,
J'ai réalisé les tests sur votre fichier et tout est correct.
Je pense qu'il est nécessaire de refaire les liens.
Je vous propose de sélectionner, dans la colonne [L] toutes les cellules qui contiennent un lien et de supprimer les liens (clic droit et clic Supprimer le lien hypertexte). Ensuite vous sélectionnez la cellule [L3] vous cliquez dans la barre des formule et vous validez avec [?] ou [ENTER].


Salutations.
Le Pingou
0
Merci pour le temps passé
Je ferai la manip sur les liens demain. J'espère que le soucis ne se produira pas tous les ans.
Savez vous pourquoi il y a des liens parasites sur les autres onglets ?
0
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
9 févr. 2014 à 16:54
Bonjour,
Je ne suis pas certain, une possibilité est que des valeurs ont été modifiées dans la colonne [F--Fournisseur] car ce paramètre fait partie du lien... !

0
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
9 févr. 2014 à 21:51
Bonjour,
Dans le message précédent je vous ai répondu par rapport à la faute probable qui empêche les liens de fonctionner correctement.

Concernant : Savez-vous pourquoi il y a des liens parasites sur les autres onglets ?
Si vous parlez de la cellule [L3] de la feuille [Livraisons contrôlées], il ne s'agit pas d'un lien hypertexte mais simplement d'un nombre souligné et écriture en bleu.

0
Bonjour,
alors là je ne comprends plus trop ^^
ce matin j'ai ouvert le fichier pour supprimer les liens et valider chaque cellule pour repartir à 0.
et en cliquant sur une des références pof l'explorer s'ouvre
et c'est le cas pour toutes les cellules. donc tout refonctionne normalement sans avoir rien fait.

merci pour votre aide
Bonne journée
0
Le Pingou
Messages postés
11117
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
17 août 2022
1 300
11 févr. 2014 à 11:11
Merci, c'est parfait.
0