![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Occasionel
|
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 à 19h44. |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
|
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
Tiens moi au courant, @+
__________________
« Connaître son ignorance est la meilleure part de la connaissance. » ![]() |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Occasionel
|
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!!!
|
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: décembre 2005
Localisation: Tournefeuille
Version Excel : Excel 2000 (PC)
Messages: 456
|
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. |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|