Supprimer caractere Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
D
Dehbi
Membre habitué
Membre habitué
Messages : 90
Inscrit le : 30 décembre 2017
Version d'Excel : 2010

Message par Dehbi » 29 mai 2018, 00:06

bonsoir a tous,

Je sollicite votre aide a propos afin de me faire une macro via vba pour supprimer 2 carateres ( ' ) sur une colonne A qui contients 65000 lignes
rapidement .

Exemples :

A
------
'131313133132'
'546454646466'
'854546464646'

resultat souhaite
---------------------------------
131313133132
546454646466
854546464646

Merci d'avance
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'155
Appréciations reçues : 252
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 29 mai 2018, 00:39

bonjour,

une proposition
Sub aargh()
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    t = Cells(1, 1).Resize(dl, 1)
    For i = LBound(t) To UBound(t)
        t(i, 1) = Replace(t(i, 1), "'", "")
    Next i
    Cells(1, 1).Resize(dl) = t
End Sub
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 8'755
Appréciations reçues : 299
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 29 mai 2018, 00:46

Bonjour,
Sub prefixe()
    Dim pl As Range, c As Range
    Set pl = Intersect(Columns(1), ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, xlTextValues))
    If Not pl Is Nothing Then
        For Each c In pl
            If c.PrefixCharacter <> "" Then c.Formula = c.Formula
        Next c
    End If
End Sub
eric

La proposition de h2so4 sera sans aucun doute plus rapide. Comme je ne l'ai lue qu'après....
Tu peux même te permettre de supprimer la boucle :
    Dim derlig As Long
    derlig = Cells(Rows.Count, 1).End(xlUp).Row
    [A1].Resize(derlig, 1).Formula = [A1].Resize(derlig, 1).Formula
De plus ça te préservera d'éventuelles formules
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
D
Dehbi
Membre habitué
Membre habitué
Messages : 90
Inscrit le : 30 décembre 2017
Version d'Excel : 2010

Message par Dehbi » 29 mai 2018, 00:58

SUPER !

Merci a vous et vous souhaite une bonne soirée
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 8'755
Appréciations reçues : 299
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 29 mai 2018, 01:00

J'ai édité mon post. Je ne sais pas si tu as vu la dernière proposition
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
D
Dehbi
Membre habitué
Membre habitué
Messages : 90
Inscrit le : 30 décembre 2017
Version d'Excel : 2010

Message par Dehbi » 29 mai 2018, 01:18

Oui cela me convient parfaitement. NICKEL
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'698
Appréciations reçues : 646
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 29 mai 2018, 01:21

Bonjour Dehbi,

Si ça a marché, c'est que la colonne A était déjà avec un format Texte, car sinon, on obtient :
Screen.jpg
Screen.jpg (13.49 Kio) Vu 77 fois
Pour ceux qui ont ce genre de problème, je propose ce code VBA :
Option Explicit

Sub Essai()
  Dim Tbl, dlig&, i&: Application.ScreenUpdating = 0
  dlig = Cells(Rows.Count, 1).End(xlUp).Row
  Tbl = [A1].Resize(dlig): Columns(1).NumberFormat = "@"
  For i = 1 To dlig
    Tbl(i, 1) = Left$(Tbl(i, 1), 12)
  Next i
  [A1].Resize(dlig) = Tbl
End Sub
Exo Dehbi.xlsm
(14.91 Kio) Téléchargé 2 fois
dhany
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 8'755
Appréciations reçues : 299
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 29 mai 2018, 09:07

Bonjour,

@dhany : exact, j'avais testé avec '1234

@dhebi :
je viens de m'apercevoir que je n'avais pas vu l'apostrophe finale.
Tu peux oublier mes propositions.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message