Ou Noter prtection Feuille dans ce Code???

  • Initiateur de la discussion Initiateur de la discussion MuscatMimi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MuscatMimi

XLDnaute Accro
Bonjour a tous

J'ai un petit soucis

Dans le Code ci-dessous, je ne sais pas ou noter

.Unprotect Password = "0000"

et

.Protect Password = "0000"

Private Sub ListView1_DblClick() 'Pointe ou Dépointe les Ecritures

Dim x As Byte, Numlign As Long

With ListView1
If .ListItems(.SelectedItem.Index).ListSubItems(13).Text = "NP" Then '12 N° de la Colonne M


Numlign = ListView1.SelectedItem.Index + 9 'N° de la 1 iere Ligne de la Base

If MsgBox("Confirmer le Pointage.", vbYesNo, "Pointage") = vbYes Then

.ListItems(.SelectedItem.Index).ListSubItems(13).Text = "P"
Sheets("Data").Range("N" & Numlign) = .ListItems(.SelectedItem.Index).ListSubItems(13).Text
MiseEnForme

.ListItems(.SelectedItem.Index).Selected = False
For x = 1 To 13
Controls("TextBox" & x) = ""
Next
CommandButton2.Enabled = False
Exit Sub

Else
.ListItems(.SelectedItem.Index).Selected = False
For x = 1 To 13
Controls("TextBox" & x) = ""
Next
CommandButton2.Enabled = False
End If
End If

If .ListItems(.SelectedItem.Index).ListSubItems(13).Text = "P" Then
Numlign = ListView1.SelectedItem.Index + 9
If MsgBox("Confirmer la suppression du Pointage.", vbYesNo, "Suppression du Pointage") = vbYes Then
.ListItems(.SelectedItem.Index).ListSubItems(13).Text = "NP"
Sheets("Data").Range("N" & Numlign) = .ListItems(.SelectedItem.Index).ListSubItems(13).Text
MiseEnForme
.ListItems(.SelectedItem.Index).Selected = False
For x = 1 To 13
Controls("TextBox" & x) = ""
Next
CommandButton2.Enabled = False
Exit Sub
Else
.ListItems(.SelectedItem.Index).Selected = False
For x = 1 To 13
Controls("TextBox" & x) = ""
Next
CommandButton2.Enabled = False
End If
End If
End With

End Sub

Merci a tous a l'avance

Bonne journée
 
Re : Ou Noter prtection Feuille dans ce Code???

Bonjour Vaucluse,

généralement on met Unprotect en début de procédure..................et Protect à la fin ( avant End Sub )
pense également à mettre Protect juste avant Exit sub lorsqu'il y en a
 
Dernière édition:
Re : Ou Noter prtection Feuille dans ce Code???

Bonjour vaucluse, le forum,
Dim x As Byte, Numlign As Long
sheets("data").unprotect password = "0000"
ta macro.....
et à la fin pas à la faim !!!
sheets("data").protect password = "0000"
End sub

Bon lundi
a+
papou
 
Dernière édition:
Re : Ou Noter prtection Feuille dans ce Code???

Bonjour,
Tu as doublé ton code dans le message ou je ne comprends pas !
C'est pas très compliquué, tu dois déprotéger ta feuille avant de la modifier et la reprotéger une fois ces modifs effectuées
Les lignes qui concernent ta feuille
Code:
With Sheets("Data")
    .Unprotect Password = "0000"
    .Range("N" & Numlign) = "NP"
    .Protect Password = "0000"
End With
Sauf qu'on ne sait pas à quoi est destiné MiseEnForme
A+
kjin
 
Dernière édition:
Re : Ou Noter prtection Feuille dans ce Code???

Bonjour à tous,
Code:
If .ListItems(.SelectedItem.Index).ListSubItems(13).[COLOR="blue"][B]T ext [/B][/COLOR]= "NP"

le code n'est pas en double, la première partie teste ="NP" et la seconde teste ="P"
Attention il y a un espace "parasite" dans T ext
dans les deux lignes If ListItems .............;

sinon, je ne vois pas pourquoi la réponse donnée à 08h29 ne pourrais pas fonctionner

bonne journée à tous
 
Re : Ou Noter prtection Feuille dans ce Code???

Re,
Non tu n'a pas doublé ton code, mais plutôt bizarre ton code
Donc sans fichier et donc sans filet
Code:
Private Sub ListView1_DblClick() 'Pointe ou Dépointe les Ecritures
Dim x As Byte, Numlign As Long, Pointage As String
With ListView1
    If MsgBox("Confirmer le Pointage.", vbYesNo, "Pointage") = vbYes Then
        Pointage = .ListItems(.SelectedItem.Index).ListSubItems(13).Text
        Pointage = IIf(Pointage = "NP", "P", "NP")
        Numlign = ListView1.SelectedItem.Index + 9 'N° de la 1 iere Ligne de la Base
        With Sheets("Data")
            .Unprotect password = "0000"
            .Range("N" & Numlign) = Pointage
            MiseEnForme 'faut-il l'inclure ?
            .Protect password = "0000"
        End With
        .ListItems(.SelectedItem.Index).Selected = False
        For x = 1 To 13
            Controls("TextBox" & x) = ""
        Next
        CommandButton2.Enabled = False
    End If
End With

End Sub
A+
kjin
 
Dernière édition:
Re : Ou Noter prtection Feuille dans ce Code???

Bonjour a tous
Merci de vos réponse
Voila ce que j'ai fait avec vos réponse

Private Sub ListView1_DblClick() 'Pointe ou Dépointe les Ecritures

Dim x As Byte, Numlign As Long
With Sheets("Data")
.Unprotect Password:="0000"
With ListView1

If .ListItems(.SelectedItem.Index).ListSubItems(13).Text = "NP" Then '12 N° de la Colonne M


Numlign = ListView1.SelectedItem.Index + 9 'N° de la 1 iere Ligne de la Base

If MsgBox("Confirmer le Pointage.", vbYesNo, "Pointage") = vbYes Then

.ListItems(.SelectedItem.Index).ListSubItems(13).Text = "P"

Sheets("Data").Range("N" & Numlign) = .ListItems(.SelectedItem.Index).ListSubItems(13).Text


MiseEnForme

.ListItems(.SelectedItem.Index).Selected = False
For x = 1 To 13
Controls("TextBox" & x) = ""
Next
CommandButton2.Enabled = False
Sheets("Data").Protect Password:="0000"

Exit Sub

Else
.ListItems(.SelectedItem.Index).Selected = False
For x = 1 To 13
Controls("TextBox" & x) = ""
Next
CommandButton2.Enabled = False
End If
End If

If .ListItems(.SelectedItem.Index).ListSubItems(13).Text = "P" Then
Numlign = ListView1.SelectedItem.Index + 9
If MsgBox("Confirmer la suppression du Pointage.", vbYesNo, "Suppression du Pointage") = vbYes Then
.ListItems(.SelectedItem.Index).ListSubItems(13).Text = "NP"
Sheets("Data").Range("N" & Numlign) = .ListItems(.SelectedItem.Index).ListSubItems(13).Text
MiseEnForme
.ListItems(.SelectedItem.Index).Selected = False
For x = 1 To 13
Controls("TextBox" & x) = ""
Next
CommandButton2.Enabled = False
Sheets("Data").Protect Password:="0000"

Exit Sub
Else
.ListItems(.SelectedItem.Index).Selected = False
For x = 1 To 13
Controls("TextBox" & x) = ""
Next
CommandButton2.Enabled = False
End If
End If
End With
End With
End Sub
[/QUOTE]La procédure "Miseenforme"pour infos
Private Sub MiseEnForme()
Dim x As Long, j As Integer
With ListView1
For x = 1 To .ListItems.Count
If .ListItems(x).ListSubItems(13).Text = UCase("P") Then
.ListItems(x).ForeColor = &HFF0000
For j = 1 To 13
.ListItems(x).ListSubItems(j).ForeColor = &HFF0000
Next
Else
.ListItems(x).ForeColor = &H0&
For j = 1 To 13
.ListItems(x).ListSubItems(j).ForeColor = &H0&
Next
End If
Next
End With
End Sub

Cordialement
et encore merci beaucoup
 
Dernière édition:
Re : Ou Noter prtection Feuille dans ce Code???

Re Christian,
As tu testé le code proposé ?
Vu qu'à priori tu réinitilises les contrôles de manière systématique, il faut le modifié de cet manière
Code:
Private Sub ListView1_DblClick() 'Pointe ou Dépointe les Ecritures
Dim x As Byte, Numlign As Long, Pointage As String
With ListView1
    If MsgBox("Confirmer le Pointage.", vbYesNo, "Pointage") = vbYes Then
        Pointage = .ListItems(.SelectedItem.Index).ListSubItems(13).Text
        Pointage = IIf(Pointage = "NP", "P", "NP")
        .ListItems(.SelectedItem.Index).ListSubItems(13).Text = Pointage
        Numlign = ListView1.SelectedItem.Index + 9 'N° de la 1 iere Ligne de la Base
            With Sheets("Data")
                .Unprotect password = "0000"
                .Range("N" & Numlign) = Pointage
                .Protect password = "0000"
            End With
        MiseEnForme
    End If
    .ListItems(.SelectedItem.Index).Selected = False
End With
For x = 1 To 13
    Controls("TextBox" & x) = ""
Next
CommandButton2.Enabled = False

End Sub
A+
kjin
 
Re : Ou Noter protection Feuille dans ce Code???

Merci kjin, pour ce dernier message

J'ai essayé ton code a la place du mien
c'est Ok

Maintenant , si tu le veux bien,j'aimerais savoir avec le code ci-dessous
s'il est possible de pouvoir attribuer, un Format "# ## 0.00 € pour les Colonnes 6 "F"
et Colonne 12 "L"


Private Sub CommandButton11_Click()
Dim C As Byte, li As Long
'mise à jour listview

If MsgBox("Attention vous allez Dévalidé" & Chr(10) & _
"cette Facture considérée comme Réglée!!!!" & Chr(10) & _
"Voulez-vous continuer????", vbYesNo, "Confirmation") = vbNo Then Exit Sub

TextBox6 = TextBox12
TextBox12 = ""
'TextBox10 = ""
'TextBox11 = ""
TextBox14 = "NP"

With ListView1
li = Mid(.ListItems(.SelectedItem.Index).Key, 2) 'N° ligne de la feuille
If MsgBox("Confirmation de la modification.", vbYesNo, "Confirmation") = vbNo Then Exit Sub

'mise à jour des colonnes de la listview
.ListItems(.SelectedItem.Index).Text = (TextBox1)

For C = 1 To 13 '.ColumnHeaders.Count - 1
.ListItems(.SelectedItem.Index).ListSubItems(C).Text = Controls("TextBox" & C + 1)
Next C
End With
MiseEnForme
'mise à jour de la feuille
With Sheets("Data")
.Unprotect Password:="0000"
For C = 1 To 14
Select Case C
Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14 '11,10,
.Cells(li, C) = (Controls("TextBox" & C)) ' Controls("Lbl" & NumLabel).Caption = Format(Ttl, "# ##0.00 €")
'Controls("Lbl" & NumLabel).Caption = Format(Ttl, "# ##0.00 €")


'Case 1
'If Right(Controls("TextBox" & C), 1) = "%" Or Right(Controls("TextBox" & C), 1) = "€" Then _
' .Cells(li, C) = CDbl(Left(Controls("TextBox" & C), Len(Controls("TextBox" & C)) - 1))

'Case 6 , 4, 14, 17, 20, 23
'.Cells(li, C) = Controls("TextBox" & C)
Case Else
'.Cells(li, C) = Controls("TextBox" & C)
End Select
Next C
.Protect Password:="0000"
End With
CommandButton12.Enabled = True 'False
CommandButton11.Enabled = False
End Sub

Mercci a l'avance
Bonne soirée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
678
Réponses
3
Affichages
924
Réponses
2
Affichages
774
Retour