OVH Cloud OVH Cloud

unprotect

7 réponses
Avatar
gerard
bonjour
j'ai un petit probleme avec unprotect et je n'arrive pas a le resoudre
et donc merci d'avance
j'ai une un fichier Excel dossierToto.xls qui ne contient qu'une feuille et
celleci est protege par un mot de pass GUSTAVE en majuscule

j'appelle le fichier avec la methode CreateObject jusque la il n'y a pas de
prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qu elle est verrouillée,
j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE
et la ca plante Pourquoi...
merci

7 réponses

Avatar
Starwing
Bonjour,

Gerard écrit:

prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qui est
verrouillée, j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE et la ca
plante Pourquoi...

Parce qu'il faut mette Gustave entre guillemet...

ActiveWorkBook.Activesheet.Unprotect "GUSTAVE"

Starwing
-----Message d'origine-----
bonjour
j'ai un petit probleme avec unprotect et je n'arrive pas
a le resoudre

et donc merci d'avance
j'ai une un fichier Excel dossierToto.xls qui ne
contient qu'une feuille et

celleci est protege par un mot de pass GUSTAVE en
majuscule


j'appelle le fichier avec la methode CreateObject jusque
la il n'y a pas de

prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qu elle est
verrouillée,

j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE
et la ca plante Pourquoi...
merci




.



Avatar
gerard
salut
c'est pareil pas de changement
ge

"Starwing" a écrit dans le message de
news:08ef01c3c40f$6b3b2e60$
Bonjour,

Gerard écrit:

prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qui est
verrouillée, j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE et la ca
plante Pourquoi...

Parce qu'il faut mette Gustave entre guillemet...

ActiveWorkBook.Activesheet.Unprotect "GUSTAVE"

Starwing
-----Message d'origine-----
bonjour
j'ai un petit probleme avec unprotect et je n'arrive pas
a le resoudre

et donc merci d'avance
j'ai une un fichier Excel dossierToto.xls qui ne
contient qu'une feuille et

celleci est protege par un mot de pass GUSTAVE en
majuscule


j'appelle le fichier avec la methode CreateObject jusque
la il n'y a pas de

prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qu elle est
verrouillée,

j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE
et la ca plante Pourquoi...
merci




.



Avatar
michdenis
Bonsoir Gérard,

Pourquoi ne pas publier ta procédure au complet ?


Salutations!


"gerard" a écrit dans le message de news:brnnbo$7e5$
bonjour
j'ai un petit probleme avec unprotect et je n'arrive pas a le resoudre
et donc merci d'avance
j'ai une un fichier Excel dossierToto.xls qui ne contient qu'une feuille et
celleci est protege par un mot de pass GUSTAVE en majuscule

j'appelle le fichier avec la methode CreateObject jusque la il n'y a pas de
prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qu elle est verrouillée,
j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE
et la ca plante Pourquoi...
merci
Avatar
gerard
Bonsoir
je pensais que cela pouvais etre long mai en tronquant un peu il y a peut
etre beaucoup a redire, enfin si en plus, il y a des correction qui me font
progresser je suis preneur
merci d'avance

Public Sub PrintDossier()
Dim Chem As String
Dim NameDoss As String
Dim NomDossier As String
On Error GoTo Erreur
Set ObjExcel = CreateObject("Excel.Application") 'construction de l'objet
Excel
'le dossier doit être dans le meme dossier
Chem = CurrentProject.Path & "" & "DossierPrint.xls"
ObjExcel.Workbooks.Open (Chem) 'ouverture du fichier excel Dossier
Candidat.xls

' Recuperation des champs et alimentation du dossier
'Etat Civil
ObjExcel.Worksheets("Dossier candidat").Range("C13").Value Form_Dossier.LstCivilite.Value
ObjExcel.Worksheets("Dossier candidat").Range("H13").Value Form_Dossier.TxtNom.Value
' case a cocher
If Form_Dossier.CchPersoFix.Value = True Then ObjExcel.Worksheets("Dossier
candidat").ChkTelFixe.Value = True 'fixe confidentiel

' 'Etat SITUATION PROFESSIONNEL
If Form_Dossier.CrpPoste.Value = 1 Then
ObjExcel.Worksheets("Dossier candidat").OptPosteOui.Value = True 'oui le
poste est en cours
ObjExcel.Worksheets("Dossier candidat").OptPosteNon.Value = False
ActiveSheet.Unprotect "GERARD"

ObjExcel.Worksheets("Dossier candidat").Range("M38").Value = ""
ObjExcel.Worksheets("Dossier candidat").Range("P38").Value = ""
ObjExcel.Worksheets("Dossier candidat").Range("M38").BackColor = 16777215
ActiveSheet.Protect "GERARD", DrawingObjects:=True, Contents:=True,
Scenarios:=True

End If
If Form_Dossier.CrpPoste.Value = 2 Then
ObjExcel.Worksheets("Dossier candidat").OptPosteNon.Value = True 'oui le
poste est en cours
ObjExcel.Worksheets("Dossier candidat").OptPosteOui.Value = False
'ActiveWorkbook.ActiveSheet.Unprotect "GERARD"

ObjExcel.Worksheets("Dossier candidat").Range("M38").Value = "Date de
départ :"
ObjExcel.Worksheets("Dossier candidat").Range("P38").Value Form_Dossier.TxtDepart.Value
'ActiveSheet.Protect "GERARD", DrawingObjects:=True, Contents:=True,
Scenarios:=True

ObjExcel.Worksheets("Dossier candidat").Range("H40").Value Form_Dossier.TxtRaisonDepart.Value

End If

' copie dans les champs prevus
ObjExcel.Worksheets("Dossier candidat").Range("J38").Value Form_Dossier.TxtdateDispo.Value ' date de disponibilite
If Form_Dossier.CchVehicule.Value = True Then
ObjExcel.Worksheets("Dossier candidat").ChBVeh.Value = True
ObjExcel.Worksheets("Dossier candidat").Range("J36").Value Form_Dossier.TxtClairAV.Value
ObjExcel.Worksheets("Dossier candidat").Range("C38").Value Form_Dossier.TxtMois.Value

' 'Motivation
ObjExcel.Worksheets("Dossier candidat").Range("G45").Value Form_Dossier.TxtRaisonCherche.Value
ObjExcel.Worksheets("Dossier candidat").Range("F47").Value Form_Dossier.TxtRenumeration.Value
If Form_Dossier.LstGeo.RowSource > "" Then ' l'option oui a ete coche
ObjExcel.Worksheets("Dossier candidat").OptMobOui = True
ObjExcel.Worksheets("Dossier candidat").Range("O49").Value Form_Dossier.LstGeo.Column(0, 1)
End If
ObjExcel.Worksheets("Dossier candidat").Range("D51").Value Form_Dossier.TxtPosteMotiv.Value
'taille entreprise
If Form_Dossier.CchPme.Value = True Then ObjExcel.Worksheets("Dossier
candidat").chkPME.Value = True
' 'diplomes
PrintDiplome

ObjExcel.Worksheets("Dossier candidat").Range("D161").Value Form_Dossier.TxtA.Value
ObjExcel.Worksheets("Dossier candidat").Range("L161").Value = Now

'ActiveSheet.Protect Password:=GERARD, DrawingObjects:=True, Contents:=True,
Scenarios:=True

ActiveWindow.SelectedSheets.PrintOut Copies:=1, collate:=True
MsgBox "impression en cours ...", vbInformation
' attention save print dossier
ObjExcel.ActiveWorkbook.Close SaveChanges:úlse

ObjExcel.Workbooks.Close 'ferme l'application
Set ObjExcel = Nothing
Exit Sub

Erreur:
MsgBox Err.Number
MsgBox Err.Description
If Err.Number = 55 Or Err.Number = 75 Then
Beep
MsgBox "Fichier''Dossier Candidat.Xls'' introuvable" & Chr(13) & "ou
erreur de chemin d'accès", vbCritical + vbOKOnly, "Probleme de chargement"
End If

End Sub












"michdenis" a écrit dans le message de
news:
Bonsoir Gérard,

Pourquoi ne pas publier ta procédure au complet ?


Salutations!


"gerard" a écrit dans le message de
news:brnnbo$7e5$

bonjour
j'ai un petit probleme avec unprotect et je n'arrive pas a le resoudre
et donc merci d'avance
j'ai une un fichier Excel dossierToto.xls qui ne contient qu'une feuille
et

celleci est protege par un mot de pass GUSTAVE en majuscule

j'appelle le fichier avec la methode CreateObject jusque la il n'y a pas
de

prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qu elle est verrouillée,
j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE
et la ca plante Pourquoi...
merci







Avatar
Elfe Noir
bonsoir

si je peux me permettre

pourquoi tu as des unprotect et protect après une " ' " ???



"gerard" a écrit dans le message de
news:bro20p$nr9$
Bonsoir
je pensais que cela pouvais etre long mai en tronquant un peu il y a peut
etre beaucoup a redire, enfin si en plus, il y a des correction qui me font
progresser je suis preneur
merci d'avance

Public Sub PrintDossier()
Dim Chem As String
Dim NameDoss As String
Dim NomDossier As String
On Error GoTo Erreur
Set ObjExcel = CreateObject("Excel.Application") 'construction de l'objet
Excel
'le dossier doit être dans le meme dossier
Chem = CurrentProject.Path & "" & "DossierPrint.xls"
ObjExcel.Workbooks.Open (Chem) 'ouverture du fichier excel Dossier
Candidat.xls

' Recuperation des champs et alimentation du dossier
'Etat Civil
ObjExcel.Worksheets("Dossier candidat").Range("C13").Value Form_Dossier.LstCivilite.Value
ObjExcel.Worksheets("Dossier candidat").Range("H13").Value Form_Dossier.TxtNom.Value
' case a cocher
If Form_Dossier.CchPersoFix.Value = True Then ObjExcel.Worksheets("Dossier
candidat").ChkTelFixe.Value = True 'fixe confidentiel

' 'Etat SITUATION PROFESSIONNEL
If Form_Dossier.CrpPoste.Value = 1 Then
ObjExcel.Worksheets("Dossier candidat").OptPosteOui.Value = True 'oui le
poste est en cours
ObjExcel.Worksheets("Dossier candidat").OptPosteNon.Value = False
ActiveSheet.Unprotect "GERARD"

ObjExcel.Worksheets("Dossier candidat").Range("M38").Value = ""
ObjExcel.Worksheets("Dossier candidat").Range("P38").Value = ""
ObjExcel.Worksheets("Dossier candidat").Range("M38").BackColor = 16777215
ActiveSheet.Protect "GERARD", DrawingObjects:=True, Contents:=True,
Scenarios:=True

End If
If Form_Dossier.CrpPoste.Value = 2 Then
ObjExcel.Worksheets("Dossier candidat").OptPosteNon.Value = True 'oui le
poste est en cours
ObjExcel.Worksheets("Dossier candidat").OptPosteOui.Value = False
'ActiveWorkbook.ActiveSheet.Unprotect "GERARD"

ObjExcel.Worksheets("Dossier candidat").Range("M38").Value = "Date de
départ :"
ObjExcel.Worksheets("Dossier candidat").Range("P38").Value Form_Dossier.TxtDepart.Value
'ActiveSheet.Protect "GERARD", DrawingObjects:=True, Contents:=True,
Scenarios:=True

ObjExcel.Worksheets("Dossier candidat").Range("H40").Value Form_Dossier.TxtRaisonDepart.Value

End If

' copie dans les champs prevus
ObjExcel.Worksheets("Dossier candidat").Range("J38").Value Form_Dossier.TxtdateDispo.Value ' date de disponibilite
If Form_Dossier.CchVehicule.Value = True Then
ObjExcel.Worksheets("Dossier candidat").ChBVeh.Value = True
ObjExcel.Worksheets("Dossier candidat").Range("J36").Value Form_Dossier.TxtClairAV.Value
ObjExcel.Worksheets("Dossier candidat").Range("C38").Value Form_Dossier.TxtMois.Value

' 'Motivation
ObjExcel.Worksheets("Dossier candidat").Range("G45").Value Form_Dossier.TxtRaisonCherche.Value
ObjExcel.Worksheets("Dossier candidat").Range("F47").Value Form_Dossier.TxtRenumeration.Value
If Form_Dossier.LstGeo.RowSource > "" Then ' l'option oui a ete coche
ObjExcel.Worksheets("Dossier candidat").OptMobOui = True
ObjExcel.Worksheets("Dossier candidat").Range("O49").Value Form_Dossier.LstGeo.Column(0, 1)
End If
ObjExcel.Worksheets("Dossier candidat").Range("D51").Value Form_Dossier.TxtPosteMotiv.Value
'taille entreprise
If Form_Dossier.CchPme.Value = True Then ObjExcel.Worksheets("Dossier
candidat").chkPME.Value = True
' 'diplomes
PrintDiplome

ObjExcel.Worksheets("Dossier candidat").Range("D161").Value Form_Dossier.TxtA.Value
ObjExcel.Worksheets("Dossier candidat").Range("L161").Value = Now

'ActiveSheet.Protect Password:=GERARD, DrawingObjects:=True, Contents:=True,
Scenarios:=True

ActiveWindow.SelectedSheets.PrintOut Copies:=1, collate:=True
MsgBox "impression en cours ...", vbInformation
' attention save print dossier
ObjExcel.ActiveWorkbook.Close SaveChanges:úlse

ObjExcel.Workbooks.Close 'ferme l'application
Set ObjExcel = Nothing
Exit Sub

Erreur:
MsgBox Err.Number
MsgBox Err.Description
If Err.Number = 55 Or Err.Number = 75 Then
Beep
MsgBox "Fichier''Dossier Candidat.Xls'' introuvable" & Chr(13) & "ou
erreur de chemin d'accès", vbCritical + vbOKOnly, "Probleme de chargement"
End If

End Sub












"michdenis" a écrit dans le message de
news:
Bonsoir Gérard,

Pourquoi ne pas publier ta procédure au complet ?


Salutations!


"gerard" a écrit dans le message de
news:brnnbo$7e5$

bonjour
j'ai un petit probleme avec unprotect et je n'arrive pas a le resoudre
et donc merci d'avance
j'ai une un fichier Excel dossierToto.xls qui ne contient qu'une feuille
et

celleci est protege par un mot de pass GUSTAVE en majuscule

j'appelle le fichier avec la methode CreateObject jusque la il n'y a pas
de

prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qu elle est verrouillée,
j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE
et la ca plante Pourquoi...
merci







Avatar
michdenis
Bonjour Gérard,

Lorsque tu veux modifier la teneur des cellules par macro, tu ajoutes seulement ceci à ton projet,

Dans le Thisworkbook de ton projet, copie ce qui suit.. et dans ta procédure, tu n'as pas besoin de protéger ou déprotéger ta
feuille tant et aussi longtemps que tu modifieras le contenu des cellules par macro.

'-------------------------
Private Sub Workbook_Open()

With Worksheets("Dossier candidat")
.Protect Password:=GERARD, DrawingObjects:=True, _
Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
End With

End Sub
'-------------------------


Ta même procécure écrite avec With ... End With ...
moins les lignes Protect et Unprotect.

Je ne l'ai pas testé... cela se veut juste un modèle ....

'-------------------------------------------
Public Sub PrintDossier()
Dim Chem As String
Dim NameDoss As String
Dim NomDossier As String
On Error GoTo Erreur
'construction de l'objet Excel
Set ObjExcel = CreateObject("Excel.Application")
'le dossier doit être dans le meme dossier
Chem = Application.Path & "" & "DossierPrint.xls"

With ObjExcel
'ouverture du fichier excel Dossier candidat.xls
With .Workbooks.Open(Chem)

' Recuperation des champs et
'alimentation du dossier Etat Civil
With .Worksheets("Dossier candidat")
.Range("C13").Value = _
Form_Dossier.LstCivilite.Value
.Range("H13").Value = _
Form_Dossier.TxtNom.Value
' case a cocher
If Form_Dossier.CchPersoFix.Value = True Then
.ChkTelFixe.Value = True 'fixe confidentiel"
End If

'Etat SITUATION PROFESSIONNEL
If Form_Dossier.CrpPoste.Value = 1 Then
'oui le poste est en cours
.OptPosteOui.Value = True
.OptPosteNon.Value = False
.Range("M38").Value = ""
.Range("P38").Value = ""
.Range("M38").BackColor = 16777215
End If

If Form_Dossier.CrpPoste.Value = 2 Then
'oui le poste est en cours
.OptPosteNon.Value = True
.OptPosteOui.Value = False
.Range("M38").Value = "Date de départ :"
.Range("P38").Value = Form_Dossier.TxtDepart.Value
.Range("H40").Value = Form_Dossier.TxtRaisonDepart.Value
End If

' copie dans les champs prevus
' date de disponibilite
.Range("J38").Value = _
Form_Dossier.TxtdateDispo.Value
If Form_Dossier.CchVehicule.Value = True Then
.ChBVeh.Value = True
End If

.Range("J36").Value = Form_Dossier.TxtClairAV.Value
.Range("C38").Value = Form_Dossier.TxtMois.Value
'Motivation
.Range("G45").Value = Form_Dossier.TxtRaisonCherche.Value
.Range("F47").Value = Form_Dossier.TxtRenumeration.Value

If Form_Dossier.LstGeo.RowSource > "" Then
'l'option oui a ete coche
.OptMobOui = True
.Range("O49").Value = Form_Dossier.LstGeo.Column(0, 1)
End If

.Range("D51").Value = Form_Dossier.TxtPosteMotiv.Value
'taille entreprise

If Form_Dossier.CchPme.Value = True Then
.chkPME.Value = True
End If

'diplomes
PrintDiplome

.Range("D161").Value = Form_Dossier.TxtA.Value
.Range("L161").Value = Now
.PrintOut Copies:=1, collate:=True
MsgBox "impression en cours ...", vbInformation
' attention save print dossier
End With
.Close SaveChanges:úlse
End With

ObjExcel.Quit 'ferme l'application
Set ObjExcel = Nothing
Exit Sub

Erreur:
MsgBox Err.Number
MsgBox Err.Description
If Err.Number = 55 Or Err.Number = 75 Then
Beep
MsgBox "Fichier''Dossier Candidat.Xls'' introuvable" _
& Chr(13) & "ou erreur de chemin d'accès", _
vbCritical + vbOKOnly, "Probleme de chargement"
End If

End Sub
'-------------------------------------------


Salutations!



"gerard" a écrit dans le message de news:brnnbo$7e5$
bonjour
j'ai un petit probleme avec unprotect et je n'arrive pas a le resoudre
et donc merci d'avance
j'ai une un fichier Excel dossierToto.xls qui ne contient qu'une feuille et
celleci est protege par un mot de pass GUSTAVE en majuscule

j'appelle le fichier avec la methode CreateObject jusque la il n'y a pas de
prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qu elle est verrouillée,
j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE
et la ca plante Pourquoi...
merci
Avatar
D.LAIR
Bonjour,
Je pense qu'il faut tout simplement faire :
ActiveWorkBook.Activesheet.Unprotect "GUSTAVE"
(sans les guillemenets, VB prend cela comme une variable.
Dim MotDeP as string
... ...
MotDeP="GUSTAVE"
puis
ActiveWorkBook.Activesheet.Unprotect MotDeP
Cela aurait fonctionné.
Amicalement.
DL
-----Message d'origine-----
bonjour
j'ai un petit probleme avec unprotect et je n'arrive pas
a le resoudre

et donc merci d'avance
j'ai une un fichier Excel dossierToto.xls qui ne
contient qu'une feuille et

celleci est protege par un mot de pass GUSTAVE en
majuscule


j'appelle le fichier avec la methode CreateObject jusque
la il n'y a pas de

prob j'ecris dans des cellules qui sont deverrouillées
maintenant je veux modifier une cellule qu elle est
verrouillée,

j'utilise
ActiveWorkBook.Activesheet.Unprotect GUSTAVE
et la ca plante Pourquoi...
merci




.