Compteur automatique

geraldjourdan

XLDnaute Nouveau
Je souhaite créer un document nommé ordre de fabrication, dans une cellule fusionnée (que j'ai nommée OF) je souhaite rentrer une valeur qui s'incrémente de 1 à chaque ouverture cette valeur est validé par l'enregistrement, si pas d'enregistrement le compteur la valeur reste la même à la prochaine ouverture.
Pour cela je posséde une macro avec les termes suivants:

Private Sub Worbook_Open()
If ActiveWorbook.Path = ""Then
[numOF] = [numOF] + 1
ActiveWorbook.Saved = True
ActiveWorkbook.SaveCopyAs(Application.TemplatesPath & "OF.xlt")
End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
chemXlt = Application.TemplatesPath & "OF.Xlt"
If ActiveWorkbook.Path = ""Then
Set wbk.Active = Worbooks.Open(chemXlt)
With wbk.ActiveSheet
.Range("NumOF") = .Range("NumOF") - 1
End With
wbk.Close True
End If
End Sub

Voila lorsque je rentre tout cela dans la fenêtre macro et que je demande l’exécution cela ne fonctionne pas pourriez vous SVP m'aider à corriger l'erreur que je ne trouve pas.

Merci
 

Pièces jointes

  • OF.xls
    38 KB · Affichages: 53
  • OF.xls
    38 KB · Affichages: 74
  • OF.xls
    38 KB · Affichages: 68

Papou-net

XLDnaute Barbatruc
Re : Compteur automatique

Bonsoir geraldjourdan, et bienvenue sur XLD,

Ci-joint copie de ton fichier avec incrémentation du numéro à la prochaine ouverture si la sauvegarde a été effectuée. Pour parvenir à ce résultat, j'ai affecté un tag à la cellule AA1: si le fichier est sauvegardé AA1 passe à VRAI, sinon sa valeur est FAUX. Cette colonne AA peut être masquée.

NB: les procédures Workbook_Open et Worbook_BeforeClose ne sont pas actives dans un module de code général. Elles doivent être situées dans le module ThisWorkbook.

Cordialement.
 

Pièces jointes

  • Copie de OF.xls
    42 KB · Affichages: 59

geraldjourdan

XLDnaute Nouveau
Re : Compteur automatique

Bonjour Papou-net

Déjà merci pour ton petit mot de bienvenu et puis encore un plus gros merci pour avoir aussi rapidement répondu à ma demande et qui plus est avec brio puisque le fichier attachés fonctionne à merveille.
En outre puis je me permettre de te demander comment affecter un tag car j'ai d'autre documents sur lesquels je souhaite mettre un compteur automatique.
Merci encore, bonne journée A bientôt
 

Papou-net

XLDnaute Barbatruc
Re : Compteur automatique

Bonjour geraldjourdan,

Tu n'as rien d'autre à faire pour créer le tag qu'à référencer la cellule de ton choix dans les procédures Workbook_BeforeSave et Workbook_Open. Dans mon exemple précédent, j'avais choisi AA1 mais tu peux, bien entendu, choisir une toute autre adresse valide. Par contre, si tu as plusieurs feuilles dans tes documents, n'oublies pas de mentionner le nom de la feuille qui comportera le tag, par ex:

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Cancel Then Feuil1.Range("AA1") = False Else Feuil1.Range("AA1") = True
End Sub

Private Sub Workbook_Open()
If Feuil1.Range("AA1") Then Feuil1.Range("OF") = Feuil1.Range("OF") + 1
End Sub
En te souhaitant également une bonne journée.

Cordialement.
 

geraldjourdan

XLDnaute Nouveau
Re : Compteur automatique

Salut,

Tout d'abord désolé pour ma réponse si tardive, je souhaité te remercier, ton aide m'as était d'un grand secours et m'as permis d'appliquer cela à d'autre documents.
J'ai investi dans le fameux bouquin "VBA pour les nuls" j'espère ainsi mieux comprendre les coulisses de ce langage et bien entendu cela accompagné par ds cours particuliers, ainsi un jours ce sera moi qui viendrait à l'aide de quelqu'un.

Bonne journée

Bien cordialement et toute ma reconnaissance

A +
 

Discussions similaires

Réponses
7
Affichages
433
Réponses
1
Affichages
205

Membres actuellement en ligne

Statistiques des forums

Discussions
312 636
Messages
2 090 379
Membres
104 515
dernier inscrit
lnc-glr