compteur dans une cellule

Le
sleg
Bonsoir,

voila mon probleme, dans une colonne j'ai des nombres et des N de
type abc001 et j'aimerais generer en B1 un system de compteur qui me
donnerais le prochain n abc002 puis lorsque abc002 serait not dans
ma colonne le compteur passerait automatiquement au suivant 003 etc..
second probleme mon compteur abc001 ne commencerais pas forcement a
001 voila mon probleme..

donc si vous avez une solution je suis preneur

merci d'avance.
Vos réponses Page 2 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Filochard
Le #4986631
je vous juste avoir un compteur qui me donne le prochain n° abcXXX
sans tenir compte des nombres à 4 chiffres.


Vous pouvez utiliser une formulle matricielle qui se valide par ctrl+maj+enter :

=1+MAX(SI(ESTTEXTE(plage);1*DROITE(plage;3)))

garnote
Le #4986621
Salut sleg,

Dur à suivre ton affaire !
Cette fois-ci, je suppose que les cellules de la colonne A
sont formatées « Standard » et je suppose que tu veux
incrémenter de 1 les cellules contenant des lettres suivies
de chiffres.Si c'est le cas, essaie ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 And Not IsNumeric(Target) Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub

Serge

"sleg" On 16 oct, 14:21, "MichDenis"
Ceci fonctionne :

Les 3 premiers caractères sont deux que tu désires... mais tu dois
en avoir 3 !

=GAUCHE(INDEX(Plage;LIGNES(Plage));3)&TEXTE(SUBSTITUE(INDEX(Plage;LIGNES(Pl­age));GAUCHE(INDEX(Plage;LIGNES(Plage));3);"")+1;"000")

Attention aux coupures de lignes lors de la copie...
ce n'est qu'une formule.

"sleg"
On 16 oct, 05:17, "MichDenis"




Un petit fichier exemple :http://cjoint.com/?kqfqHFaC7h

La formule aurait du se lire ainsi :
="abc"&TEXTE(SUBSTITUE(INDEX(Plage;LIGNES(Plage));"abc";"")+1;"000")

"sleg"
On 15 oct, 23:15, "MichDenis"
Tu as raison, il manquait un bout de formule :

="abc" &TEXTE(SUBSTITUE( LIGNES(Plage)+1;"abc";"")+1;"000")

"sleg"
On 15 oct, 22:01, "MichDenis"
Admettons que l'on simplifie la tâche :

Tu définis un "NOM" (du menu insertion - nom) ta colonne
de données en utilisant la fonction "Decaler()"

Et comme ta suite débute à 001, tu peux utiliser cette formule
en B1 :
="abc" &TEXTE( LIGNES(Plage)+1;"000")

Plage est le "Nom" de ta colonne que tu as définie.

"sleg"
Bonsoir,

voila mon probleme, dans une colonne j'ai des nombres et des N° de
type abc001 et j'aimerais generer en B1 un system de compteur qui me
donnerais le prochain n° abc002 puis lorsque abc002 serait noté dans
ma colonne le compteur passerait automatiquement au suivant 003 etc..
second probleme mon compteur abc001 ne commencerais pas forcement a
001 voila mon probleme..

donc si vous avez une solution je suis preneur

merci d'avance.


MArche presque bien sauf que le abc est suivi de3 chiffre e dans ce
cas il ne m'affiche que les dixaine et les unite un zero a la place
des centaine une idée ?

Merci de coup de min- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Bon désolé je n'arrive pas a la faire amrcher je verais demain mais
merci de ton oup de main- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Ok je comprends pourquoi. parce que dans ma colonne a je n'ai pas que
des abcxxx j'ai aussi des nombre a 4 chiffres est il possible de le
faire fonctionner dans ces conditions ?- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Voici ce que j'ai en gros dans ma colonne

1231
1232
1233
abc501
abc502
1234
1235
1236
abc502

je vous juste avoir un compteur qui me donne le prochain n° abcXXX
sans tenir compte des nombres à 4 chiffres.

merci de ton aide.




garnote
Le #4986491
Encore un p'tit effort !
Et si la colonne A est formatée « Texte »
et ne contient que des nombres ou
des abc suivis de nombres, il y a ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 And Left(Target, 3) = "abc" Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub

Serge


"garnote"
Salut sleg,

Dur à suivre ton affaire !
Cette fois-ci, je suppose que les cellules de la colonne A
sont formatées « Standard » et je suppose que tu veux
incrémenter de 1 les cellules contenant des lettres suivies
de chiffres.Si c'est le cas, essaie ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 And Not IsNumeric(Target) Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub

Serge

"sleg" On 16 oct, 14:21, "MichDenis"
Ceci fonctionne :

Les 3 premiers caractères sont deux que tu désires... mais tu dois
en avoir 3 !

=GAUCHE(INDEX(Plage;LIGNES(Plage));3)&TEXTE(SUBSTITUE(INDEX(Plage;LIGNES(Pl­age));GAUCHE(INDEX(Plage;LIGNES(Plage));3);"")+1;"000")

Attention aux coupures de lignes lors de la copie...
ce n'est qu'une formule.

"sleg"
On 16 oct, 05:17, "MichDenis"




Un petit fichier exemple :http://cjoint.com/?kqfqHFaC7h

La formule aurait du se lire ainsi :
="abc"&TEXTE(SUBSTITUE(INDEX(Plage;LIGNES(Plage));"abc";"")+1;"000")

"sleg"
On 15 oct, 23:15, "MichDenis"
Tu as raison, il manquait un bout de formule :

="abc" &TEXTE(SUBSTITUE( LIGNES(Plage)+1;"abc";"")+1;"000")

"sleg"
On 15 oct, 22:01, "MichDenis"
Admettons que l'on simplifie la tâche :

Tu définis un "NOM" (du menu insertion - nom) ta colonne
de données en utilisant la fonction "Decaler()"

Et comme ta suite débute à 001, tu peux utiliser cette formule
en B1 :
="abc" &TEXTE( LIGNES(Plage)+1;"000")

Plage est le "Nom" de ta colonne que tu as définie.

"sleg"
Bonsoir,

voila mon probleme, dans une colonne j'ai des nombres et des N° de
type abc001 et j'aimerais generer en B1 un system de compteur qui me
donnerais le prochain n° abc002 puis lorsque abc002 serait noté dans
ma colonne le compteur passerait automatiquement au suivant 003 etc..
second probleme mon compteur abc001 ne commencerais pas forcement a
001 voila mon probleme..

donc si vous avez une solution je suis preneur

merci d'avance.


MArche presque bien sauf que le abc est suivi de3 chiffre e dans ce
cas il ne m'affiche que les dixaine et les unite un zero a la place
des centaine une idée ?

Merci de coup de min- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Bon désolé je n'arrive pas a la faire amrcher je verais demain mais
merci de ton oup de main- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Ok je comprends pourquoi. parce que dans ma colonne a je n'ai pas que
des abcxxx j'ai aussi des nombre a 4 chiffres est il possible de le
faire fonctionner dans ces conditions ?- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Voici ce que j'ai en gros dans ma colonne

1231
1232
1233
abc501
abc502
1234
1235
1236
abc502

je vous juste avoir un compteur qui me donne le prochain n° abcXXX
sans tenir compte des nombres à 4 chiffres.

merci de ton aide.








sleg
Le #4986441
On 16 oct, 14:48, "garnote"
Salut sleg,

Une autre approche qui semble convenir :
Si par exemple, la colonne A contient des cellules formatées texte,
cette macro de feuille incrémente la dernière cellule de la colonne A
de 1 et inscrit le résultat en B1.
Dans ce cas, tu n'es pas obligé de nommer ta plage avec DECALER
et tu n'as pas à te préoccuper du nombre de caractères de tes cellu les.

Clic droit sur l'onglet de ta feuille et clic sur visualiser le code.
Colle alors cette macro dans la feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub

Serge

"sleg" Bonsoir,

voila mon probleme, dans une colonne j'ai des nombres et des N° de
type abc001 et j'aimerais generer en B1 un system de compteur qui me
donnerais le prochain n° abc002 puis lorsque abc002 serait noté dans
ma colonne le compteur passerait automatiquement au suivant 003 etc..
second probleme mon compteur abc001 ne commencerais pas forcement a
001 voila mon probleme..

donc si vous avez une solution je suis preneur

merci d'avance.


merci mais toujours un probleme :
1231
1232
1233
abc501
abc502
1234
1235
1236
abc502

lors de la saisie d'un nouveau n° ABCxxx ça fonctionne impec mais si
je saisi un n° 1237 alors la je recupere ce derniere n° alors que le
compteur ne devrais pas bouger et rester sur le abc503.

merci de votre aide.

garnote
Le #4986401
Salut Sleg,

Alors regarde mes deux suggetions de 09:09 et 09:49
Et au début des macros ajoute :
On Error Resume Next

Serge

"sleg" On 16 oct, 14:48, "garnote"
Salut sleg,

Une autre approche qui semble convenir :
Si par exemple, la colonne A contient des cellules formatées texte,
cette macro de feuille incrémente la dernière cellule de la colonne A
de 1 et inscrit le résultat en B1.
Dans ce cas, tu n'es pas obligé de nommer ta plage avec DECALER
et tu n'as pas à te préoccuper du nombre de caractères de tes cellules.

Clic droit sur l'onglet de ta feuille et clic sur visualiser le code.
Colle alors cette macro dans la feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub

Serge

"sleg" Bonsoir,

voila mon probleme, dans une colonne j'ai des nombres et des N° de
type abc001 et j'aimerais generer en B1 un system de compteur qui me
donnerais le prochain n° abc002 puis lorsque abc002 serait noté dans
ma colonne le compteur passerait automatiquement au suivant 003 etc..
second probleme mon compteur abc001 ne commencerais pas forcement a
001 voila mon probleme..

donc si vous avez une solution je suis preneur

merci d'avance.


merci mais toujours un probleme :
1231
1232
1233
abc501
abc502
1234
1235
1236
abc502

lors de la saisie d'un nouveau n° ABCxxx ça fonctionne impec mais si
je saisi un n° 1237 alors la je recupere ce derniere n° alors que le
compteur ne devrais pas bouger et rester sur le abc503.

merci de votre aide.

garnote
Le #4986371
Cette macro me semble compétente.
Que les cellules de la colonne A soient
en « Standard » ou en « Texte » :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 And Left(Target, 3) = "abc" Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub

Est-ce bien ce que tu veux obtenir ?

Serge

"sleg" On 16 oct, 14:48, "garnote"
Salut sleg,

Une autre approche qui semble convenir :
Si par exemple, la colonne A contient des cellules formatées texte,
cette macro de feuille incrémente la dernière cellule de la colonne A
de 1 et inscrit le résultat en B1.
Dans ce cas, tu n'es pas obligé de nommer ta plage avec DECALER
et tu n'as pas à te préoccuper du nombre de caractères de tes cellules.

Clic droit sur l'onglet de ta feuille et clic sur visualiser le code.
Colle alors cette macro dans la feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub

Serge

"sleg" Bonsoir,

voila mon probleme, dans une colonne j'ai des nombres et des N° de
type abc001 et j'aimerais generer en B1 un system de compteur qui me
donnerais le prochain n° abc002 puis lorsque abc002 serait noté dans
ma colonne le compteur passerait automatiquement au suivant 003 etc..
second probleme mon compteur abc001 ne commencerais pas forcement a
001 voila mon probleme..

donc si vous avez une solution je suis preneur

merci d'avance.


merci mais toujours un probleme :
1231
1232
1233
abc501
abc502
1234
1235
1236
abc502

lors de la saisie d'un nouveau n° ABCxxx ça fonctionne impec mais si
je saisi un n° 1237 alors la je recupere ce derniere n° alors que le
compteur ne devrais pas bouger et rester sur le abc503.

merci de votre aide.

sleg
Le #4986351
On 16 oct, 16:08, "garnote"
Salut Sleg,

Alors regarde mes deux suggetions de 09:09 et 09:49
Et au début des macros ajoute :
On Error Resume Next

Serge

"sleg" On 16 oct, 14:48, "garnote"




Salut sleg,

Une autre approche qui semble convenir :
Si par exemple, la colonne A contient des cellules formatées texte,
cette macro de feuille incrémente la dernière cellule de la colonne A
de 1 et inscrit le résultat en B1.
Dans ce cas, tu n'es pas obligé de nommer ta plage avec DECALER
et tu n'as pas à te préoccuper du nombre de caractères de tes cel lules.

Clic droit sur l'onglet de ta feuille et clic sur visualiser le code.
Colle alors cette macro dans la feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub

Serge

"sleg" Bonsoir,

voila mon probleme, dans une colonne j'ai des nombres et des N° de
type abc001 et j'aimerais generer en B1 un system de compteur qui me
donnerais le prochain n° abc002 puis lorsque abc002 serait noté dans
ma colonne le compteur passerait automatiquement au suivant 003 etc..
second probleme mon compteur abc001 ne commencerais pas forcement a
001 voila mon probleme..

donc si vous avez une solution je suis preneur

merci d'avance.


merci mais toujours un probleme :
1231
1232
1233
abc501
abc502
1234
1235
1236
abc502

lors de la saisie d'un nouveau n° ABCxxx ça fonctionne impec mais si
je saisi un n° 1237 alors la je recupere ce derniere n° alors que le
compteur ne devrais pas bouger et rester sur le abc503.

merci de votre aide.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Ok désolé je n'avais pas vu tous tes messages donc cette function :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 And Not
IsNumeric(Target) Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub


fonction a merveille merci beaucoup Serge.


isabelle
Le #4986341
bonjour sleg,

celle ci donné par Filochard fonctionne très bien,

="abc"&1+MAX(SI(ESTTEXTE(Plage);1*DROITE(Plage;3)))
validé avec Crtl+Maj+Enter

isabelle

On 16 oct, 14:48, "garnote"
Salut sleg,

Une autre approche qui semble convenir :
Si par exemple, la colonne A contient des cellules formatées texte,
cette macro de feuille incrémente la dernière cellule de la colonne A
de 1 et inscrit le résultat en B1.
Dans ce cas, tu n'es pas obligé de nommer ta plage avec DECALER
et tu n'as pas à te préoccuper du nombre de caractères de tes cellules.

Clic droit sur l'onglet de ta feuille et clic sur visualiser le code.
Colle alors cette macro dans la feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 Then
Set ici = [A65536].End(xlUp)
ici.AutoFill Destination:=Range(ici, ici.Offset(1, 0))
ici.Offset(1, 0).Cut [b1]
End If
Application.EnableEvents = True
End Sub

Serge

"sleg" Bonsoir,

voila mon probleme, dans une colonne j'ai des nombres et des N° de
type abc001 et j'aimerais generer en B1 un system de compteur qui me
donnerais le prochain n° abc002 puis lorsque abc002 serait noté dans
ma colonne le compteur passerait automatiquement au suivant 003 etc..
second probleme mon compteur abc001 ne commencerais pas forcement a
001 voila mon probleme..

donc si vous avez une solution je suis preneur

merci d'avance.



merci mais toujours un probleme :
1231
1232
1233
abc501
abc502
1234
1235
1236
abc502

lors de la saisie d'un nouveau n° ABCxxx ça fonctionne impec mais si
je saisi un n° 1237 alors la je recupere ce derniere n° alors que le
compteur ne devrais pas bouger et rester sur le abc503.

merci de votre aide.




Publicité
Poster une réponse
Anonyme