Numérotation automatique.

Petronie

XLDnaute Occasionnel
Bonsoir les Foromeurs, bonsoir les Foromeuses.
J'ai un petit soucis.
J'ai créé un fichier pour pouvoir faire un classement de dossiers aux archives.
Je dois entrer des données dans un USF comme, par exemple, le nom du client , son prénom, le nom de son épouse, et le numéro de dossier du client.
Quand on entre le n° de dossier, automatiquement apparraissent dans l'USF, le n° d'archivage et le n° de bac dans lequel on va ranger le dossier.
Pour le n° d'archivage, pas de problème, je lui dit simplement de prendre le dernier n° attribué et d'ajouter "1". Par contre pour le n° de bac, ça pose problème.
Un bac doit contenir 100 dossiers. Donc du premier dossier à archiver au 100ème, ils vont dans le bac "1". Puis du 101ème dossier au 200ème, ils vont dans le bac 2, et ainsi de suite.
Je n'avais pas de problème jusqu'à ce que j'arrive au bac 10. Là, il ne met plus de n° et ça devient "0".
Je lui donnais comme instruction: ( en sachant que "J5" à une formule du type "=NB(A5:A19700)" , pour qu'il sache que quand il y a X dossiers d'encodés qu'il faut mettre tel n°)

Private Sub NBac_Change()

End Sub

Private Sub NClient1_AfterUpdate()

Range("g65535").End(xlUp).Select
NArch = ActiveCell.Offset(0, -6).Value + 1 'NArch est égal au n° d'archivage
' Mettre un n° au bac
If NArch >= "0" And NArch <= "100" Then
NBac.Value = "1"
End If
If NArch > "100" And NArch <= "200" Then
NBac.Value = "2"
End If
If NArch > "200" And NArch <= "300" Then
NBac.Value = "3"
End If
If NArch > "300" And NArch <= "400" Then
NBac.Value = "4"
End If
If NArch > "400" And NArch <= "500" Then
NBac.Value = "5"
End If
If Range("J5").Value > "500" And Range("J5").Value <= "600" Then
NBac.Value = "6"
End If
If Range("J5") > "600" And Range("J5") <= "700" Then
NBac.Value = "7"
End If
If Range("J5") > "700" And Range("J5") <= "800" Then
NBac.Value = "8"
End If
If Range("J5") > "800" And Range("J5") <= "900" Then
NBac.Value = "9"
End If
If Range("J5") > "900" And Range("J5") <= "1000" Then
NBac.Value = "10"
End If
If Range("J5") > "1000" And Range("J5") <= "1100" Then
NBac.Value = "11"
End If
If Range("J5") > "1100" And Range("J5") <= "1200" Then
NBac.Value = "12"
End If


Et ainsi de suite pour pouvoir faire 100 ou 200 bacs, je ne sais pas de trop. là, je m'étais arrêté à 50 bacs parce que ça posait problème avec le "6" et le "60". Quand il fallait le bac "6", il mettait "60" donc du coup, j'ai été jusque 50 mais maintenant, je me rends compte que de toute façon ça ne va pas non plus après "9".
Au tout début, j'avais une formule bien définie (une sorte de division) mais au fur at à mesur, il diminuait le nombre de dossiers par bac donc ça n'allait pas non plus.
C'était:
Private Sub NClient1_AfterUpdate()

NBac = 1 + Int((Range("J5").Value - 1) / 100)
Range("g65535").End(xlUp).Select
NArch = ActiveCell.Offset(0, -6).Value + 1
End Sub


Est-ce quelqu'un sait me dépanner? Nous nous en servons au travail et du coup, on est bloqué.
Merci d'avance à ceux qui peuvent m'aider.
Bonne soirée.
 

JYLL

Nous a quitté
Repose en paix
Re : Numérotation automatique.

Bonsoir Pétronie et tout le forum,

La solution de Gruick était presque bonne, il suffit de mettre:



nbac=Int((cells(5,10)+99)/)100

ou

nbac=Int((range("J5")+99)/)100


et là c'est OK.
[
Bon test.
 

Petronie

XLDnaute Occasionnel
Re : Numérotation automatique.

Ho la la, merci à tous!

Par contre, Gruick, je ne comprends pas grand chose à ta dernière formule (en faite, je n'y comprends absolument rien ! :p ....

Mais c'est pas grave. Parce que si avec tout ce que j'ai là, je n'arrive à résoudre mon soucis, c'est que vraiment, j'ai un truc qui tourne pas rond (quoi que, je me demande souvent si réellement ça tourne rond chez moi ...)

En tous les cas, encore merci, je vais essayer tout ceci dès demain au bureau. Je note toutes vos solutions et je vous dis dès que possible qui est le grand gagnant!
Encore merci et bonne soirée.
 

Statistiques des forums

Discussions
312 163
Messages
2 085 859
Membres
103 005
dernier inscrit
gilles.hery