problème de mise en forme qui ne suit pas...

Pour toutes vos questions à propos d'Excel ...

macro et pages protégées

Messagepar gigi777 » 02 Déc 2007, 12:32

Bonjour le fofo :D

Depuis mon dernier post ici, mon fichier a bien avancé, et je vous en remercie tou(te)s!!
Nouveau problème : ce fichier est composé d'environ 20 onglets, et est mis a disposition sur un site internet. Avant de poster ici (donc avec juste une version francaise), tous les onglets avaient une protection, notemment pour éviter aux utilisateurs de cliquer sur des cases dont ils n'ont pas besoin de cliquer, et donc afin d'éviter qu'ils ne modifient de façon involontaire (ou volontaire) des formules, textes...

Depuis que j'ai intégré la macro dont il est sujet dans ce topic, si je protège mes onglets, la macro plante sur les cellules destinations qui sont verrouillées. Est ce normal? Y a t'il un moyen de protéger ces cellules ET d'utiliser la macro? ou c'est soit la macro, soit la protection?

Merci encore pour vos réponses!
gigi777
Membre fidèle
 
Messages: 105
Inscription: 19 Sep 2007, 22:35
Localisation: Toulouse
Version Excel: 2003 pro FR

Messagepar Mytå » 02 Déc 2007, 21:28

Salut Gigi et le forum

Pour cela il faut utiliser la proprieté UserInterfaceOnly
Code: Tout sélectionner
Private Sub Workbook_Open()
Sheets(1).Protect Password:="Secret", UserInterFaceOnly:=True
End Sub


Mytå
Mytå
 

macro et VBA

Messagepar gigi777 » 02 Déc 2007, 21:40

Mercu Mytä mais je suis loin d'etre expert VBA... même débutant!

Ma macro commence comme ca :

Private Sub Worksheet_Change(ByVal Target As Range)
' Déclenche le renouvellement de la page
Application.ScreenUpdating = False

' Test de la cellule modifiée
If Target.Address = Range("Language").Address Then
' Mémorisation du nom de la feuille actuelle
NomFeuille = ActiveSheet.Name

Dois je intégrer ton code dedans? si oui, à quel moment? si non, dois je faire une 2e macro spécifique pour ton code?

Merci encore!
gigi777
Membre fidèle
 
Messages: 105
Inscription: 19 Sep 2007, 22:35
Localisation: Toulouse
Version Excel: 2003 pro FR

Messagepar Mytå » 02 Déc 2007, 21:48

Salut Gigi

La macro va dans ThisWorkBook, elle se lance au démarrage de ton application.

Il faudra bien sur adapter le nom des feuilles et le mot de passe

Mytå
Mytå
 

Messagepar gigi777 » 02 Déc 2007, 21:51

pour le mot de passe, je m'en doutais... mais le nom des feuilles (onglets) aussi? c'est quoi : le (1)?
gigi777
Membre fidèle
 
Messages: 105
Inscription: 19 Sep 2007, 22:35
Localisation: Toulouse
Version Excel: 2003 pro FR

Messagepar Mytå » 02 Déc 2007, 21:59

Re le forum

C'est le numéro de la feuille, tu peux utiliser Sheets("NomFeuille") à la place

Mytå
Mytå
 

Messagepar gigi777 » 02 Déc 2007, 22:01

mais comme j'ai env. 20 onglets, je dois faire comment : comme ca?

Private Sub Workbook_Open()
Sheets(1).Protect Password:="Secret", UserInterFaceOnly:=True
Sheets(2).Protect Password:="Secret", UserInterFaceOnly:=True
Sheets(3).Protect Password:="Secret", UserInterFaceOnly:=True
Sheets(4).Protect Password:="Secret", UserInterFaceOnly:=True

etc...?
je t'ai dit : j'y connais rien en macro! :?
gigi777
Membre fidèle
 
Messages: 105
Inscription: 19 Sep 2007, 22:35
Localisation: Toulouse
Version Excel: 2003 pro FR

Messagepar Mytå » 02 Déc 2007, 22:42

Re le forum

Une boucle sur les feuilles du classeur
Code: Tout sélectionner
Private Sub Workbook_Open()
Dim Feuille As Worksheet
For Each Feuille In Sheets
Feuille.Protect Password:="Secret", UserInterFaceOnly:=True
Next Feuille
End Sub

Mytå
Mytå
 

Messagepar gigi777 » 02 Déc 2007, 23:22

Salut le fofo!!

Merci encore... mais je ne sais pas si finalement je vais protéger ou pas : j'ai ma macro qui plante du coup! :lol: (enfin, pas trop marrant :? )

en fait, pour etre plus précis, voila ce que j'ai fait :
dans le code, j'ai changé "secret" par mon mot de passe (en laissant les "") et j'ai protégé juste la 1ere feuille.
Dans la protection, j'ai juste les cases "utiliser les rapports de tri croisé" et "sélectionner les cases déverrouillées" de cochées.
Quand je lance ma macro, ca plante à ce niveau (la ligne en rouge) :

' Déplacement à l'adresse de destination
Sheets(NomFeuille).Select
' Sélection du nom de destination et recopie du texte
Sheets(NomFeuille).Select
ActiveSheet.Range(NomCellule).Select
ActiveSheet.Paste
Application.CutCopyMode = False

et au niveau du fichier, ca bloque sur la 1ere case concernée par la macro. Comme cette case est verrouillées, j'ai essayé de la déverrouiller, ca change rien... j'ai coché au moment de la protection "selectionner les cases verrouillées", ca plante quand même... alors que sans protection, ca marche nickel!! (au passage, encore merci à Dan pour cette macro!!!)
gigi777
Membre fidèle
 
Messages: 105
Inscription: 19 Sep 2007, 22:35
Localisation: Toulouse
Version Excel: 2003 pro FR

Précédente

Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Google [Bot], Google Adsense [Bot] et 6 invités