OVH Cloud OVH Cloud

Trouver le maximun

10 réponses
Avatar
Pounet95
Salut à toutes et tous,
Excel2000 ( XP et W2000)
Il y a bien longtemps que je vous avais sollicité !!

En colonne A, j'ai une liste de codes alphanumériques que je commence par
ordonner (manuellement ou VBA )
Afin de compléter cette liste, je cherche à localiser pour un code donné, sa
plus grande valeur afin de l'incrémenter.

Exemple du contenu de ma colonne A
DEP95
DEP95001
DEP95001CITROEN
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001CITROEN00001
DEP95001CITROEN00002
DEP95001CITROEN00007
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001PEUGEOT
DEP95001PEUGEOT01009
DEP95001PEUGEOT01011
DEP95001PEUGEOT01021
DEP95001PEUGEOT01131
DEP95001PEUGEOT01132
DEP95001PEUGEOT02001
DEP95001PEUGEOT02002
DEP95001PEUGEOT02007
DEP95001PEUGEOT02009
DEP95001PEUGEOT03011
DEP95001PEUGEOT04021
DEP95001PEUGEOT04031
DEP95001PEUGEOT07032

A partir de la chaine DEP9500CITROEN comment puis-je localiser le code max
( 00032 )
afin de pouvoir créer ensuite le suivant, donc DEP9500CITROEN00033.?

Toute solution VBA me convient .....
Merci d'avance

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

10 réponses

Avatar
ST
Pour commencer, je pense que tu devrais découper ta cellule en plusieurs
cellules.

Par exemple, dans la première colonne, tu as les 15 premiers caractères de
ta colonne de référence. Tu peux utiliser la fonction : =GAUCHE(A:A;15)
=> tu obtiens donc le code donné.
Pour la valeur, tu créé une seconde colonne qui extrait uniquement la
valeur. Tu utilises la fonction suivante : =STXT(A:A;16;100)

Tu as donc un tableau sous la forme :
colonne A colonne B
colonne C
DEP95001CITROEN00009 DEP95001CITROEN 00009

Commence déjà par essayer cette solution. On verra pour la suite

ST

"Pounet95" a écrit dans le message de
news:%
Salut à toutes et tous,
Excel2000 ( XP et W2000)
Il y a bien longtemps que je vous avais sollicité !!

En colonne A, j'ai une liste de codes alphanumériques que je commence par
ordonner (manuellement ou VBA )
Afin de compléter cette liste, je cherche à localiser pour un code donné,
sa

plus grande valeur afin de l'incrémenter.

Exemple du contenu de ma colonne A
DEP95
DEP95001
DEP95001CITROEN
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001CITROEN00001
DEP95001CITROEN00002
DEP95001CITROEN00007
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001PEUGEOT
DEP95001PEUGEOT01009
DEP95001PEUGEOT01011
DEP95001PEUGEOT01021
DEP95001PEUGEOT01131
DEP95001PEUGEOT01132
DEP95001PEUGEOT02001
DEP95001PEUGEOT02002
DEP95001PEUGEOT02007
DEP95001PEUGEOT02009
DEP95001PEUGEOT03011
DEP95001PEUGEOT04021
DEP95001PEUGEOT04031
DEP95001PEUGEOT07032

A partir de la chaine DEP9500CITROEN comment puis-je localiser le code max
( 00032 )
afin de pouvoir créer ensuite le suivant, donc DEP9500CITROEN00033.?

Toute solution VBA me convient .....
Merci d'avance

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)



Avatar
michdenis
Bonjour Pounet95,

Tu peux utiliser quelque chose ressemblant à ceci :

A1:A30 = ta plage -> Nomme ta plage de cellules
E1= la cellule contenant le critère : DEP95001CITROEN

=MAX(SI((GAUCHE(A1:A30;NBCAR(A1:A30)-5)á)+(ESTNUM((DROITE(A1:A30;4)*1)))=2;(DROITE(A1:A30;4)*1)))


Salutations!


"Pounet95" a écrit dans le message de news: %
Salut à toutes et tous,
Excel2000 ( XP et W2000)
Il y a bien longtemps que je vous avais sollicité !!

En colonne A, j'ai une liste de codes alphanumériques que je commence par
ordonner (manuellement ou VBA )
Afin de compléter cette liste, je cherche à localiser pour un code donné, sa
plus grande valeur afin de l'incrémenter.

Exemple du contenu de ma colonne A
DEP95
DEP95001
DEP95001CITROEN
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001CITROEN00001
DEP95001CITROEN00002
DEP95001CITROEN00007
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001PEUGEOT
DEP95001PEUGEOT01009
DEP95001PEUGEOT01011
DEP95001PEUGEOT01021
DEP95001PEUGEOT01131
DEP95001PEUGEOT01132
DEP95001PEUGEOT02001
DEP95001PEUGEOT02002
DEP95001PEUGEOT02007
DEP95001PEUGEOT02009
DEP95001PEUGEOT03011
DEP95001PEUGEOT04021
DEP95001PEUGEOT04031
DEP95001PEUGEOT07032

A partir de la chaine DEP9500CITROEN comment puis-je localiser le code max
( 00032 )
afin de pouvoir créer ensuite le suivant, donc DEP9500CITROEN00033.?

Toute solution VBA me convient .....
Merci d'avance

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
Avatar
michdenis
Évidemment, la formule requiert une validation Matricielle : Maj + ctrl + enter



Tu peux utiliser quelque chose ressemblant à ceci :

A1:A30 = ta plage -> Nomme ta plage de cellules
E1= la cellule contenant le critère : DEP95001CITROEN

=MAX(SI((GAUCHE(A1:A30;NBCAR(A1:A30)-5)á)+(ESTNUM((DROITE(A1:A30;4)*1)))=2;(DROITE(A1:A30;4)*1)))


Salutations!


"Pounet95" a écrit dans le message de news: %
Salut à toutes et tous,
Excel2000 ( XP et W2000)
Il y a bien longtemps que je vous avais sollicité !!

En colonne A, j'ai une liste de codes alphanumériques que je commence par
ordonner (manuellement ou VBA )
Afin de compléter cette liste, je cherche à localiser pour un code donné, sa
plus grande valeur afin de l'incrémenter.

Exemple du contenu de ma colonne A
DEP95
DEP95001
DEP95001CITROEN
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001CITROEN00001
DEP95001CITROEN00002
DEP95001CITROEN00007
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001PEUGEOT
DEP95001PEUGEOT01009
DEP95001PEUGEOT01011
DEP95001PEUGEOT01021
DEP95001PEUGEOT01131
DEP95001PEUGEOT01132
DEP95001PEUGEOT02001
DEP95001PEUGEOT02002
DEP95001PEUGEOT02007
DEP95001PEUGEOT02009
DEP95001PEUGEOT03011
DEP95001PEUGEOT04021
DEP95001PEUGEOT04031
DEP95001PEUGEOT07032

A partir de la chaine DEP9500CITROEN comment puis-je localiser le code max
( 00032 )
afin de pouvoir créer ensuite le suivant, donc DEP9500CITROEN00033.?

Toute solution VBA me convient .....
Merci d'avance

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
Avatar
Pounet95
Merci de ta proposition. Mais ce n'est pas ce que je veux faire.
Ce que je désire, en VBA :
sélectionner la colonne A,
chercher si le code DEP95001CITROEN existe
s'il existe trouver l'occurence DEP95001CITROENnnnnn dans laquelle nnnnn
est la valeur max
dans ce cas, j'ajoute à la liste DEP95001CITROENxxxxx où xxxx=nnnnn+1
sinon je créé DEP95001CITROEN00001

Je sais trouver DEP95001CITROEN dans la liste (
RECHERCHEV("DEP95001CITROEN";A:A;1;FAUX)
Ensuite éventuellement je lis séquentiellement les codes jusqu'à ce que
STXT(<cellule active>;1;NBCAR(<mon code>) soit différent de ce que je
cherche en ayant pris soin auparavant de mémoriser la dernière valeur qui me
convient.
Je sais écrire ça en VBA mais mon problème est plutôt dans l'optimisation
car le fichier des codes à ajouter doit contenir quelques 12000 lignes,
celui de référence contenant l'existant doit en avoir autant ! Je crains
donc d'avoir des macros qui durent un temps fou.

A moins qu'une fonction Excel à placer dans une cellule que j'analyserais
puisse faire l'affaire mias là je sèche lamentablement. ;:(((((
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"ST" a écrit dans le message de news:
dg41vn$
Pour commencer, je pense que tu devrais découper ta cellule en plusieurs
cellules.

Par exemple, dans la première colonne, tu as les 15 premiers caractères de
ta colonne de référence. Tu peux utiliser la fonction : =GAUCHE(A:A;15)
=> tu obtiens donc le code donné.
Pour la valeur, tu créé une seconde colonne qui extrait uniquement la
valeur. Tu utilises la fonction suivante : =STXT(A:A;16;100)

Tu as donc un tableau sous la forme :
colonne A colonne B
colonne C
DEP95001CITROEN00009 DEP95001CITROEN 00009

Commence déjà par essayer cette solution. On verra pour la suite

ST

"Pounet95" a écrit dans le message de
news:%
Salut à toutes et tous,
Excel2000 ( XP et W2000)
Il y a bien longtemps que je vous avais sollicité !!

En colonne A, j'ai une liste de codes alphanumériques que je commence par
ordonner (manuellement ou VBA )
Afin de compléter cette liste, je cherche à localiser pour un code donné,
sa

plus grande valeur afin de l'incrémenter.

Exemple du contenu de ma colonne A
DEP95
DEP95001
DEP95001CITROEN
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001CITROEN00001
DEP95001CITROEN00002
DEP95001CITROEN00007
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001PEUGEOT
DEP95001PEUGEOT01009
DEP95001PEUGEOT01011
DEP95001PEUGEOT01021
DEP95001PEUGEOT01131
DEP95001PEUGEOT01132
DEP95001PEUGEOT02001
DEP95001PEUGEOT02002
DEP95001PEUGEOT02007
DEP95001PEUGEOT02009
DEP95001PEUGEOT03011
DEP95001PEUGEOT04021
DEP95001PEUGEOT04031
DEP95001PEUGEOT07032

A partir de la chaine DEP9500CITROEN comment puis-je localiser le code
max
( 00032 )
afin de pouvoir créer ensuite le suivant, donc DEP9500CITROEN00033.?

Toute solution VBA me convient .....
Merci d'avance

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)







Avatar
Michel Gaboly
Bonsoir Pounet,

Une autre solution, en ayant copié tes données en A1:A30 ; la chaine à
tester est alors en A3.


=MAX(SI(ESTERREUR(CNUM(SUBSTITUE(A1:A30;A$3;"")));"";CNUM(SUBSTITUE(A1:A30;A$3;""))))

A valider en matricielle.

Merci de ta proposition. Mais ce n'est pas ce que je veux faire.
Ce que je désire, en VBA :
sélectionner la colonne A,
chercher si le code DEP95001CITROEN existe
s'il existe trouver l'occurence DEP95001CITROENnnnnn dans laquelle
nnnnn est la valeur max
dans ce cas, j'ajoute à la liste DEP95001CITROENxxxxx où xxxx=nnnnn+1
sinon je créé DEP95001CITROEN00001

Je sais trouver DEP95001CITROEN dans la liste (
RECHERCHEV("DEP95001CITROEN";A:A;1;FAUX)
Ensuite éventuellement je lis séquentiellement les codes jusqu'à ce que
STXT(<cellule active>;1;NBCAR(<mon code>) soit différent de ce que je
cherche en ayant pris soin auparavant de mémoriser la dernière valeur
qui me convient.
Je sais écrire ça en VBA mais mon problème est plutôt dans
l'optimisation car le fichier des codes à ajouter doit contenir quelques
12000 lignes, celui de référence contenant l'existant doit en avoir
autant ! Je crains donc d'avoir des macros qui durent un temps fou.

A moins qu'une fonction Excel à placer dans une cellule que
j'analyserais puisse faire l'affaire mias là je sèche lamentablement.
;:(((((



--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
AV
A partir de la chaine DEP9500CITROEN comment puis-je localiser le code
max ( 00032 ) afin de pouvoir créer ensuite le suivant,
donc DEP9500CITROEN00033.?


Matricielle :
=chaineCherchée&MAX(SI(ESTNUM((SUBSTITUE(plage;chaineCherchée;0)*1));(SUBSTITUE(
plage;chaineCherchée;0)*1);""))+1

AV

Avatar
Â+
Salut,

Supposons que DEP95 se trouve en A1.

La formule matricielle : {=MAX(CNUM(SUBSTITUE(A4:A16;A$3;"")))}
avec un format de cellule : 0000
te renverra 0032

Â+




Salut à toutes et tous,
Excel2000 ( XP et W2000)
Il y a bien longtemps que je vous avais sollicité !!

En colonne A, j'ai une liste de codes alphanumériques que je commence par
ordonner (manuellement ou VBA )
Afin de compléter cette liste, je cherche à localiser pour un code donné, sa
plus grande valeur afin de l'incrémenter.

Exemple du contenu de ma colonne A
DEP95
DEP95001
DEP95001CITROEN
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001CITROEN00001
DEP95001CITROEN00002
DEP95001CITROEN00007
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001PEUGEOT
DEP95001PEUGEOT01009
DEP95001PEUGEOT01011
DEP95001PEUGEOT01021
DEP95001PEUGEOT01131
DEP95001PEUGEOT01132
DEP95001PEUGEOT02001
DEP95001PEUGEOT02002
DEP95001PEUGEOT02007
DEP95001PEUGEOT02009
DEP95001PEUGEOT03011
DEP95001PEUGEOT04021
DEP95001PEUGEOT04031
DEP95001PEUGEOT07032

A partir de la chaine DEP9500CITROEN comment puis-je localiser le code max
( 00032 )
afin de pouvoir créer ensuite le suivant, donc DEP9500CITROEN00033.?

Toute solution VBA me convient .....
Merci d'avance

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)




Avatar
Michel Gaboly
Bonsoir,

Cela ne marche qu'à moitié : tu utilises la plage A4:A16 ce qui implique
de connaître au préalable l'emplacement de tous les "DEP95001CITROENXXXX".

Sans cette limitation, en utilisant toute la plage (ici A1:A30), cette
formule renvoie #VALEUR! car SUBSTITUE() renvoie un résultat non
numérique pour une partie des cellules.

=MAX(SI(ESTERREUR(CNUM(SUBSTITUE(A1:A30;A$3;"")));"";CNUM(SUBSTITUE(A1:A30;A$3;""))))


en matricielle également est + longue mais fonctionne quelle que soit la
chaine recherchée.

Salut,

Supposons que DEP95 se trouve en A1.

La formule matricielle : {=MAX(CNUM(SUBSTITUE(A4:A16;A$3;"")))}
avec un format de cellule : 0000
te renverra 0032

Â+





Salut à toutes et tous,
Excel2000 ( XP et W2000)
Il y a bien longtemps que je vous avais sollicité !!

En colonne A, j'ai une liste de codes alphanumériques que je commence par
ordonner (manuellement ou VBA )
Afin de compléter cette liste, je cherche à localiser pour un code donné, sa
plus grande valeur afin de l'incrémenter.

Exemple du contenu de ma colonne A
DEP95
DEP95001
DEP95001CITROEN
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001CITROEN00001
DEP95001CITROEN00002
DEP95001CITROEN00007
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001PEUGEOT
DEP95001PEUGEOT01009
DEP95001PEUGEOT01011
DEP95001PEUGEOT01021
DEP95001PEUGEOT01131
DEP95001PEUGEOT01132
DEP95001PEUGEOT02001
DEP95001PEUGEOT02002
DEP95001PEUGEOT02007
DEP95001PEUGEOT02009
DEP95001PEUGEOT03011
DEP95001PEUGEOT04021
DEP95001PEUGEOT04031
DEP95001PEUGEOT07032

A partir de la chaine DEP9500CITROEN comment puis-je localiser le code max
( 00032 )
afin de pouvoir créer ensuite le suivant, donc DEP9500CITROEN00033.?

Toute solution VBA me convient .....
Merci d'avance

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)






--
Cordialement,

Michel Gaboly
www.gaboly.com


Avatar
Daniel.M
Bonsoir,

Les formules sont relativement optimisées par rapport à VBA mais ta description
laisse entrevoir la possibilité d'y aller beaucoup plus rapidement.
En effet, une fois la premier "DEP95001CITROEN" trouvé, tu lis séquentiellement
les autres ce qui indique que ta base est triée (comme dans tes données
fournies). Auquel cas, fais une recherche dichotomique avec un texte
'légèrement' supérieur à "DEP95001CITROEN" mais inexistant dans ta base, la
recherche dichotomique ascendante te retournera le dernier "DEP95001CITROEN" ou
un autre s'il n'y en a pas. Rajouter +1 devient alors plus facile.


Function TrouverDernierTxt(Plage As Range, LeTexte As String) As Variant
Dim aRes As Variant

aRes = Application.Match(LeTexte & "z", Plage, 1) ' rech dich ascendante
If Not IsError(aRes) Then
If Left(Application.Index(Plage, aRes), Len(LeTexte)) <> LeTexte Then
TrouverDernierTxt = CVErr(xlErrNA)
Else
TrouverDernierTxt = aRes
End If
End If
End Function

Sub EssaiTNSPT()

Dim UnePlage As Range
Dim UnTexte As String
Dim res As Variant

Set UnePlage = Range("A1:A30")
UnTexte = Range("B1").Text

res = TrouverDernierTxt(UnePlage, UnTexte)

If IsError(res) Then
MsgBox "Pas Trouvé"
Else
MsgBox UnTexte & _
Format(Application.Substitute(Application.Index( _
UnePlage, res), UnTexte, "") + 1, "00000")
End If
End Sub

Il faut rajouter la gestion d'erreur bien sûr.

Salutations,

Daniel M.

"Pounet95" wrote in message
news:
Merci de ta proposition. Mais ce n'est pas ce que je veux faire.
Ce que je désire, en VBA :
sélectionner la colonne A,
chercher si le code DEP95001CITROEN existe
s'il existe trouver l'occurence DEP95001CITROENnnnnn dans laquelle nnnnn
est la valeur max
dans ce cas, j'ajoute à la liste DEP95001CITROENxxxxx où xxxx=nnnnn+1
sinon je créé DEP95001CITROEN00001

Je sais trouver DEP95001CITROEN dans la liste (
RECHERCHEV("DEP95001CITROEN";A:A;1;FAUX)
Ensuite éventuellement je lis séquentiellement les codes jusqu'à ce que
STXT(<cellule active>;1;NBCAR(<mon code>) soit différent de ce que je
cherche en ayant pris soin auparavant de mémoriser la dernière valeur qui me
convient.
Je sais écrire ça en VBA mais mon problème est plutôt dans l'optimisation
car le fichier des codes à ajouter doit contenir quelques 12000 lignes,
celui de référence contenant l'existant doit en avoir autant ! Je crains
donc d'avoir des macros qui durent un temps fou.

A moins qu'une fonction Excel à placer dans une cellule que j'analyserais
puisse faire l'affaire mias là je sèche lamentablement. ;:(((((
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"ST" a écrit dans le message de news:
dg41vn$
Pour commencer, je pense que tu devrais découper ta cellule en plusieurs
cellules.

Par exemple, dans la première colonne, tu as les 15 premiers caractères de
ta colonne de référence. Tu peux utiliser la fonction : =GAUCHE(A:A;15)
=> tu obtiens donc le code donné.
Pour la valeur, tu créé une seconde colonne qui extrait uniquement la
valeur. Tu utilises la fonction suivante : =STXT(A:A;16;100)

Tu as donc un tableau sous la forme :
colonne A colonne B
colonne C
DEP95001CITROEN00009 DEP95001CITROEN 00009

Commence déjà par essayer cette solution. On verra pour la suite

ST

"Pounet95" a écrit dans le message de
news:%
Salut à toutes et tous,
Excel2000 ( XP et W2000)
Il y a bien longtemps que je vous avais sollicité !!

En colonne A, j'ai une liste de codes alphanumériques que je commence par
ordonner (manuellement ou VBA )
Afin de compléter cette liste, je cherche à localiser pour un code donné,
sa

plus grande valeur afin de l'incrémenter.

Exemple du contenu de ma colonne A
DEP95
DEP95001
DEP95001CITROEN
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001CITROEN00001
DEP95001CITROEN00002
DEP95001CITROEN00007
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001PEUGEOT
DEP95001PEUGEOT01009
DEP95001PEUGEOT01011
DEP95001PEUGEOT01021
DEP95001PEUGEOT01131
DEP95001PEUGEOT01132
DEP95001PEUGEOT02001
DEP95001PEUGEOT02002
DEP95001PEUGEOT02007
DEP95001PEUGEOT02009
DEP95001PEUGEOT03011
DEP95001PEUGEOT04021
DEP95001PEUGEOT04031
DEP95001PEUGEOT07032

A partir de la chaine DEP9500CITROEN comment puis-je localiser le code
max
( 00032 )
afin de pouvoir créer ensuite le suivant, donc DEP9500CITROEN00033.?

Toute solution VBA me convient .....
Merci d'avance

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)










Avatar
Pounet95
Bonjour à tous,
Je prends bonne note de vos propositions et vais tenter d'adapter voire
remplacer la solution que j'avais trouvée et qui consistait en l'utilisation
d'un filtre élaboré à partir du critère DEP95001CITROEN????? qui me ramène
dans la zone d'extraction 0 ou plusieurs valeurs.
Il me suffit alors de me positionner sur la dernière ligne de cette zone (
RANGE(cel65536).END(xlup).SELECT) et en fonction du numéro de la ligne :
soit de créer le premier élément 00001
soit d'incrémenter celui trouvé ( VAL(MID$(chaine,dep,nb) )
C'est long car le filtre est recalculé mais ça fonctionne. En panachant avec
vos propositions, il devrait y avoir matière à optimiser.
Merci encore et bonne journée à tous

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"ST" a écrit dans le message de news:
dg41vn$
Pour commencer, je pense que tu devrais découper ta cellule en plusieurs
cellules.

Par exemple, dans la première colonne, tu as les 15 premiers caractères de
ta colonne de référence. Tu peux utiliser la fonction : =GAUCHE(A:A;15)
=> tu obtiens donc le code donné.
Pour la valeur, tu créé une seconde colonne qui extrait uniquement la
valeur. Tu utilises la fonction suivante : =STXT(A:A;16;100)

Tu as donc un tableau sous la forme :
colonne A colonne B
colonne C
DEP95001CITROEN00009 DEP95001CITROEN 00009

Commence déjà par essayer cette solution. On verra pour la suite

ST

"Pounet95" a écrit dans le message de
news:%
Salut à toutes et tous,
Excel2000 ( XP et W2000)
Il y a bien longtemps que je vous avais sollicité !!

En colonne A, j'ai une liste de codes alphanumériques que je commence par
ordonner (manuellement ou VBA )
Afin de compléter cette liste, je cherche à localiser pour un code donné,
sa

plus grande valeur afin de l'incrémenter.

Exemple du contenu de ma colonne A
DEP95
DEP95001
DEP95001CITROEN
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001CITROEN00001
DEP95001CITROEN00002
DEP95001CITROEN00007
DEP95001CITROEN00009
DEP95001CITROEN00011
DEP95001CITROEN00021
DEP95001CITROEN00031
DEP95001CITROEN00032
DEP95001PEUGEOT
DEP95001PEUGEOT01009
DEP95001PEUGEOT01011
DEP95001PEUGEOT01021
DEP95001PEUGEOT01131
DEP95001PEUGEOT01132
DEP95001PEUGEOT02001
DEP95001PEUGEOT02002
DEP95001PEUGEOT02007
DEP95001PEUGEOT02009
DEP95001PEUGEOT03011
DEP95001PEUGEOT04021
DEP95001PEUGEOT04031
DEP95001PEUGEOT07032

A partir de la chaine DEP9500CITROEN comment puis-je localiser le code
max
( 00032 )
afin de pouvoir créer ensuite le suivant, donc DEP9500CITROEN00033.?

Toute solution VBA me convient .....
Merci d'avance

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)