Numerotation automatique de facture
Résolu
Barnabetg
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Lynou66 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Lynou66 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
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.
A voir également:
- Numerotation automatique de facture
- Logiciel de sauvegarde automatique gratuit - Guide
- Réponse automatique thunderbird - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Facture aliexpress ✓ - Forum Consommation & Internet
- Logiciel devis facture - Télécharger - Comptabilité & Facturation
4 réponses
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
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
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 :
Ou alors, plus simplement :
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
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
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