XL 2010 macro pour fonction gauche

matoupitou

XLDnaute Occasionnel
Bonjour
Par avance merci pour votre aide

j'aimerai crée une commande (avec macro) qui me permettrait, en sélectionnant les cellules concernées, de passer d'un code de 13 caractères en 12
(j'ai pensé à fonction Gauche) mais je ne sais pas l'écrire en VBA
j'ajoute une PJ pour exemple
(en colonne A le type de ref13, en colonne B le résultat attendu mais attention j'en ai besoin A LA PLACE de ceux en A)
(précision : les codes ne se trouvent pas toujours en colonne A)

j'espère que je m'exprime bien....
 

Pièces jointes

  • ex_13en12.xlsx
    10.9 KB · Affichages: 7

vgendron

XLDnaute Barbatruc
VB:
Sub tronquer()
Dim tablo() As Variant

With ActiveSheet
    tablo = .Range("A1:A18").Value
    For i = LBound(tablo, 1) To UBound(tablo, 1)
        tablo(i, 1) = Left(tablo(i, 1), Len(tablo(i, 1)) - 1)
    Next i
    .Range("A1:A18") = tablo
    .Range("A1:A18").NumberFormat = "0000000000000"
End With
End Sub
 

matoupitou

XLDnaute Occasionnel
VB:
Sub tronquer()
Dim tablo() As Variant

With ActiveSheet
    tablo = .Range("A1:A18").Value
    For i = LBound(tablo, 1) To UBound(tablo, 1)
        tablo(i, 1) = Left(tablo(i, 1), Len(tablo(i, 1)) - 1)
    Next i
    .Range("A1:A18") = tablo
    .Range("A1:A18").NumberFormat = "0000000000000"
End With
End Sub


RECOUCOU
désolée mais ça marche po :(
je joins le fichier sur lequel je suis... les codes 13 sont en colonne I et du coup bah...
est-il possible de faire une macro qui fonctionne une fois les cellules sélectionnées ?
merci merci merci
 

Pièces jointes

  • ex2_ref13en12.xlsm
    26.3 KB · Affichages: 4

vgendron

XLDnaute Barbatruc
bah si ca marche.. faut juste réfléchir un peu...et essayer de comprendre un minimum...

VB:
Sub tronquer()
Dim tablo() As Variant

With ActiveSheet
    'tablo = .Range("A1:A18").Value
    tablo = Selection.Value
    For i = LBound(tablo, 1) To UBound(tablo, 1)
        tablo(i, 1) = Left(tablo(i, 1), Len(tablo(i, 1)) - 1)
    Next i
    '.Range("A1:A18") = tablo
    '.Range("A1:A18").NumberFormat = "0000000000000"
    Selection = tablo
    Selection.NumberFormat = "0000000000000"
End With
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @matoupitou, @vgendron ;),

Un autre macro:
  • sélectionner la ou les plages
  • appuyer sur Ctrl+G (g doit être en majuscule)
VB:
Sub Tronque12()
Dim xcell
Application.ScreenUpdating = False
For Each xcell In Selection
   xcell.NumberFormat = "@"
   xcell.Value = Left(xcell.Value, 12)
Next xcell
End Sub
 

Pièces jointes

  • matoupitou-ex2_ref13en12- v1.xlsm
    25.9 KB · Affichages: 12
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 838
dernier inscrit
Christelle.B86