Excel - problème de mode texte et nombre
Bibliothèque Kandinsky
-
LexMarc -
LexMarc -
Bonjour,
Je fais appel à vos logiques lumineuses pour nous aider à trouver une chose toute simple qui nous simplifierait vraiment le travail et la vie !
Je vous explique le problème :
Nous référençons des négatifs photos qui partiront prochainement à la numérisation sur un fichier excel comme ceci :
M505084_3505DUCAbP00101
M505084_3505DUCAbP00102
M505084_3505DUCAbP00103
M505084_3505DUCAbP00104
M505084_3505DUCAbP00201
M505084_3505DUCAbP00202
M505084_3505DUCAbP00203
M505084_3505DUCAbP00204
M505084_3505DUCAbP00301
M505084_3505DUCAbP00302
M505084_3505DUCAbP00303
M505084_3505DUCAbP00304
M505084_3505DUCAbP00401
M505084_3505DUCAbP00402
M505084_3505DUCAbP00403
M505084_3505DUCAbP00404
M505084_3505DUCAbP00501
M505084_3505DUCAbP00502
M505084_3505DUCAbP00503
M505084_3505DUCAbP00504
...
M505084_3505DUCAbP01001
M505084_3505DUCAbP01002
...
M505084_3505DUCAbP10001
Comme vous le voyez nous ne dépassons et ne dépasserons jamais 4. Nous nous demandions donc s'il existait une formule, une fonction, marco ect qui compterait directement en base 4.
Chaque référence finit par P00000
le cinquième zéro est donc toujours 1 2 3 ou 4
le quatrième zéro est toujours 0
les trois premiers chiffres devraient rester en base 10 car ils sont dans l'ordre croissant comme suit : 001 002 003 004 005 006... 010 011 012 ... 020 ...100...101...
Sinon rien ne change !
Pouvez vous nous aider svp ?
Bon courage.
L'équipe de la photothèque de la BK.
Je fais appel à vos logiques lumineuses pour nous aider à trouver une chose toute simple qui nous simplifierait vraiment le travail et la vie !
Je vous explique le problème :
Nous référençons des négatifs photos qui partiront prochainement à la numérisation sur un fichier excel comme ceci :
M505084_3505DUCAbP00101
M505084_3505DUCAbP00102
M505084_3505DUCAbP00103
M505084_3505DUCAbP00104
M505084_3505DUCAbP00201
M505084_3505DUCAbP00202
M505084_3505DUCAbP00203
M505084_3505DUCAbP00204
M505084_3505DUCAbP00301
M505084_3505DUCAbP00302
M505084_3505DUCAbP00303
M505084_3505DUCAbP00304
M505084_3505DUCAbP00401
M505084_3505DUCAbP00402
M505084_3505DUCAbP00403
M505084_3505DUCAbP00404
M505084_3505DUCAbP00501
M505084_3505DUCAbP00502
M505084_3505DUCAbP00503
M505084_3505DUCAbP00504
...
M505084_3505DUCAbP01001
M505084_3505DUCAbP01002
...
M505084_3505DUCAbP10001
Comme vous le voyez nous ne dépassons et ne dépasserons jamais 4. Nous nous demandions donc s'il existait une formule, une fonction, marco ect qui compterait directement en base 4.
Chaque référence finit par P00000
le cinquième zéro est donc toujours 1 2 3 ou 4
le quatrième zéro est toujours 0
les trois premiers chiffres devraient rester en base 10 car ils sont dans l'ordre croissant comme suit : 001 002 003 004 005 006... 010 011 012 ... 020 ...100...101...
Sinon rien ne change !
Pouvez vous nous aider svp ?
Bon courage.
L'équipe de la photothèque de la BK.
A voir également:
- Excel - problème de mode texte et nombre
- Word et excel gratuit - Guide
- Nombre de jours entre deux dates excel - Guide
- Mode avion - Guide
- Liste déroulante excel - Guide
- Excel cellule couleur si condition texte - Guide
1 réponse
Bonjour
Un essai avec une macro a placer dans un bouton
En A1 Titre NOM en B1 Titre Index
En A2 le premier Nom
En A3 le 2ème NOm ...
Lancer la macro
Sub Indexer()
Application.ScreenUpdating = False
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=""M505084_3505DUCAbP0""&IF(CEILING(COUNTA(R2C1:RC[-1])/4,1)<10,""0""&CEILING(COUNTA(R2C1:RC[-1])/4,1),CEILING(COUNTA(R2C1:RC[-1])/4,1))&""01"""
Range("B3").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]="""","""",""M505084_3505DUCAbP0""&IF(CEILING(COUNTA(R2C1:RC[-1])/4,1)<10,""0""&CEILING(COUNTA(R2C1:RC[-1])/4,1),CEILING(COUNTA(R2C1:RC[-1])/4,1))&IF(RIGHT(R[-1]C,2)*1<4,""0""&RIGHT(R[-1]C,2)+1,""01""))"
Range("B3").Select
Selection.AutoFill Destination:=Range("B3:B1000")
' cette plage B3:B1000 peut être "allongée"... B3000 par exemple
Columns("B:B").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Application.ScreenUpdating = True
End Sub
En espérant que cette solution "à la louche" puisse vous dépanner
Bien cordialement
LM
Un essai avec une macro a placer dans un bouton
En A1 Titre NOM en B1 Titre Index
En A2 le premier Nom
En A3 le 2ème NOm ...
Lancer la macro
Sub Indexer()
Application.ScreenUpdating = False
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=""M505084_3505DUCAbP0""&IF(CEILING(COUNTA(R2C1:RC[-1])/4,1)<10,""0""&CEILING(COUNTA(R2C1:RC[-1])/4,1),CEILING(COUNTA(R2C1:RC[-1])/4,1))&""01"""
Range("B3").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]="""","""",""M505084_3505DUCAbP0""&IF(CEILING(COUNTA(R2C1:RC[-1])/4,1)<10,""0""&CEILING(COUNTA(R2C1:RC[-1])/4,1),CEILING(COUNTA(R2C1:RC[-1])/4,1))&IF(RIGHT(R[-1]C,2)*1<4,""0""&RIGHT(R[-1]C,2)+1,""01""))"
Range("B3").Select
Selection.AutoFill Destination:=Range("B3:B1000")
' cette plage B3:B1000 peut être "allongée"... B3000 par exemple
Columns("B:B").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Application.ScreenUpdating = True
End Sub
En espérant que cette solution "à la louche" puisse vous dépanner
Bien cordialement
LM
Post un nouveux topic
sur celui ci qui n'avait aucune réponse
tu "pollues" ;)
et il ne sera pas vu !
De plus il devrait, il me semble se trouver dans le "salon" Programmation
voir la http://www.commentcamarche.net/ccmguide/ccmcharte ecriture.php3
Je suis désolé de ne pas bien comprendre ton intervention.
Une personne demande de l'aide et je lui en propose une de façon à résoudre (en partie) ses problèmes.
Où se situe la pollution ?
Le fait de répondre à une question restée sans réponse est considéré comme polluant ?
L'utilisation d'Excel me semble être bien de le Bureautique
et le code proposé n'est pas du VBA bien épuré (à la louche)
donc le terme de programmation me semble un peu surfait.
J'avoue ne pas bien comprendre cette intervention...
Bonne journée cependant
Bien cordialement
LM
.........Faut qu' j'aille couché !
-1 pour moi
Désoler mon message n'est pas a prendre en compte
;(
Me suis trompé de fen^etre, un vieux sims qui remontait dans ma liste intervention
et j'ai fait le copier coller sur ta réponse