OVH Cloud OVH Cloud

Agrémenter une cellule de 1 a chaque ouverture

11 réponses
Avatar
Baceri
Salut a tous,
Voila mon pb, comment agrémenter une cellule de 1 a chaque ouverture d'un
document.mais quand celui ci est enregistrer après modif. qu'il ne puisse
plus s'agrementer.
En fait c'est pour faire des commandes de matériel, pour qu'il y ai sur
chaque commande les numéro a la suite.
Mais que je puisse revérifier une commande après sauvegarde sans qu'il
agrémente une autre fois. Je pense qu'il faut le mettre en lecture seule
mais comment le faire en automatique.
Merci

10 réponses

1 2
Avatar
michdenis
Bonjour Bacen,

Copie ce qui suit dans le ThisWorkbook de ton classeur :

et adapte le nom de la feuille et la cellule retenue pour ce travail
'------------------
Private Sub Workbook_Open()

With Worksheets("feuil1")
.Range("A1") = .Range("A1") + 1
End With

End Sub
'------------------


Salutations!


"Baceri" a écrit dans le message de news: 438f5bb9$0$11112$
Salut a tous,
Voila mon pb, comment agrémenter une cellule de 1 a chaque ouverture d'un
document.mais quand celui ci est enregistrer après modif. qu'il ne puisse
plus s'agrementer.
En fait c'est pour faire des commandes de matériel, pour qu'il y ai sur
chaque commande les numéro a la suite.
Mais que je puisse revérifier une commande après sauvegarde sans qu'il
agrémente une autre fois. Je pense qu'il faut le mettre en lecture seule
mais comment le faire en automatique.
Merci
Avatar
JB
Bonjour,

Voilà un exemple de scénario:
Au départ toutes les cellules de la feuille sont déverrouillées.
On verrouille A1 dynamiquement après la saisie.

L'incrémentation du compteur peut être automatisée (dans un onglet
ou un autre classeur)

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = True
If Target.Address = "$A$1" Then
rep = InputBox("êtes vous sûr?(o/n)")
If UCase(rep) = "O" Then
ActiveSheet.Unprotect ("moi")
Target.Locked = True
Target.Interior.ColorIndex = 36
ActiveSheet.Protect Password:="moi", DrawingObjects:=True,
Contents:=True, Scenarios:=True
End If
End If
End Sub

Cordialement JB
Avatar
Baceri
Ne se bloque pas après la sauvegarde, si deux jours après je veux vérifier
une chose et que je le recouvre, il me rajoute 1.
Avatar
michdenis
Si tu ne sauvegardes pas, il n'a pas enregistrer la modification !

Comment arriver à faire comprendre à excel la différence entre le fait que le classeur est ouvert pour y travailler ou seulement
pour fin de vérification ? As-tu des indices dans ta méthode de travail qui permettent à excel de faire la différence ?


Salutations!


"Baceri" a écrit dans le message de news: 438f687b$0$11119$
Ne se bloque pas après la sauvegarde, si deux jours après je veux vérifier
une chose et que je le recouvre, il me rajoute 1.
Avatar
Baceri
Dois je le mettre dans le ThisWorkbook .
Si oui je l'ai fait mais ne m'augmente pas A1 de 1 a l'ouverture
Avatar
JLuc
*Bonjour JB*,
Une question qui n'a rien a voir avec ce fil, enfin peut etre un petit
peu :')
Qu'elle est la differencr entre :
Worksheet_Change()
Worksheet_SelectionChange()
??? :-?
Merci d'avance pour ta reponse
Bonjour,

Voilà un exemple de scénario:
Au départ toutes les cellules de la feuille sont déverrouillées.
On verrouille A1 dynamiquement après la saisie.

L'incrémentation du compteur peut être automatisée (dans un onglet
ou un autre classeur)

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = True
If Target.Address = "$A$1" Then
rep = InputBox("êtes vous sûr?(o/n)")
If UCase(rep) = "O" Then
ActiveSheet.Unprotect ("moi")
Target.Locked = True
Target.Interior.ColorIndex = 36
ActiveSheet.Protect Password:="moi", DrawingObjects:=True,
Contents:=True, Scenarios:=True
End If
End If
End Sub

Cordialement JB



--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS

Avatar
Marie
Bonjour,
Je pense qu'il faudrait transformer le document en modèle, et incrémenter le
numéro seulement si le nom du document est différent de celui du modèle.

Private Sub Workbook_Open()
If ActiveWorkbook.Name <> "monmodèle.xls" Then
Worksheets("feuil1").Range("A1") = Range("A1") + 1
End Sub

"Baceri" a écrit dans le message de news:
438f5bb9$0$11112$
Salut a tous,
Voila mon pb, comment agrémenter une cellule de 1 a chaque ouverture d'un
document.mais quand celui ci est enregistrer après modif. qu'il ne puisse
plus s'agrementer.
En fait c'est pour faire des commandes de matériel, pour qu'il y ai sur
chaque commande les numéro a la suite.
Mais que je puisse revérifier une commande après sauvegarde sans qu'il
agrémente une autre fois. Je pense qu'il faut le mettre en lecture seule
mais comment le faire en automatique.
Merci



Avatar
JB
Bonjour Jluc,

-WorkSheet_Selection_Change se produit à chaque changement de
sélection de cellule (Cliquer sur une cellule)
-WorkSheet_Change se produit lorsque l'on modifie le contenu d'une
cellule (saisie,effacement) ou sa couleur.

WorkSheet_Change() pose qq problèmes. Il réagit non seulement aux
événements extérieurs (saisie par ex) mais également aux modifs de
cellules par programme.
Il faut donc désactiver les évenements pendant leur traitement avec
Application.EnableEventsúlse et les réactiver en fin de traitement
avec Application.EnableEvents=True.
Si on veut être sensible uniquement à la saisie (pas aux effacements,
aux modifs de couleur,,,), il existe
ActiveWorkbook.Worksheets("feuil1").OnEntry = "NomProcédure" qui
permet de déclencher une procédure à chaque fois que le contenu
d'une cellule est modifié.


Cordialement JB
Avatar
JLuc
Merci de toutes ces précisions
JB avait soumis l'idée :
Bonjour Jluc,

-WorkSheet_Selection_Change se produit à chaque changement de
sélection de cellule (Cliquer sur une cellule)
-WorkSheet_Change se produit lorsque l'on modifie le contenu d'une
cellule (saisie,effacement) ou sa couleur.

WorkSheet_Change() pose qq problèmes. Il réagit non seulement aux
événements extérieurs (saisie par ex) mais également aux modifs de
cellules par programme.
Il faut donc désactiver les évenements pendant leur traitement avec
Application.EnableEventsúlse et les réactiver en fin de traitement
avec Application.EnableEvents=True.
Si on veut être sensible uniquement à la saisie (pas aux effacements,
aux modifs de couleur,,,), il existe
ActiveWorkbook.Worksheets("feuil1").OnEntry = "NomProcédure" qui
permet de déclencher une procédure à chaque fois que le contenu
d'une cellule est modifié.


Cordialement JB


Avatar
anonymousA
Bonjour,

m'excuse de m'immiscer, mais WorkSheet_Change ne se produit pas lorsque
l'on modifie la couleur d'une cellule, du moins jusqu'à Excel 2000.

A+


Bonjour Jluc,

-WorkSheet_Selection_Change se produit à chaque changement de
sélection de cellule (Cliquer sur une cellule)
-WorkSheet_Change se produit lorsque l'on modifie le contenu d'une
cellule (saisie,effacement) ou sa couleur.

WorkSheet_Change() pose qq problèmes. Il réagit non seulement aux
événements extérieurs (saisie par ex) mais également aux modifs de
cellules par programme.
Il faut donc désactiver les évenements pendant leur traitement avec
Application.EnableEventsúlse et les réactiver en fin de traitement
avec Application.EnableEvents=True.
Si on veut être sensible uniquement à la saisie (pas aux effacements,
aux modifs de couleur,,,), il existe
ActiveWorkbook.Worksheets("feuil1").OnEntry = "NomProcédure" qui
permet de déclencher une procédure à chaque fois que le contenu
d'une cellule est modifié.


Cordialement JB



1 2