numero de fiche unique

naj

XLDnaute Junior
Bonjour!:)

Je crée une fiche sur un tableau excel, et je souhaiterais pouvoir generer un numero de fiche unique a chaque fois que j'ouvre ce document.
Sur word , j'avais cela:

Private Sub Codage()
If Left(Tables(1).Cell(2, 2).Range.Text, 9) = "ATTENTION" Then
Tables(1).Cell(2, 2).Range.Text = Format(Year(Now), "0#") & Format(Month(Now), "0#") _
& Format(Day(Now), "0#") & Format(Hour(Now), "0#") & Format(Minute(Now), "0#")
End If
End Sub



Mais je n'arrive pas à l'adapter a Excel.
est ce que quelqu'un pourrait m'aider?.. j'en ai marre de stagner!

merci!
 

naj

XLDnaute Junior
Re : numero de fiche unique

haha désolé

je joins ma fiche excel dans laquelle je veux insérer un code.

et je vous joins aussi ma fiche word ou ca marche a merveille... pour que vous compreniez ce que je voudrais que ca donne...

Si c'est pas une date c'est pas grave. Le but c'est que plusieurs personnes puissent créer des fiches en meme temps.Donc il ne faut pas que le meme numero soit genere pour deux fiches differentes..

suis je claire? ^^
 

Pièces jointes

  • fiche recla.xls
    23.5 KB · Affichages: 65
  • fiche recla.xls
    23.5 KB · Affichages: 83
  • fiche recla.xls
    23.5 KB · Affichages: 75
  • ANNEXE2_doc.zip
    19.5 KB · Affichages: 42

Orodreth

XLDnaute Impliqué
Re : numero de fiche unique

Ah ok, tu veux du multi-user :(

C'est pas trop mon truc ça.

Normallement, Excel refuse le multiusing, et les ouvertures suivantes sont prises en lecture seule.

Après, si j'ai bien compris ton problème, tu veux incrémenter un numéro à l'ouverture du classeur ? ou mettre une date ?

à mettre dans le code de thisworkbook

Code:
Private sub thisworkbook_open()
with sheets("Feuil1")
     .range("B3").value = date
end with
end sub

ou encore

Private sub thisworkbook_open()
with sheets("Feuil1")
     .range("B3").value = .range("B3").value + 1
end with
end sub

Après, il faudrait faire un test pour savoir si le fichier est en lecture seule ou non, histoire de pas créer d'erreur pour les macros.

A part ça, je vois pas, mais ce test là, je ne sais pas le faire.

J'espère que ça te convient.

Cordialement,
Thomas
 

naj

XLDnaute Junior
Re : numero de fiche unique

je souhaite avoir un numero unique qui se cree a chaque ouverture du fichier.

dans mon precedent document, ce numero etait composé de l'annee , du mois, du jour, de l'heure. c'est pour ca que je parlait de date.

Par contre, j'ai coller ton code dans "thisworkbook" mais rien ne se passe apres.
Je l'ai mis dedans en faisant "alt+F11" apres j'ai enregistré et fermé.
j'ai rouvert en activant les macros....

c'est bien comme ca qu'il faut faire?
je suis tres novice!^^

merci thomas de t'etre penché dessus
 

Orodreth

XLDnaute Impliqué
Re : numero de fiche unique

Rebonjour.

Oula, l'erreur à pas faire :(

désolé, correction de mon code:

Code:
Private sub workbook_open()
with sheets("Feuil1")
     .range("B3").value = date
end with
end sub

ou encore

Private sub workbook_open()
with sheets("Feuil1")
     .range("B3").value = .range("B3").value + 1
end with
end sub

Est-ce que ça marche mieux ? (pardon :( )

Cordialement,
Thomas
 

naj

XLDnaute Junior
Re : numero de fiche unique

je t'excuses :p lol

alors alors..
oui ca marche mais, pour avoir un numero different je dois toujours ouvrir le dossier precedent et pas un qui serait modele. je m'explique:

- j'ouvre ma fiche qui s'appelle "fiche recla"=> numero de reclamation = 1
- je l'enregistre sous le nom "fiche1" par exemple
- donc ma "fiche1" a le numero de reclamation 1 ; et "fiche recla" n'est pas modifié
- le gestionnaire suivant voulant creer une nouvelle fiche va ouvrir "fiche recla" qui sert de modele a chacun... mais la il se retrouverai avec le numero de recla 1 encore. Il est obligé d'ouvrir "fiche1" pour avoir le numero 2 et faire les modification pour l'enregistrer sous un autre nom comme "fiche2"

mais c'est problematique... il faudrait avoir un nouveau numero a chaque fois qu'on ouvre le meme fichier...
 

naj

XLDnaute Junior
Re : numero de fiche unique

de la meme facon que tu fais apparaitre la date, peut on faire apparaitre, l'heure et les minutes commen un code? genre: 200717081401 : 14/08/2007 à 14h01
je demande, je sais pas si c'est possible. c'est ce qui avait ete fait sur word.

Mais un numero qui de type +1 comme tu as fait, c'est meme mieux! car tout le monde aura un +1 et donc pas le meme numero.. là ils sont obligé de pas travailler en meme temps pour l'heure...
 

Orodreth

XLDnaute Impliqué
Re : numero de fiche unique

Re.

Ah ok, je vois le truc.

Bon, ce que tu peux faire, c'est mettre ton fichier dans un dossier.
Ensuite, dans ce dossier, tu crées un sous-dossier dans lequel tu enregistres tes fiches.

Et pour retrouver le bon nombre, tu comptes le nombre de fichiers .xls dans ton dossier.

Voici un code qui devrait t'aider (à adapter):

Code:
Dim nbClasseur as integer
nbClasseur = 0
Dim leChemin as string
leChemin = activeworkbook.path & "\"
Dim NomClasseur as string
NomClasseur = Dir(leChemin & "[COLOR="Red"]LeNomDeTonSousDossier[/COLOR]\" & "*.xls")
Do While NomClasseur <> ""
    nbClasseur = nbClasseur + 1
    NomClasseur = Dir
Loop
msgbox nbClasseur

A placer dans ton code d'ouverture (workbook_open)
Ce qui est en rouge est ce que tu dois adapter.

Il faut aussi que tu vérifies le nombre à la sortie de la boucle (d'où le msgbox), si le nombre qu'il te donne est égal au nombre de classeur dans le sous-dossier, tu dois ajouter 1 après.
Sinon, tu as ton numéro de fiche.

Teste, et tiens moi au courant.

Pour ce qui est du numéro au format de date, je sais le faire jusqu'au jour. Heure, minute, et seconde, je ne sais pas les gérer comme ça

Thomas
 

naj

XLDnaute Junior
Re : numero de fiche unique

j'ai reussi avec a je crois:

Private Sub workbook_open()
With Sheets("Feuil1")
.Range("B3").Value = Format(Year(Now), "0#") & Format(Month(Now), "0#") _
& Format(Day(Now), "0#") & Format(Hour(Now), "0#") & Format(Minute(Now), "0#")
End With
End Sub


je continu de tester...
 

Orodreth

XLDnaute Impliqué
Re : numero de fiche unique

Euh, il est pas crée là le dossier en question.

De plus, avec mon code, ça implique que ce fameux dossier soit un sous-dossier de l'endroit où est ton classeur modèle :rolleyes:

Après, il y a également des moyens de créer automatiquement l'enregistrement :)
 

naj

XLDnaute Junior
Re : numero de fiche unique

j'ai fait ca:

Private Sub workbook_open()
Dim nbClasseur As Integer
nbClasseur = 0
Dim leChemin As String
leChemin = ActiveWorkbook.Path & "\"
Dim NomClasseur As String
NomClasseur = Dir(leChemin & "sousdossierrecla\" & "*.xls")
Do While NomClasseur <> ""
nbClasseur = nbClasseur + 1
NomClasseur = Dir

Loop
MsgBox nbClasseur

With Sheets("Feuil1")
.Range("B3").Value = nbClasseur + 1
End With

End Sub


ca m'a l'air pas mal... maintenant faut que j'arrive a ce que ca s'enregistre automatiquement.. sinon je sens que les gens vont faire n'importe quoi!^^
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia