Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4579 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pb de nom de feuille

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb de nom de feuille

n°1377905
elgobi
Posté le 31-05-2006 à 08:37:35  profilanswer
 

Bonjour,
Je réalise actuellement une macro pour une feuille excel qui risque de passer entre beaucoup de main, je voudrais donc qu'elle soit le plus modulable possible et j'ai un problème:
dans l'instruction:

Code :
  1. For Each Cell In Sheets("calculs" ).Range("verifications" )


Je voudrais éviter de nommer la feuille car si quelqu'un lui change de nom ça ne marchera plus.
Existe t'il une fonction "dans toutes les feuilles du classeur"? (la plage vérifications ne se trouve que dans la feuille calculs)
Merci d'avance

mood
Publicité
Posté le 31-05-2006 à 08:37:35  profilanswer
 

n°1377923
galopin01
Posté le 31-05-2006 à 09:18:47  profilanswer
 

bonjour,
Il suffirait de protéger le classeur...
 
La macro suivante fait ce que tu demandes :

Code :
  1. Sub Test()
  2. Dim MemWs$, Ws$
  3. Application.ScreenUpdating = False
  4. MemWs$ = ActiveSheet.Name
  5. Application.Goto Reference:="verifications"
  6. Ws = ActiveSheet.Name
  7. Worksheets(MemWs).Activate
  8. Application.ScreenUpdating = True
  9.   For Each Cell In Sheets(Ws).Range("verifications" )
  10.     'longue suite d'instruction
  11.   Next
  12. End Sub


Une autre possibilité peut-être plus élégante :

Code :
  1. Sub Test2()
  2. Dim Ws$
  3. On Error Resume Next
  4.   For i = 1 To Worksheets.Count
  5.   Ws = Worksheets(i).Range("verifications" ).Address <> ""
  6.     If Ws <> "" Then Exit For
  7.   Next
  8. Ws = Worksheets(i).Name
  9. On Error GoTo 0
  10.   For Each Cell In Sheets(Ws).Range("verifications" )
  11.    'longue suite d'instruction
  12.   Next
  13. End Sub


Sur le même principe tu peux utiliser aussi cette fonction :

Code :
  1. Function WSN() As String
  2. Dim i%, Ws$
  3. On Error Resume Next
  4.   For i = 1 To Worksheets.Count
  5.   Ws = Worksheets(i).Range("verifications" ).Address <> ""
  6.     If Ws <> "" Then Exit For
  7.   Next
  8. WSN = Worksheets(i).Name
  9. End Function


et l'utiliser de cette manière :

Code :
  1. For Each Cell In Sheets(WSN ).Range("verifications" )


On fait comme on aime...
A+


Message édité par galopin01 le 31-05-2006 à 09:26:01

---------------
roger
n°1378123
elgobi
Posté le 31-05-2006 à 14:17:59  profilanswer
 

merci

n°1378197
kiki29
Posté le 31-05-2006 à 15:29:26  profilanswer
 

Dans VBA Propriétés - Feuil1 (Name) au lieu de Feuil1 nomme par exemple ShUne de cette façon même si qqun change le nom dans l'onglet, si ton code VBA fait référence à ShUne celui fonctionnera tjs
+ protection code VBA

n°1378920
elgobi
Posté le 01-06-2006 à 14:41:12  profilanswer
 

je vois bien l'idée (et c'est exactement ça que je voudrais faire ) mais je comprends pas trop justement comment faire...j'ai cliqué sur Feuil1(Name) et je suis allée dans propriété de VBA project mais après???
y'a 2 choix: général et protection.....?????

n°1379003
kiki29
Posté le 01-06-2006 à 15:35:35  profilanswer
 

Si tu ne comprends pas , laisses tomber la programmation ...
 
1 Dans VBAProject sélectionner Feuil1(Feuil1)
2 Propriétés - Feuil1  
3 (Name) Feuil1 à renommer par exemple en ShZobi
  et ainsi de suite pour les autres feuilles
   
  Le code VBA est bien sur à adapter en conséquence avec cette redénomination
 
  de cette façon même si qqun change le nom dans l'onglet Excel : Feuil1 Feuil2 Feuil3 etc du classeur
  comme ton code VBA fera référence à ShZobi celui fonctionnera tjs  
 
4 + protection code VBA : voir  aide en ligne


Message édité par kiki29 le 01-06-2006 à 16:03:03
n°1379070
elgobi
Posté le 01-06-2006 à 16:18:58  profilanswer
 

Désolée de t'avoir importuné avec mes questions stupides...
Ce qui semblait évident pour toi ne l'était pas pour moi, je vais quand même attendre un peu avant de laisser tomber la programmation.
merci quand même

n°1379168
kiki29
Posté le 01-06-2006 à 17:39:12  profilanswer
 

Tu as raison persévère et n'écoute pas les chibanis raleurs comme moi, et en attendant précise moi si j'ai été clair dans mes explications  
"Souvent il n'y a pas de mauvais auditeurs mais de mauvais orateurs"


Message édité par kiki29 le 01-06-2006 à 17:40:25
n°1379192
elgobi
Posté le 01-06-2006 à 18:04:28  profilanswer
 

Dans VBA project propriétés je n'arrive à changer que le nom du projet (même si j'avais sélectionné Feuil1), je dois être un cas désespéré tant pis pour moi :)

n°1379226
kiki29
Posté le 01-06-2006 à 18:32:22  profilanswer
 

Il ne faut pas changer le nom du project
Sélectionner Menu Affichage / Fenetre propriétés si ce n'est pas déjà le cas
 
et dans cette fenetre propriétés Sélectionner Feuil1
dans (name) Feuil1  taper ShLeNomQueTuVeux
l'autre name un peu plus bas correspond à l'onglet et tu n'y touches pas
Modifier le code VBA en conséquence Sheets("Feuil1" ) à remplacer par ShLeNomQueTuVeux et ainsi de suite pour le reste
Puis Protéger par mot de passe ton code VBA
 
Tout en sachant qu'il existe des utilitaires qui retrouvent/changent instantanément ces mots de passe VBA.Ce qui n'est pas le cas des mots de passe suffisamment longs avec le bon encryptage (surtout pas XOR ou là on est dans le même cas que pour les mots de passe VBA ) pour les mots de passe à l'ouverture


Message édité par kiki29 le 02-06-2006 à 07:25:52
mood
Publicité
Posté le 01-06-2006 à 18:32:22  profilanswer
 

n°1379458
elgobi
Posté le 02-06-2006 à 08:38:34  profilanswer
 

Ah ben là tu vois j'ai compris :)
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pb de nom de feuille

 

Sujets relatifs
Mise page d'une feuille Excel depuis phpcomment vérifier si une feuille du classeur est déjà existante
interdire la modification d'une feuille excel sauf avec userform[VB] Copie feuille d'un classeur vers autre classeur
Balayages feuille excel et recopie de certaines cellulesprobleme de feuille résolu
copie de feuille dynamiqueCopie de Feuille
Comment copier une feuille EXCEL sous ACCESS?Mise a jour feuille excel
Plus de sujets relatifs à : pb de nom de feuille


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)