N° automatique

M

Marc

Guest
Bonjour à tous et toutes,

Quelqu'un pourrait me dire si il y est possible de creer un N° automatique sous Excel ( comme dans access).

Merci et bravo pour ce site
 
R

Rai

Guest
Bonsoir,

Ca ne sera pas 'comme sous Access', parce-qu'Excel n'est pas Access ;o))

Mais tu peux explorer différentes solutions.

La 1ere :
Démarrer ta numérotation en A2 (par exemple), et à partir de la cellule A3 intégrer la formule suivante :
=A2+1 puis la recopier vers le bas.

Tu peux aussi utiliser une formule du genre (sur toutes tes lignes) :
=1233+LIGNE()
Ce qui te fera un numéro auto qui sera 1233 + le N° de ligne où tu te trouves.

La 2nde :
Utiliser le VBA et l'évennement CHANGE de ta feuille,
mais là, c'est un peu plus long.
Avant de me lancer la dedans, une question :
En as-tu besoin (ou les formules suffisent-elles) ?
Si oui, comment est structurée ta feuille ?

A bientôt

Rai
 
M

Marc

Guest
Merci Rai,

Je ne peux pas utiliser la solution formule car je fais un tri sur une differente colonne et dans ce cas la valeur de la cellule de départ est erronée.
La feuille est structurée de façon suivante
N° de joueur Nom Prenom Age
??
N° Auto

C'est dans le but d'un travail pour mon épreuve integrée le sujet est Gestion d'un club de Foot.

Merci Bcq. pour ta réponse si rapide....

PS: Je sais qu'access n'est pas excel mdrrrrr :)
 
R

Rai

Guest
Bonjour,

Ci-Dessous une solution, parmi d'autres, en VBA.
La procédure est à insérer dans le code de la feuille concernée.
On considère que la saisie du nom de joueur est obligatoire, c'est elle qui déclenche la numAuto.
La numAuto commence à 1, et se réinitialise en cas d'effacement. Elle attribue un n° unique dans la liste des joeurs.
L'effacement des N° n'est pas géré (pas de protection)

Private Sub Worksheet_Change(ByVal Target As Range)
Col$ = "B"
Set ColAuto = Range(Col & ":" & Col)
'Lettre de la 1er colonne obligatoire
'Ici désigne la colonne 'Nom Joueur'
ColNum$ = "A"
Set NouvNum = Range(ColNum & Target.Row)
'Lettre de la colonne qui contient
'la numérotation automatique
If Not Intersect(Target, ColAuto) Is Nothing And NouvNum = "" Then
If Target.Cells.Count = 1 Then
NouvNum.Value = WorksheetFunction.Max(Range(ColNum & ":" & ColNum)) + 1
End If
End If
End Sub

Bonne journée

Rai
 

Discussions similaires

Réponses
10
Affichages
412

Statistiques des forums

Discussions
312 545
Messages
2 089 486
Membres
104 182
dernier inscrit
matiasi