Traitement divers sur fichier

Salut,

je souhaiterais réaliser plusieurs choses sur un fichier excel composé ainsi :

  • le fichier est composé d'un classeur.
  • le classeur est composé d'une seule colonne et de X lignes (variables en fonction des fichiers)

Voir le fichier pour exemple (sachant que j'ai mis le résultat dans une autre feuille pour une meilleure compréhension, mais que dans mon fichier traité, le résultat remplacera la feuille d'origine)

Je voudrais donc éclater chaque cellule de chaque ligne en plusieurs cellules via les séparateurs "," et "_"

puis je voudrais remplacer les "." par des ","

j'ai essayé de faire l'enregistrement de macro, mais quand je copie la macro dans mon fichier vba, ca ne marche pas :

    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=True, OtherChar:= _
        "_", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)) _
        , TrailingMinusNumbers:=True
    Columns("A:B").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

merci pour votre aide !

fr

21telecofr.zip (5.91 Ko)

Bonjour

Pour ton Replace remplaces la , (virgule) du paramètre "Replacement "par un . (point) cela peut paraître bizarre mais cela fonctionne

    Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

merci pour ta réponse,

mais je n'arrive pas au remplacement :

quand je lance ma macro, il me met :

Erreur d'éxécutio '1004;

La méthoe Select de la classe Range a échoué.

pour la 1ere ligne :

Columns("A:A").Select

Bonjour

Je n'ai rien modifié d'autre dans ta macro

J'ai récupéré ton fichier, collé ta macro dans un module, modifié ce que j'ai marqué et roule Raoul

Joins ton fichier en cause afin de voir ou cela gène

j'ai copier le code ci dessus dans le fichier joint et effectivement, ca marche.

par contre dans mon fichier principal, j'ai copié ce code et cela ne marche pas.

Ci joint le fichier princ : j'ai mis en commentaire les lignes pour arriver directement à la phase réorganisation de la feuille. Chez moi, seules les lignes en "francais" sont laissées en commentaire.

Au passage, si tu vois des améliorations à faire pour optimiser mon code, merci de me les signaler !! : je débute en vba.

merci !

fr

14telecofr-princ.zip (23.03 Ko)

Bonjour

Partie du code à remplacer

Je t'ai laissé les 2 lignes en commentaire pour te situer le code

'Worksheets("Ref").Activate
'With ActiveSheet
  With Worksheets("Ref")
'    FF = FreeFile
'    For numradar = 0 To UBound(Ref_FIXE)
'      Open Chemin & Ref_FIXE(numradar) For Input As #FF
'      Do While Not EOF(FF)
'        Line Input #FF, Temp
'        Table = Split(Temp, vbTab)
'        If Table(I) <> "delimiter=," Then
'          .Cells(NumLigne, NumCol + I) = Table(I)
'        NumLigne = NumLigne + 1
'        End If
'      Loop
'      Close #FF
'     Next

  'Ré-organisation du fichier ref
    .Columns("A:A").TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=True, OtherChar:= _
        "_", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)) _
        , TrailingMinusNumbers:=True
    .Columns("A:B").Replace What:=".", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

  End With

Exitdoor:
Exit Sub

End Sub

A quoi te servent toutes les autres macros ?

A rien, alors il faut les virer

super,

merci Banzaï64, ca marche à présent.

Rechercher des sujets similaires à "traitement divers fichier"