Convertion date

Bonjour, veuillez trouver ci-joint un code enregistrer via l’enregistreur de macro :

Private Sub Workbook_Open()
        Range("E6").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.TextToColumns Destination:=Range("E6"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 4), TrailingMinusNumbers:=True
    Range("V6").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.TextToColumns Destination:=Range("V6"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 4), TrailingMinusNumbers:=True
End Sub

De toute évidence en VBA , il est possible de mieux l'écrire en supprimant les select... qui peut me le raccourcir svp,

Merci d'avance

Salut Massari,

de toute évidence, il ne sert surtout à rien et tout est à jeter!

A+

Bonjour,

Voir fichier joint.

Cdlt.

15massari59264.xlsm (20.80 Ko)

Comme on écrit des bêtises, parfois...

Difficile de gérer un festival de jeux et Excel !

Je vais plutôt zapper Excel.

Heureusement qu'il y a des malins !

A+

Bonjour Merci Jean-Eric pour votre retour,

Je le teste lundi et je reviens vers vous,

Cordialement

Bonjour Jean éric,

Pourriez vous m'expliquer ligne par ligne le sens de la macro ?,

Merci d'avance,

Cordialement,

Bonjour,

Quelles explications souhaites tu ?

Je renvoie le fichier avec une petite modification.

Cdlt.

4massari59264.xlsm (21.93 Ko)
Private Sub Workbook_Open()
    FormatColumns
End Sub
Public Sub FormatColumns()
Dim ws As Worksheet
Dim lRow As Long, lastRow As Long, lCol As Long
Dim Rng As Range
    Set ws = ActiveWorkbook.Worksheets("Feuil1")
    With ws
        lRow = 6
        For lCol = 5 To 22 Step 17
            lastRow = .Cells(.Rows.Count, lCol).End(xlUp).Row
            Set Rng = .Cells(lRow, lCol).Resize(lastRow - lRow + 1)
            Debug.Print Rng.Address
            Rng.TextToColumns _
                    Destination:=.Cells(6, lCol), _
                    DataType:=xlDelimited, _
                    TextQualifier:=xlDoubleQuote, _
                    ConsecutiveDelimiter:=False, _
                    Tab:=True, _
                    Semicolon:=False, _
                    Comma:=False, _
                    Space:=False, _
                    Other:=False, _
                    FieldInfo:=Array(1, 4)
        Next lCol
    End With
End Sub

Bonjour,

Merci pour cette modif mais qu'apporte t-elle?,

La partie que je voudrais comprendre est la suivante :

    With ws
        lRow = 6
        For lCol = 5 To 22 Step 17
            lastRow = .Cells(.Rows.Count, lCol).End(xlUp).Row
            Set Rng = .Cells(lRow, lCol).Resize(lastRow - lRow + 1)
            Debug.Print Rng.Address
            Rng.TextToColumns _

Merci d'avance,

Bonjour,

Pas grand chose !...

Pour commencer, tu peux supprimer :

Debug.Print Rng.Address

Ensuite, voir la procédure commentée.

A te relire.

Public Sub FormatColumns()
'déclaration des variables
Dim ws As Worksheet
Dim lRow As Long, lastRow As Long, lCol As Long
Dim Rng As Range
    'initialisation variables
    Set ws = ActiveWorkbook.Worksheets("Feuil1")
    With ws
        'ligne départ
        lRow = 6
        'On cible la colonne 5 (E) puis la colonne 22 (V) = 17 + 5
        For lCol = 5 To 22 Step 17
            'dernière ligne non vide de lCol
            lastRow = .Cells(.Rows.Count, lCol).End(xlUp).Row
            'initialisation plage de cellules pour conversion
            Set Rng = .Cells(lRow, lCol).Resize(lastRow - lRow + 1)
            'conversion
            Rng.TextToColumns _
                    Destination:=.Cells(6, lCol), _
                    DataType:=xlDelimited, _
                    TextQualifier:=xlDoubleQuote, _
                    ConsecutiveDelimiter:=False, _
                    Tab:=True, _
                    Semicolon:=False, _
                    Comma:=False, _
                    Space:=False, _
                    Other:=False, _
                    FieldInfo:=Array(1, 4)
        Next lCol
    End With
End Sub

Bonjour Jean-éric,

Merci je préfère essaye de comprendre chaque ligne et ton code commenté me le permet, merci beaucoup,

Cordialement,

Rechercher des sujets similaires à "convertion date"