Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

action d'une macro sur 2 fichiers : Pb affectation

4 réponses
Avatar
Sky
Bonjour à tous,

Je pense avoir un cas d'école :

J'ai un tableau représentant un planning (que j'appelerais matrice) et pour
lequel j'ai créé un menu personalisé me permettant de trier, insérer une
nouvelle semaine, remettre à zéro les données, etc...

Au début, le planning ne contient qu'une semaine, l'ajout d'une nouvelle
semaine se fait par la recopie de la précédente, avec le changement de nom
(code ci-dessous)

x = ThisWorkbook.Sheets.Count
Sheets(x).Select
Sheets(x).Copy After:=Sheets(x)
Sheets(x + 1).Select
If CDec(Right(Sheets(x).Name, 2)) > 9 Then
Sheets(x + 1).Name = "S " & Right(Sheets(x).Name, 2) + 1
Else
Sheets(x + 1).Name = "S " & Right(Sheets(x).Name, 1) + 1
End If

Range("A6").Select

Ce code fonctionne bien, seul problème étant donné la taille que prendrait
ce planning sur 52 semaines (environ 100 Mo)
Je voudrais donc l'éclater sur les 12 mois.
A mon sens, la solution serait donc

1. enregistrer le fichier matrice
2. effectuer un "enregistrement sous" du fichier, le nommer et
l'enregistrer
3. rappeler le fichier matrice
4. effacer les premières semaines pour ne garder que la dernière
5. renommer la dernière semaine (+1)


J'ai donc créé ce code :

ActiveWorkbook.Save
Dim Periode As Variant
Periode = InputBox("Entrez la période (par ex: FEVRIER 2006", "PERIODE ?")
ActiveWorkbook.SaveAs Filename:="E:\PROJET EN COURS\CONTRATS WORD\" &
Periode

Workbook.Open ("E:\projet en cours\contrats word\planning.xls")



J'ai arrété ici car je suis confronté à plusieurs problèmes :
- le code ci-dessus ne fonctionne pas car il ne trouve plus l'objet
planning.xls alors que le chemin d'accès est bon. Quand je me positionne sur
le menu personalisé, l'affectation de la macro fait référence au fichier
enregistré sous !
- De plus, je ne sais pas comment supprimer les premières semaine pour ne
garder que la dernière.


En définitive, cela fait beaucoup de problèmes pour une solution qui n'est
pas forcément la plus adéquate. Toutefois, je suis "obligé" de passer par ce
genre de solution car le fichier doit être protégé de toutes parts pour
qu'il n'y ait que de la saisie.
Peut être qu'il existe d'autres solutions plus habile pour arriver à mes
fins.

Merci de votre aide et de vos suggestions

4 réponses

Avatar
François Rivierre
Bonjour,

J'ai arrété ici car je suis confronté à plusieurs problèmes :
- le code ci-dessus ne fonctionne pas car il ne trouve plus l'objet
planning.xls alors que le chemin d'accès est bon. Quand je me
positionne sur le menu personalisé, l'affectation de la macro fait
référence au fichier enregistré sous !
- De plus, je ne sais pas comment supprimer les premières semaine
pour ne garder que la dernière.


En définitive, cela fait beaucoup de problèmes pour une solution qui
n'est pas forcément la plus adéquate. Toutefois, je suis "obligé" de
passer par ce genre de solution car le fichier doit être protégé de
toutes parts pour qu'il n'y ait que de la saisie.
Peut être qu'il existe d'autres solutions plus habile pour arriver à
mes fins.


Je ne sais pas pour tout, mais il me semble qu'il serait mieux de créer le
menu dans un fichier à part, par exemple une macro complémentaire. De cette
façon, le menu pourrait accéder sans problème aux différents fichiers, et ne
serait pas enregistré avec eux. Il faut bien expliciter les chemins au
niveau des macros, mais je pense que ça pourrait déjà aller mieux.

Cordialement,

François Rivierre

Avatar
Sky
Bonjour françois,

c'est une excellente idée de créer une macro complémentaire dans un nouveau
fichier. Seul problème comment l'a créé ??.


"François Rivierre" a écrit dans le message de news:
%
Bonjour,

J'ai arrété ici car je suis confronté à plusieurs problèmes :
- le code ci-dessus ne fonctionne pas car il ne trouve plus l'objet
planning.xls alors que le chemin d'accès est bon. Quand je me
positionne sur le menu personalisé, l'affectation de la macro fait
référence au fichier enregistré sous !
- De plus, je ne sais pas comment supprimer les premières semaine
pour ne garder que la dernière.


En définitive, cela fait beaucoup de problèmes pour une solution qui
n'est pas forcément la plus adéquate. Toutefois, je suis "obligé" de
passer par ce genre de solution car le fichier doit être protégé de
toutes parts pour qu'il n'y ait que de la saisie.
Peut être qu'il existe d'autres solutions plus habile pour arriver à
mes fins.


Je ne sais pas pour tout, mais il me semble qu'il serait mieux de créer le
menu dans un fichier à part, par exemple une macro complémentaire. De
cette
façon, le menu pourrait accéder sans problème aux différents fichiers, et
ne
serait pas enregistré avec eux. Il faut bien expliciter les chemins au
niveau des macros, mais je pense que ça pourrait déjà aller mieux.

Cordialement,

François Rivierre





Avatar
François Rivierre
c'est une excellente idée de créer une macro complémentaire dans un
nouveau fichier. Seul problème comment l'a créé ??.


Tu commences par créer un nouveau fichier vide, dans lequel tu vas écrire /
mettre au point / tester toutes les macros qui te sont nécessaires. La
différence par rapport à ton classeur précédent sera que ces macros
fonctionneront sur différents classeurs, et seront centralisées dans un seul
et même fichier. Une fois que tu as tout bien mis au point, tu enregistres
le fichier en tant que "macro complémentaire (*.xla)", puis tu l'ajoutes à
la liste des macros complémentaires (menu "Outils" -> "Macros
complémentaires..." -> "Parcourir..."). A partir de là, ton fichier sera
chargé au démarrage d'Excel, et te permettra d'accéder à tes différents
classeurs par mois.

J'espère que ça t'aide :).

Cordialement,

François Rivierre

Avatar
Sky
ca m'aide énormément

merci beaucoup françois

@+

"François Rivierre" a écrit dans le message de news:

c'est une excellente idée de créer une macro complémentaire dans un
nouveau fichier. Seul problème comment l'a créé ??.


Tu commences par créer un nouveau fichier vide, dans lequel tu vas écrire
/
mettre au point / tester toutes les macros qui te sont nécessaires. La
différence par rapport à ton classeur précédent sera que ces macros
fonctionneront sur différents classeurs, et seront centralisées dans un
seul
et même fichier. Une fois que tu as tout bien mis au point, tu enregistres
le fichier en tant que "macro complémentaire (*.xla)", puis tu l'ajoutes à
la liste des macros complémentaires (menu "Outils" -> "Macros
complémentaires..." -> "Parcourir..."). A partir de là, ton fichier sera
chargé au démarrage d'Excel, et te permettra d'accéder à tes différents
classeurs par mois.

J'espère que ça t'aide :).

Cordialement,

François Rivierre