Probleme incrémentation

ironangel

XLDnaute Occasionnel
Bonjour,

Je reviens vers vous avec cette fois ci un autre probleme.
Je m'explique, j'ai un fichier dans lequel je souhaite creer des codes uniques que je vais pouvoir par la suite associer à d'autres classeurs.
En gros, j'ai des listes déroulantes: 3 qui me permettent de creer mon code, en fonction de mon choix dans la liste déroulante, la macro se charge d'associer une lettr à celui ci
Par exemple, si je choisi haire care, la macro associe automatiquement HC dans le code créé.
La ou j'ai un probleme, c'est l'incrémentation, en effet si je choisi les mêmes cases dans les listes déroulantes, je ne souhaite pas avoir le même code, d'ou une incrémentation.Mais mon code bug.

Si qqun voulait bien jeter un oeil à ma macro, ça m'aiderait beaucoup:
ci -joint un fichier plus explicite
 

Pièces jointes

  • codification générale travail(test).zip
    30.8 KB · Affichages: 43
C

Compte Supprimé 979

Guest
Re : Probleme incrémentation

Bonjour Ironangel,

Un code que j'utilise personnellement
Code:
Sub Code()
  Dim Crit As String, MaForm As String, LigSel As Long
  Dim NbCode As Long, NewCode As Long
  ' Récupérer la ligne active
  LigSel = ActiveCell.Row
  ' Créer le critère de recherche à partir des colonnes K,L et M
  Crit = Range("K" & LigSel) & Range("L" & LigSel) & Range("M" & LigSel)
  ' Créer la formule : NB.SI()
  MaForm = "COUNTIF(J:J,""" & Crit & "*"")"
  ' Evaluer cette formule pour savoir combien de code existe déjà
  NbCode = Application.Evaluate(MaForm)
  ' Nouveau code = nombre existant + 1
  NewCode = NbCode + 1
  ' Inscrire le nouveau code
  Range("J" & LigSel).Value = Crit & Format(NewCode, "000")
End Sub

Modifié pour ton fichier

PS : avec ce code tu n'es pas obligé de noter l'incrément dans la colonne "I"
On pourrait même faire un code qui te dispenserait des colonne K, L et M
et du Ctrl+q

A+
 
Dernière modification par un modérateur:

ironangel

XLDnaute Occasionnel
Re : Probleme incrémentation

Salut, merci pour ton aide.
Je ne m'y connais pas assez donc je vais te poser quelques questions.
Dans ton code, les abréviations ne sont pas définies comme dans ma macro:
ex: Hair Care = HC
Comment cela va etre codé alors?
Ou dois-je juste ajouter ton code en 1er et garder tous mes "call"

Merci d'avance
amicalement
seb
 
C

Compte Supprimé 979

Guest
Re : Probleme incrémentation

Bonsoir Ironangel,

Désolé de t'avoir laissé comme ça tout seul face à tes problèmes :eek:
J'étais pas mal occupé au boulot ...

Tu trouveras ci-joint ton fichier avec le code complètement modifié
mais avec les explications de rigueurs

J'ai transféré tes liste de choix dans la feuille "Listes"
On peut créer une Donnée -> Validation si la liste est nommée ;)

A+
 

Pièces jointes

  • Ironangel_CodificationGénéraleTravail V1.xls
    69 KB · Affichages: 85

ironangel

XLDnaute Occasionnel
Re : Probleme incrémentation

Salut le forum, merci a toi pour ton aide,
dsl de ma réponse tardive mais j'étais en vacances et je reviens tout juste.
Je regardais donc ta macro demain plus en détail mais au 1er abords, ça m'a l'air tres bien.

Je te tiens au courant et merci pour ton aide
Amicalement
 

ironangel

XLDnaute Occasionnel
Re : Probleme incrémentation

Hello, encore merci,
je viens de regarder plus précisement ta macro, cependant j'ai un petit soucis, lorsque j'essaye d'insérer la macro "ouvfic" qui normalement m'ouvre une boite de dialogue, cela n'est plus possible car je n'ai pas défini les "activecell.offset".

Pourrais tu me dire ou dois-je les définir, ou le cas échéant, une autre solution est peut être envisageable pour réaliser la même chose

Merci à toi
Amicalement
 
C

Compte Supprimé 979

Guest
Re : Probleme incrémentation

Bonjour Ironangel,

Dans l'état de la chose :D ton code comme il est fait, pour moi,
ne sert à rien à part effectivement ouvrir une boite de dialogue

Code:
Sub OuvFic()
  coded = ActiveCell.Offset(0, 1).Value
  nom = ActiveCell.Offset(0, -8) & " " & ActiveCell.Offset(0, -7) & "  " & ActiveCell.Offset(0, -6) & " " & ActiveCell.Offset(0, -5) & " " & ActiveCell.Offset(0, -1).Value
  Application.Dialogs(xlDialogOpen).Show "E:\fiche pré-nom type"
  Range("L2").Value = coded
  Range("C4").Value = nom
End Sub
Dans ton fichier d'origine, Je ne sais pas pourquoi :
Code:
  Range("L2").Value = coded
vas inscrire le code dans la cellule L2 :confused:
et
Code:
Range("C4").Value = nom
vas inscrire l'ensemble des colonnes A à H en C4

Donc dans mon code tu peux rajouter à la fin de la "Sub" juste avant "End Sub", l'instruction :
Code:
Application.Dialogs(xlDialogOpen).Show "E:\fiche pré-nom type"
Pour les reste il faut voir à quoi cela te sert ;)

A+
 

ironangel

XLDnaute Occasionnel
Re : Probleme incrémentation

Hello merci de ton aide :)
En ce qui concerne les "L2" "C4" range, cela concerne la macro ouvfic, en fait quand tu actives la macro, tu crées ton code + tu ouvres une boite de dialogue contenant plusieurs fichiers type, quand tu en séléctionnes 1, la macro copie le numéro de code + concatene certaines cellules pour former un nom.
Voili voilou, mais c'est bon j'ai réussi à adapter la macro ouvfic sur la tienne, merci encore a toi ;-)

a bientot
 

Discussions similaires

Réponses
16
Affichages
485
Réponses
4
Affichages
251

Statistiques des forums

Discussions
312 273
Messages
2 086 693
Membres
103 372
dernier inscrit
BibiCh