marcolevrai858
Messages postés7Date d'inscriptionmardi 16 septembre 2008StatutMembreDernière intervention16 juillet 2010
-
1 oct. 2008 à 16:07
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
2 oct. 2008 à 08:42
Bonjour,
J'au une colonne d'une feuille Excel contenant différents nombres. Parfois, des cellues contiennent, en plus du nombre, un certain nombre d'espaces derrière. Je souhaiterais supprimer ces espaces en créant un programme Visual Basic les supprimant automatiquement. Comment faire ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 2 oct. 2008 à 08:42
Salut,
>[../auteur/MARCOLEVRAI858/1476670.aspx marcolevrai858] :Si tu estimes que ton problème est résolu,
penses à appuyer sur réponse acceptée sur le OU les posts qui t'ont aider à avancer. (Meme si ici c'est l'un des tiens)
cs_thierry la fronde
Messages postés351Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention12 août 2009 1 oct. 2008 à 17:47
Bonjour,
Sinon, sans code, il y a la fonction SUPPRESPACE dans la catégorie des fonctions texte de EXCEL.. La programmation est-elle indispensable quand des fonctions de ce type existent ? Voilà une question qui mérite débat.
En cas de programmation je répond comme Meldur74
exemple
Range("C1").FormulaR1C1 = "=TRIM(RC[-2])" (c'est la fonction SUPPRESPACE transformée en VB)
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 1 oct. 2008 à 18:21
Salut,
Thierry la fronde : suprespace en anglais ce dit trim ! mais par contre je suis d'accord qu'une formule + l'autofill d'excel + un copier coller ferait l'affaire
Mais le probleme du trim c'est qu'il ne supprime pas les espace entre les mots ou entre les chiffres. Pour etre plus radicale j'utiliserais la fonction substitution.
Et comme on est sur un site de programation :
Sub SupprimerEspace()
'les variables:
Dim MaFormule As String, RefDeMaChaine As String, Premierligne As Long
Dim DerniereLigne As Long, Maplage As Range, ColonneResultat As String
Application.ScreenUpdating = False
Premierligne = 1 ' ou premierligne correspond a la premiere ligne de la plage de cellule dans les quelles on doit virer les espaces
ColonneResultat = "K"
MaFormule = "=SUBSTITUTE(" 'la formule commence ici
RefDeMaChaine = Columns("A").Rows(Premierligne).Address(RowAbsolute:=False)
' si la premiere ligne = 14, sans l'option RowAbsolute:=False le resultat
' pour la premier colonne serait $A$14
' Mais avec cette option, le resultat est $A14. ceci prepare notre formule a la fonction l'Autofill
MaFormule = MaFormule & RefDeMaChaine
MaFormule = MaFormule & ",Char(32)," & """"")" 'char(32) correspond a un espace
'on recherche la derniere ligne de la plage de cellules a concatener sur la colonne A
DerniereLigne = Columns("A").Find("*", , , , xlByRows, xlPrevious).Row
'on determine la plage de cellules qui doit contenir le resultat de concatenation
Set Maplage = Range(ColonneResultat & Premierligne & ":" & ColonneResultat & DerniereLigne)
'on pose la formule dans la premiere cellule la colonne de resultat
Range(ColonneResultat & Premierligne).FormulaLocal = MaFormule
'on copie la formule sur toute la plage de resultat par la fonction autofil d'excel
Range(ColonneResultat & Premierligne).AutoFill Destination:=Maplage, Type:=xlFillDefault
'copy de la colonne de resultat
Maplage.Copy
'on ecrase la colonne source par les valeurs de la colonne resultat
Range("A" & Premierligne).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Maplage.ClearContents
Application.ScreenUpdating = True
End Sub
Cette methode peut paraitre bien compliquée mais en faite elle est beaucoup plus rapide qu'une methode par boucle for/next ou autre
Attention j'utilise une version anglaise donc il est possible que tu es des dificultés. Normalement cela ne devrait pas etre le cas car j'en ai tenu compte
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
marcolevrai858
Messages postés7Date d'inscriptionmardi 16 septembre 2008StatutMembreDernière intervention16 juillet 2010 2 oct. 2008 à 07:49
Bonjour,
Je vous remercie pour votre aide. J'ai finalement réussi en remplaçant les espaces par rien dans Edition/Remplacer sur Excel et j ai enregistré la macro.