Numerotation automatique de facture

Résolu/Fermé
Barnabetg Messages postés 4 Date d'inscription lundi 28 janvier 2013 Statut Membre Dernière intervention 30 janvier 2013 - 29 janv. 2013 à 09:53
Lynou66 Messages postés 8 Date d'inscription mercredi 28 août 2013 Statut Membre Dernière intervention 5 septembre 2013 - 28 août 2013 à 11:28
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.

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
29 janv. 2013 à 10:04
Bonjour,

Voir la Méthode Protect
0
Barnabetg Messages postés 4 Date d'inscription lundi 28 janvier 2013 Statut Membre Dernière intervention 30 janvier 2013
29 janv. 2013 à 14:13
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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
Modifié par pijaku le 30/01/2013 à 11:08
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
0
Barnabetg Messages postés 4 Date d'inscription lundi 28 janvier 2013 Statut Membre Dernière intervention 30 janvier 2013
30 janv. 2013 à 14:48
ça marche, merci Franck !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
30 janv. 2013 à 14:49
mais de rien.
Merci à toi pour ton retour.
a+
0
Lynou66 Messages postés 8 Date d'inscription mercredi 28 août 2013 Statut Membre Dernière intervention 5 septembre 2013
28 août 2013 à 11:28
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: https://www.cjoint.com/?3HClyFrRB9k
0