Numerotation automatique de facture [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
lundi 28 janvier 2013
Statut
Membre
Dernière intervention
14 février 2014
-
Lynou66
Messages postés
8
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
5 septembre 2013
-
J'ai une macro pour faire la numérotation automatique des factures à chaque impression de la facture. La cellule qui affiche le numéro de facture n'est pas protégé. Pour éviter une manipulation des numéros par mes collaborateurs avec qui je désire partager le fichier, je souhaite protéger cette cellule et la feuille. Pour ce faire il me faut ajouter à ma macro une commande pour déprotéger la feuille avant l'incrémentation du numéro et ensuite protéger la feuille après l'impression. Aidez-moi.

7 réponses

Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
2252
Bonjour,

Voir la Méthode Protect
Messages postés
4
Date d'inscription
lundi 28 janvier 2013
Statut
Membre
Dernière intervention
14 février 2014

Merci Franck
J'ai essayé la solution mais ça ne marche pas

Regarde et dis moi ce qui ne marche pas dans ces codes:
J'ai verouillé la cellule Z3 et ensuite protéger la feuille
A l'exécution de la macro d'impression, je veux que la feuille soit déprotéger avec un mot de passe, puis que la macro de numéro automatique soit exécuter à l'impression du formulaire et qu'à la fin de l'impression, la feuille soit à nouveau protéger avant une nouvelle saisie

----------------
Sub Impression()
' Impression Macro
' Impression du formulaire
Response = MsgBox("Voulez-vous imprimer le formulaire ", vbYesNo + vbInformation, "Print")
If Response = vbYes Then
If ActiveSheets.ProtectionType <> wdNoProtection Then
ActiveSheets.Unprotect Password:=strAdiel1
End If
Dim num As Double
Range("Z3").Select
num = Range("Z3").Value
num = num + 1
Range("Z3").Value = num
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
If ActiveSheets.ProtectionType = wdNoProtection Then
ActiveSheets.Protect Password:=strAdiel1
End If
Else
Range("F6").Select
End If
Range("AQ62").Select
End Sub
pijaku
Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
2252
Bonjour,

Alors,
1- le test If ActiveSheets.ProtectionType <> wdNoProtection ne fonctionne pas et est inutile...
Donc les virer du code.
2- ActiveSheets n'existe pas, virer le "s"
3- strAdiel1 est une variable? elle est incrémentée ou? Si non, si strAdiel1 est ton mot de passe, il faut le mettre entres guillemets.
Donc ton code devient :
Sub Impression() 
Dim Response As Integer 
Dim num As Double 
' Impression Macro 
' Impression du formulaire 
Response = MsgBox("Voulez-vous imprimer le formulaire ", vbYesNo + vbInformation, "Print") 
If Response = vbYes Then 
    ActiveSheet.Unprotect Password:="strAdiel1" 
    Range("Z3").Select 
    num = Range("Z3").Value 
    num = num + 1 
    Range("Z3").Value = num 
    ActiveSheet.PrintOut Copies:=1, Collate:=True 
    ActiveSheet.Protect Password:="strAdiel1" 
Else 
    Range("F6").Select 
End If 
Range("AQ62").Select 
End Sub

Ou alors, plus simplement :
Sub Impression2() 
Dim Response As Integer 
Dim num As Double 
' Impression Macro 
' Impression du formulaire 
Response = MsgBox("Voulez-vous imprimer le formulaire ", vbYesNo + vbInformation, "Print") 
If Response = vbYes Then 
    With ActiveSheet 
        .Unprotect Password:="strAdiel1" 
        .Range("Z3").Value = .Range("Z3").Value + 1 
        .PrintOut Copies:=1, Collate:=True 
        .Protect Password:="strAdiel1" 
    End With 
Else 
    Range("F6").Select 
End If 
Range("AQ62").Select 
End Sub
Messages postés
4
Date d'inscription
lundi 28 janvier 2013
Statut
Membre
Dernière intervention
14 février 2014

ça marche, merci Franck !
pijaku
Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
2252
mais de rien.
Merci à toi pour ton retour.
a+
Messages postés
8
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
5 septembre 2013

Ouf.... c'est du code....

J'ai essayé, mais je n'y arrive pas, ça me donne seulement un paquet d'erreurs et de caractères incompréhensibles. On y perd vite patience lorsqu'on n'est pas connaissante en la matière...

Je souhaite juste que la facture ci-jointe affiche une numérotation automatique d'une facture à l'autre....

merci d'avance. Lyne

Ici: http://cjoint.com/?3HClyFrRB9k