Copier une cellule à droite moins 1 caractère

chris1

XLDnaute Nouveau
Bonsoir tout le monde
Comme hier j'avais déjà posé une question (résolue par ChTi160), je n'avais pas osé poser la seconde dans la foulée aussi ce soir I do.
Donc hier un collègue m'a demandé comment faire pour copier le contenu d'une cellule (à droite) mais sans le dernier caractère.
Par exemple en C1 il y a 50R il voudrait avoir en D1 50 ce qui donnerait
50R --- 50
12L --- 12
24Z --- 24
etc....
Je lui ai bricolé un truc de ce genre, soit en D1 =GAUCHE(C1;2) et ça lui convient.
Mais et voilà le hic, c'est qu'en regardant de plus prêt son tableau, je me suis rendu compte que par moments (très rares) mais ils y sont, ce n'est pas 2 chiffres qui précèdent la lettre mais 3 et alors là bien sûr ma formule ne vaut plus rien.
La solution serait donc non pas d'extraire les 2 premiers caractères mais plutôt de copier cette cellule en supprimant le dernier caractère qui lui est toujours une lettre unique.
Ca a l'air pourtant tout bête à faire mais je dois avouer que je n'y arrive pas. :(
D'avance merci.
Chris
 

ChTi160

XLDnaute Barbatruc
Salut Chris1
bonsoir le Forum

encore moi Lol
en pièce jointe une possibilité en Vba
bonne Soirée [file name=Transform.zip size=6876]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Transform.zip[/file]
 

Pièces jointes

  • Transform.zip
    6.7 KB · Affichages: 51
  • Transform.zip
    6.7 KB · Affichages: 59

chris1

XLDnaute Nouveau
Salut ChTi160

OK j'achète aussi mais là j'ai plus de mal à comprendre (je parle du code bien sûr). :lol:

Merci

Au fait ChTi puisque tu es là, je voulais te demander une chose. J'aurai une petite modification à effectuer sur le code que tu m'as fait hier soir.
Est ce que je pose la question ici ou dans le post initial.

A+
 

ChTi160

XLDnaute Barbatruc
re tu peux aussi utiliser cette formule

=GAUCHE($A1;NBCAR($A1)-1)

Procèdure avec commentaires

Code:
Sub transforme()
Dim cel As Range 'déclaration de la variable cel
Dim derlgn As Integer 'déclaration de la variable derlgn
derlgn = Range('A100').End(xlUp).Row 'on recherche la dernière ligne non vide en partant de la ligne 100 
For Each cel In Range('A1:A' & derlgn)'on boucle sur l'ensemble des cellule de la plage A1:A derlgn
cel.Offset(0, 1) = Mid(cel, 1, Len(cel) - 1)'on affecte a la cellule a coté la valeur de la cellule cel moins un caractère
Next 'suite de la boucle
End Sub

pour ce qui est des fonctions utilisées Mid et Len tu as dans l'aide VBA des explications
lorsque tu est dans le code tu cliques sur MID par exemple et ensuite tu fais F1 idem pour LEN
 

chris1

XLDnaute Nouveau
Re

Pour l'autre fil, c'est là que ça se passe
Lien supprimé

Je te remercie pour tous ses commentaires mais il ne fallait pas.

Quand je disais 'là j'ai plus de mal à comprendre', c'est parce que André m'avait déjà donné la formule dans l'autre post (eh oui j'ai fait un doublon :) ) et j'arrive plus facilement à comprendre une formule ( :S ) que le VBA.

Merci
 

Statistiques des forums

Discussions
312 239
Messages
2 086 497
Membres
103 236
dernier inscrit
Menni