XL 2010 macro pour fonction gauche

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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

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
 
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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour