decoupage cellule

M

mathieu

Guest
bonjour a tous

j ai un problème de decoupage du contenu de mes cellules.
j ai des valeurs de ce types : IVC ASCENT IV A - 03/01/2014
IVC ASCENT IV B - 03/01/2014
ALPHA SALUS - 09/01/2009

et je souhaiterai garder uniquement le nom. je souhaite filtré la date soit les 13 derniers caractères.

j avais trouvé une solution avec des formules directement saisies dans les cases mais qd j ai voulu les mettre dans une macro pour que cela le fasse automatiquement il me mettais tojours des erreurs de syntaxes.


dc si vous connaissez la reponse je vous ecoute.


merci d avance

bonne journée

@+ mat
 

JeanMarie

XLDnaute Barbatruc
Bonjour Mathieu

Essaye ce code
Code:
Sub MacroMathieu()
    Columns('A:A').Select
    Selection.TextToColumns Destination:=Range('A1'), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :='-', FieldInfo:=Array(Array(1, 1), Array(2, 4))
    Columns('A:A').EntireColumn.AutoFit
End Sub

Attention la colonne B doit être vide, les données déjà présentes seront écrasées

@+Jean-Marie
 

JeanMarie

XLDnaute Barbatruc
Re...

Oui c'est possible

Code:
 Sub MacroMathieu()
 Application.DisplayAlerts = False
 Columns('A:A').Select
    Selection.TextToColumns Destination:=Range('A1'), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :='-', FieldInfo:=Array(Array(1, 1), Array(2, 4))
    Columns('A:A').EntireColumn.AutoFit
 Application.DisplayAlerts = True 
End Sub

@+Jean-Marie
 
M

mathieu

Guest
re re lol

merci ca marche niquel mais j aimerai savoir a quoi correspond les champs array stp?

car en fait j arrive pas a adapter la macro sur mon exemple

moi en fait j ai la valeur : IVC ASCENT IV A - 03/01/2014
dans la cellule B et ce que je souhaite c que le nom aille dans la cellule C et la date dans la cellule E donc est ce que tu pourrais m aider a appliquer ma macro a mon exemple?



merci bcp
 
P

Pascal

Guest
Bonjour Messieurs, le forum.

Si j'ai bien compris et que Mathieu ne souhaite pas conserver la date, je vous propose modestement :unsure: le code ci-dessous.

Sub Macro1()

For compteur = 5 To 3 Step -1
If Range('c' & compteur) Like '*-*' And IsDate(Right(Range('c' & compteur), 10)) Then: _
Range('c' & compteur).Replace What:='-*', Replacement:='', LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False

Next compteur

End Sub


Bien à vous
Pascal
 
P

Pascal

Guest
Re à tous les deux,

Je viens d'ajouter une ligne qui permet d'avoir dans la cellule adjascente la date pour pouvoir travailler dessus. Qu'en pensez vous ?
Cordialement
Pascal

Sub Macro1()

For compteur = 5 To 3 Step -1
If Range('c' & compteur) Like '*-*' And IsDate(Right(Range('c' & compteur), 10)) Then: _
Range('d' & compteur) = Right(Range('c' & compteur), 10): _
Range('c' & compteur).Replace What:='-*', Replacement:='', LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False

Next compteur

End Sub
 

JeanMarie

XLDnaute Barbatruc
Re...

Le Array(Array(1, 1), Array(2, 4)) spécifie le type de donnée à retourner.

Il faut que tu rajoutes
- la copie de la colonne B en Colonne C,
- et une insertion d'une colonne avant la colonne D
le code existant
-le copier coller de la colonne en colonne E.
et tu termines ton code par Application.DisplayAlerts = True.

L'utilisation Selection.TextToColumns évite la gestion des dates en VBA qui peut poser problème.

@+Jean-Marie
 

Discussions similaires

I
Réponses
3
Affichages
921
ironmat
I

Statistiques des forums

Discussions
312 559
Messages
2 089 641
Membres
104 239
dernier inscrit
STEVEALL