Bienvenue sur les forums conseil & création · S'enregistrer

Se connecter automatiquement

Forums » Tableurs et logiciels de gestion (Money, Excel, Open Office...) » Mise à jour classeur à l'aide d'une macro · Envoyer le lien

Par TheDoude, le 16 Nov 2009, 18:45 Revenir en haut de page Répondre en citant

Salut,

Peut être est ce un élément de réponse, mais ma macro se trouve dans le fichier intitulé Feuille de prep
y a t-il une cause à effet ?

@+
Par Horny, le 16 Nov 2009, 20:34 Revenir en haut de page Répondre en citant

Citation:
ma macro se trouve dans le fichier intitulé Feuille de prep


Ah, ça change tout ça (enfin, presque Laughing )... moi je partais du principe que le lien à changer était dans la feuille de suivi... Confused

Bon, on y retourne (j'ai viré les commentaires car ça commençait à devenir lourd, cependant, je peux les remettre si tu ne comprend pas certains passages):

Code:

Sub LinkSuiviPrep()

Dim Sem_Count
Dim NewLink As String


const OldLink =   "\\S_reims1\exploit\EXPLOITATION\QUICK\Sources\Source Fille\Fichier de suivi adm - Sem 00.xls"
NewLink = "\\S_reims1\[...]\Fichier de suivi adm - Sem  "

Sem_Count = Left(Right(ThisWorkbook.Name,6), 2)
NewLink = NewLink & Sem_Count & ".xls"

ActiveWorkbook.ChangeLink Name:= OldLink, NewName:= NewLink, Type:=xlExcelLinks

End Sub


La macro est donc à mettre dans le fichier prep 00 (pour qu'elle soit copiée/collée à chaque nouvelle semaine), et s'exécute donc à partir du fichier prep xx , en modifiant le lien vers le fichier adm xx


@+++
Par TheDoude, le 17 Nov 2009, 15:20 Revenir en haut de page Répondre en citant

Salut,

Ah non ! moi les commentaires je ne trouve pas ça lourd du tout, parce que tu as dû oublié que je suis un super débutant en vba Cool

Au contraire cela me permet d'essayer de comprendre ...

Je tiens au courant si ça fonctionne

@++
Par TheDoude, le 17 Nov 2009, 16:30 Revenir en haut de page Répondre en citant

Re,

Après essai j'ai encore un souci Embarassed , quand je clique sur le bouton, la macro m'ouvre le dossier suivi adm sem 00 (j'ai fait la liaison sur ce fichier là avant de recopier je regarde si ça marche dans la source).
Ensuite j'ai un message d'erreur qui me dit impossible d'exécuter la macro"Fichier de suivi adm - Sem 00.xls'!LinkSuiviPrep'.Il est possible qu'elle ne soit pas disponible dans ce classeur ou que les macros soient désactivées.
Par contre après tout ça la mise à jour s'éffectue, j'ai mis des chiffres bidons et ils se sont bien mis dans mon tableau.

Peut être qu'il y a un problème avec le nom car mon fichier où je prends mes données s'appelle Fichier de suivi adm - Sem 00 et pas Suivi Prep.
Pour rappel le fichier source où se trouve la macro s'appelle: Feuille Préparation pour Sem 00.xls et le fichier où se trouve les données s'appelle Fichier de suivi adm - Sem 00.xls. Je remplace Sem 00 sur les 2 fichiers recopiés par le N° de semaine en cours.
Excuse-moi de t'embêter avec tout ça Embarassed

Merci encore

@++
Par Horny, le 17 Nov 2009, 19:25 Revenir en haut de page Répondre en citant

Salut,

Citation:

Ah non ! moi les commentaires je ne trouve pas ça lourd du tout, parce que tu as dû oublié que je suis un super débutant en vba


Je ne l'ai pas oublié... mais je n'ai pas changé grand chose à la macro, le principe reste le même, c'est pour gagner un peu en lecture car sinon ça faisait un peu "wall of text", comme on dit :p


Citation:

Après essai j'ai encore un souci Embarassed , quand je clique sur le bouton, la macro m'ouvre le dossier suivi adm sem 00 (j'ai fait la liaison sur ce fichier là avant de recopier je regarde si ça marche dans la source).
Ensuite j'ai un message d'erreur qui me dit impossible d'exécuter la macro"Fichier de suivi adm - Sem 00.xls'!LinkSuiviPrep'.Il est possible qu'elle ne soit pas disponible dans ce classeur ou que les macros soient désactivées.


Je pense que le bouton que tu utilise pour lancer la macro fait appel à la "mauvaise" macro (celle qui est dans Fichier de suivi adm - Sem 00.xls), alors qu'elle devrait appeler celle qui est dans le classeur ouvert (Feuille Préparation pour Sem xx.xls)
Vérifie dans les paramètres de ton bouton, il doit pointer vers LinkSuiviPrep, sans nom de classeur avant (donc sans être précédé du signe !)

En tout cas, la macro marche, c'est bon signe Smile

@+++
Par TheDoude, le 17 Nov 2009, 19:54 Revenir en haut de page Répondre en citant

Re,
J'ai tout éffacé et j'ai recopié la nouvelle macro mais il ne se passe rien quand je clique, donc je t'envoie la macro pour que tu y regardes.
Je te précise aussi que dans le Fichier de suivi adm - Sem 00 il n'y a pas de macro, c'est juste un tableau avec des volumes saisis chaque jour.

Merci encore

@++

Sub LinkSuiviPrep()

Dim Sem_Count
Dim NewLink As String


Const OldLink = "\\S_reims1\exploit\EXPLOITATION\QUICK\Sources\Source Fille\Fichier de suivi adm - Sem 00.xls"
NewLink = "\\S_reims1\'\\S_reims1\exploit\QUICK UF\PREPARATION QUICK\Sem \Fichier de suivi adm - Sem "

Sem_Count = Left(Right(ThisWorkbook.Name, 6), 2)
NewLink = NewLink & Sem_Count & ".xls"

ActiveWorkbook.ChangeLink Name:=OldLink, NewName:=NewLink, Type:=xlExcelLinks

End Sub
Par Horny, le 17 Nov 2009, 20:09 Revenir en haut de page Répondre en citant

Citation:
J'ai tout éffacé et j'ai recopié la nouvelle macro mais il ne se passe rien quand je clique, donc je t'envoie la macro pour que tu y regardes.


Dans quel classeur as-tu copié la macro ? Normalement, elle doit se retrouver dans le fichier qui contient le lien à modifier, c'est à dire Feuille Préparation pour Sem xx.xls si j'ai bien suivi l'histoire...
Par TheDoude, le 18 Nov 2009, 09:58 Revenir en haut de page Répondre en citant

Bonjour,

Oui tu as bien suivi l'histoire, la macro se trouve bien où tu dis. Mais c'était pour répondre à ça :

Je pense que le bouton que tu utilise pour lancer la macro fait appel à la "mauvaise" macro (celle qui est dans Fichier de suivi adm - Sem 00.xls), alors qu'elle devrait appeler celle qui est dans le classeur ouvert (Feuille Préparation pour Sem xx.xls).

Donc je t'ai envoyé la macro qui est au bon endroit, parce que dans le fichier source il ne se passe rien quand je mets un volume dans le fichier de suivi adm - Sem 00. Je n'ai pas encore essayé en les renommant parce que ça ne fonctionne pas pour le moment Sad

Mais bon je ne désespère pas, j'ai dû faire une boulette quelque part ...
Le code que je t'ai envoyé te parait-il bon Question

@++
Par Horny, le 19 Nov 2009, 18:18 Revenir en haut de page Répondre en citant

Salut,

Citation:
Donc je t'ai envoyé la macro qui est au bon endroit, parce que dans le fichier source il ne se passe rien quand je mets un volume dans le fichier de suivi adm - Sem 00. Je n'ai pas encore essayé en les renommant parce que ça ne fonctionne pas pour le moment


La macro se sert des noms des classeurs renommés (et dans leurs répertoires respectifs), c'est probablement pour ça que la macro ne marche pas. Essaye de créer 2 fichiers de test (genre semaine 53 Razz ) pour essayer la macro.

Citation:
Le code que je t'ai envoyé te parait-il bon ?


A vue de nez, oui, sauf que je ne peux évidemment pas vérifier s'il n'y a pas une erreur dans les chemins d'accès... Mais si les chemins sont bons, le reste devrait fonctionner Exclamation

@+++
Par TheDoude, le 19 Nov 2009, 19:58 Revenir en haut de page Répondre en citant

Bonjour,

Alors comme nous sommes jeudi c'est le jour où je crée ma semaine suivante, donc après j'ai appuyé sur mon bouton mise à jour et j'ai eu ce message d'erreur :
Erreur de compilation
Projet ou bibliothèque introuvable et dans la macro il m'a surligné Right.

Voilà qu'en penses-tu ?

@++
Par Horny, le 20 Nov 2009, 17:08 Revenir en haut de page Répondre en citant

Salut,

A priori c'est un bug qui survient parfois, la parade serait de remplacer Right par VBA.Right.

Je n'ai pas trouvé l'explication du pourquoi, mais en attendant, essaye et dis-moi si ça résout le problème.

@+++
Par TheDoude, le 23 Nov 2009, 18:02 Revenir en haut de page Répondre en citant

Bonjour,

J'ai créé une semaine 54 qui va me servir pour faire nos essais.
Donc j'ai encore un message d'erreur qui me dit:
Erreur d'exécution '1004':
La Méthode 'ChangeLink' de l'objet'_Workbook' a échoué

Crying or Very sad

Voilà

@++
Par Horny, le 24 Nov 2009, 05:54 Revenir en haut de page Répondre en citant

Salut,

Citation:
Erreur d'exécution '1004':
La Méthode 'ChangeLink' de l'objet'_Workbook' a échoué


Question bête, mais il y a bien une liaison déjà existante dans le classeur où se situe la macro ?

@+++
Par TheDoude, le 24 Nov 2009, 15:39 Revenir en haut de page Répondre en citant

Bonjour,

Oui il y a une liaison sur le Fichier de Suivi adm - Sem 00.

@++
Par Horny, le 24 Nov 2009, 17:31 Revenir en haut de page Répondre en citant

Salut,

Après avoir tout relu plusieurs, fois, il semblerait que j'ai oublié de rajouter le numéro de la semaine dans le chemin d'accès (Sem xx\Fichier...) Embarassed

Réessayons avec le code ci-dessous:

Code:
Sub LinkSuiviPrep()

Dim Sem_Count
Dim NewLink As String


const OldLink =   "\\S_reims1\exploit\EXPLOITATION\QUICK\Sources\Source Fille\Fichier de suivi adm - Sem 00.xls"
NewLink = "\\S_reims1\exploit\QUICK UF\PREPARATION QUICK\Sem "

Sem_Count = Left(Right(ThisWorkbook.Name,6), 2)
NewLink = NewLink & Sem_Count & "\Fichier de suivi adm - Sem  " &  Sem_Count & ".xls"

ActiveWorkbook.ChangeLink Name:= OldLink, NewName:= NewLink, Type:=xlExcelLinks

End Sub


Cette fois, ça devrait marcher... sauf si y'a une autre coquille Very Happy

@+++

Forums » Tableurs et logiciels de gestion (Money, Excel, Open Office...) » Mise à jour classeur à l'aide d'une macro · Envoyer le lien