2013-06-15 6 views
2

Y a-t-il un moyen d'empêcher la réorganisation des feuilles de calcul? Par exemple: Sheet1, Sheet2, Sheet3 ne peut pas être déplacé vers un nouvel ordre de Sheet3, Sheet2, Sheet1. Par exemple: J'ai le code Sheet1.cells (1, 1) .value et en réarrangeant des feuilles il change les références d'objet. Je dois désactiver ceci pour que l'utilisateur ne casse pas le code par inadvertance. Peut-être un échec dans la planification mais néanmoins je suis coincé avec cela jusqu'à ce qu'une réécriture est possible.Excel vba empêcher glisser l'ordre de feuille de calcul

Aurait besoin d'une solution pour 2003, 2007, 2010 et au-delà si possible.

Je ne vois pas de sujets ou de solutions sur le net, dans le navigateur d'objets, ou sur stackoverflow donc j'apprécierais votre aide/références que vous pourriez avoir à offrir.

Merci.

+2

Faire glisser une feuille à une position différente ne change pas son nom de code, seulement sa propriété 'Index'. –

+0

@ AlexandreP.Levasseur Comme je l'ai dit ce n'est pas possible maintenant, j'aurais aimé qu'il le soit. Je comprends d'où tu viens. – BgreenDSI

+0

L'utilisation du nom de feuille est une bonne alternative à l'utilisation de l'index. Set ws = Sheets ("sheet_name") – Sam

Répondre

2

Je vois le problème avec le code.

Main 1 

Sub Main(sheetIndex as integer) 

Dim ws as worksheet 
Dim x as String 

    Set ws = Sheets(sheetIndex) 

    x = ws.Cells(1, 1).value 

End sub 

à Changé:

Main Sheet1 

Sub Main(sheetIndex as Object) 

Dim x as String  

    x = sheetIndex.Cells(1, 1).value 

End sub 

Réorganiser des feuilles de calcul ne casse pas le code maintenant. Maintenant, j'ai besoin de creuser le code et de trouver plus d'instances. Merci Tim, Alexandre.

Questions connexes