Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

supprimer dernier caracteres

maval

XLDnaute Barbatruc
Bonjour

Dans ma colonne "A" j'ai une liste de nom finissant par des guillemets comme ceci ...Les Abymes"
J'ai mis se code
Code:
Sub SupprCaractA()

Dim Nc, Cel As Range
    For Each Cel In Range("a1:a1000")
        Cel.Value = Trim(Cel.Value)
        Nc = Len(Cel)
        Cel.Value = Left(Cel, Nc - 1)
    Next Cel
End Sub
j'ai un message d'erreur " Argument ou appel de procédure incorrect"

Je vous remercie de votre aide

Cordialement

max
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

@maval
Tu veux absolument passer par VBA?

Sinon essaie avec ces modis
Sub SupprCaractA_bis()
Dim Nc&, Cel As Range
For Each Cel In Range("a1:a1000")
Cel.Value = VBA.Trim(Cel.Value)
Nc = VBA.Len(Cel)
Cel.Value = VBA.Left(Cel, Nc - 1)
Next Cel
End Sub
 

maval

XLDnaute Barbatruc
Bonjour Staple

je te remercie mais j'ai toujours un message d'erreur " Argument ou appel de procédure incorrect" alors qu'il supprime bien le dernier caractère

@+

max
 

Staple1600

XLDnaute Barbatruc
Re

Chez moi ton code produit aussi une erreur

Est-ce qu'il y a d'autres " dans le contenu des cellules de la colonne A?

Si non, tu peux faire comme cela aussi
VB:
Sub SupprCaractA_Ter()
Range("A1", Cells(Rows.Count, 1).End(3)).Replace """", "", 2, 1
End Sub
 

maval

XLDnaute Barbatruc
Re,

Avec se code sa fonctionne, je ne comprend pas pourquoi alors que je n'ai que cette colonne dans mon classeur?
Mystère de l'informatique.

Je te remercie et te souhaite une bonne journée

Max
 

Staple1600

XLDnaute Barbatruc
Re

Bonjour Gardien de Phare
C'est justement ce que je viens de réaliser
(je suis encore dans les brumes du sommeil, et le café n'est pas encore passé dans la cafetière)
VB:
Sub SupprCaractA_OK()
Dim C As Range, X$
For Each C In Range("a1:a1000")
If Len(C) > 0 Then
X = Trim(C): C.Value = Left(X, Len(X) - 1)
End If
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Cela fonctionne aussi (si pas de formules dans la colonne A)
VB:
Sub SupprCaractA_OKbis()
Dim C As Range, X$
For Each C In Columns(1).SpecialCells(xlCellTypeConstants, 2)
X = Trim(C): C.Value = Left(X, Len(X) - 1)
Next
End Sub
 

maval

XLDnaute Barbatruc
Bonjour,

Suite au code pour supprimer le dernier caractère je voudrais ajouter un underscore au mot composé. je sais qu'il faut ajouter "Replace "_" " mais j’essaye depuis hier sans résultat ?

je vous remercie de votre aide.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

@maval
En guise d'exemple, pour adaptation au fichier réel (que je te laisse faire)
VB:
Sub test_sans_fichier_joint_par_le_demandeur()
Dim mot_composé$
mot_composé = "Jean-Marie" & Chr(34)
MsgBox Replace(Replace(mot_composé, Chr(34), ""), "-", "_")
End Sub
 

Gardien de phare

XLDnaute Accro
Bonsoir,
Qu'est-ce que tu n'arrive pas à faire ? Ce que l’Agrafe t'a proposé supprime les double-quotes (") exprimées par chr(34) et remplace les tirets (-) par des underscore (_). Peut-être qu'avec un petit fichier représentatif des données d'origine et du résultat attendu, ce serait plus simple, peut-être...
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…