Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 20/04/2006, 18h16   #1 (permalink)
XLDnaute Occasionel
 
Avatar de rudymagny
 
Date d'inscription: février 2006
Localisation: gif sur yvette
Version Excel : Excel XP (PC)
Messages: 239
Envoyer un message via MSN à rudymagny
Par défaut améliorer module pour maintenance plus simple

Bonjour le forum,
Voilà j'ai un classeur avec un module en VBA qui me permet d'attribuer des noms à des colonnes!
Le problème c'est que si je modifie mon tableau (déplacer colonnes etc..) je dois me retaper tout le module!
Est il possible de me dire comment l'améliorer pour le rendre plus simple?
J'ai mis un exemple -->ouvrir VB et regarder le module 1
il ne fonctionne pas dans ce classeur mais je voudrais savoir comment l'améliorer?

[file name=Classeur1_20060420181652.zip size=13637]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20060420181652.zip[/file]
__________________
@+ pour d'autres aventures XLDiennes!
C'est en forgeant qu'on devient forgeron!!!

Dernière modification par rudymagny ; 04/07/2006 à 18h44.
rudymagny est déconnecté   Réponse avec citation
ANNONCES
Vieux 20/04/2006, 18h31   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de porcinet82
 
Date d'inscription: mars 2005
Localisation: Issy les Moulineaux
Version Excel : Excel 2003 (PC)
Messages: 3 153
Envoyer un message via MSN à porcinet82
Par défaut Re:améliorer module pour maintenance plus simple

Salut Rudymagny,

Comme je ne comprends pas tout le code et que je peux pas tester, je te propose une solution que je te laisse tester.
Moi je verrais bien un truc du genre :

Code:
Sub Attribuer_formule_colonnes() 
'je supose que le mois est dans la cellule A1 pour l'exemple
mois = Cells(1, 1).Value
Sheets(mois).Activate

Columns('C:C').Select
ActiveWorkbook.Names.Add Name:='ColGet' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C3,,,COUNTA(' & mois & '!C3)-1)'

Columns('E:E').Select
ActiveWorkbook.Names.Add Name:='ColGdP' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C5,,,COUNTA(' & mois & '!C5)-1)'
 
'...
'le reste de ton code pour seulement un mois puisqu'on a changer le Janvier dans le code par la variable mois
Range('A1').Select
End Sub
Ainsi avec ce bout de code, au lieu d'avoir le code pour 12 mois, tu l'as seulement pour 1 mois.

Tiens moi au courant,

@+
__________________
« Connaître son ignorance est la meilleure part de la connaissance. »
porcinet82 est connecté maintenant   Réponse avec citation
Vieux 20/04/2006, 19h28   #3 (permalink)
XLDnaute Occasionel
 
Avatar de rudymagny
 
Date d'inscription: février 2006
Localisation: gif sur yvette
Version Excel : Excel XP (PC)
Messages: 239
Envoyer un message via MSN à rudymagny
Par défaut Re:améliorer module pour maintenance plus simple

Bonjour porcinet82 et merci de ta réponse!
j'ai mis en application ta réponse et c'est pas mal du tout parce que je réduis considérablement mon module et donc plus simple pour la maintenance de mon appli:

Sub Attribuer_formule_colonnes(mois)
Sheets(mois).Activate
Columns('C:C').Select
ActiveWorkbook.Names.Add Name:='ColGet' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C3,,,COUNTA(' & mois & '!C3)-1)'
Columns('E:E').Select
ActiveWorkbook.Names.Add Name:='ColGdP' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C5,,,COUNTA(' & mois & '!C5)-1)'
Columns('F:F').Select
ActiveWorkbook.Names.Add Name:='ColAcc' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C6,,,COUNTA(' & mois & '!C6)-1)'
Columns('H:H').Select
ActiveWorkbook.Names.Add Name:='ColU' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C8,,,COUNTA(' & mois & '!C8)-1)'
Columns('O:O').Select
ActiveWorkbook.Names.Add Name:='ColCreation' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C15,,,COUNTA(' & mois & '!C15)-1)'
Columns('P:P').Select
ActiveWorkbook.Names.Add Name:='ColRefonte' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C16,,,COUNTA(' & mois & '!C16)-1)'
Columns('Q:Q').Select
ActiveWorkbook.Names.Add Name:='ColModifBDE1E4' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C17,,,COUNTA(' & mois & '!C17)-1)'
Columns('R:R').Select
ActiveWorkbook.Names.Add Name:='ColModifBDE4' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C18,,,COUNTA(' & mois & '!C18)-1)'
Columns('S:S').Select
ActiveWorkbook.Names.Add Name:='ColPanne' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C19,,,COUNTA(' & mois & '!C19)-1)'
Columns('U:U').Select
ActiveWorkbook.Names.Add Name:='ColE1' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C21,,,COUNTA(' & mois & '!C21)-1)'
Columns('V:V').Select
ActiveWorkbook.Names.Add Name:='ColE2' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C22,,,COUNTA(' & mois & '!C22)-1)'
Columns('W:W').Select
ActiveWorkbook.Names.Add Name:='ColE3' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C23,,,COUNTA(' & mois & '!C23)-1)'
Columns('X:X').Select
ActiveWorkbook.Names.Add Name:='ColE4' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C24,,,COUNTA(' & mois & '!C24)-1)'
Columns('AB:AB').Select
ActiveWorkbook.Names.Add Name:='ColE5' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C28,,,COUNTA(' & mois & '!C28)-1)'
Columns('AD:AD').Select
ActiveWorkbook.Names.Add Name:='ColE6' & mois, RefersToR1C1:='=OFFSET(' & mois & '!R4C30,,,COUNTA(' & mois & '!C30)-1)'
Range('A1').Select
End Sub

merci @+tard
__________________
@+ pour d'autres aventures XLDiennes!
C'est en forgeant qu'on devient forgeron!!!
rudymagny est déconnecté   Réponse avec citation
Vieux 21/04/2006, 09h11   #4 (permalink)
XLDnaute Occasionel
 
Avatar de coco_lapin
 
Date d'inscription: décembre 2005
Localisation: Tournefeuille
Version Excel : Excel 2000 (PC)
Messages: 452
Par défaut Re:améliorer module pour maintenance plus simple

Bonjour Porcinet82, rudymagny et le forum.

Moi, j'utilise les cellules nommées dans toutes mes applications. Ainsi l'ajout de colonnes ou lignes est complètement transparent.

Le lien ci-dessous est une réponse à une question similaire.

http://www.excel-downloads.com/index...=152620#152620
__________________

Avec Excel rien ne sert de courir, il faut partir à point.
coco_lapin est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 08h47.


(C) 2006 Excel Downloads