Numerotation automatique de facture

Résolu
Barnabetg Messages postés 5 Statut Membre -  
Lynou66 Messages postés 9 Statut Membre -
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

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Voir la Méthode Protect
    0
  2. Barnabetg Messages postés 5 Statut Membre
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  3. Barnabetg Messages postés 5 Statut Membre
     
    ça marche, merci Franck !
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      mais de rien.
      Merci à toi pour ton retour.
      a+
      0
  4. Lynou66 Messages postés 9 Statut Membre
     
    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