IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Pb inversion date macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Pb inversion date macro
    Bonjour à tous,

    Malgré de nombreuses recherches je n'ai pas réussi à résoudre mon problème, en m'inscrivant j'espère que vous aller pouvor m'aider car je suis bloqué depuis 1 semaine (je débute dans les macros)

    J'ai créé une macro qui me permet de copier dans un fichier X plusieurs données dont (4 cellules au format date) et de les coller sur un fichier "planning".

    Mon problème est que les dates sont inversée lors de la copie c'est à dire que de 04/06/13 cela passe à 06/04/13

    voici un extrait de ma macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Windows("planning.csv").Activate
        Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
            Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
            ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
            (20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
            Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
            33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
            Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array( _
            46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1)) _
            , TrailingMinusNumbers:=True
        Range("E7").Select
        Range("A2:AY1000").Select
        Range("AY2").Activate
        Selection.Copy
        Windows("Planning_final.xlsm").Activate
        ActiveWindow.ScrollRow = 974
        ActiveWindow.ScrollRow = 812
        ActiveWindow.ScrollRow = 650
        ActiveWindow.ScrollRow = 2
        ActiveWindow.SmallScroll Down:=-6
        Range("A2").Select
        ActiveSheet.Paste
        Range("D25").Select
        Sheets("Planning2").Select
            Application.CutCopyMode = False
        Application.Workbooks("planning.csv").Close SaveChanges:=True
     
     
    End Sub
    Je précise que dans les données qu'elle copie, il y a plusieurs colonne avec une date et d'autres avec la date + heure.

    voila merci par avance !!!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Avez-vous regardé l'aide Excel pour cette fonction ?

    Dans le tableau ci-dessous, le paramètre 1 dans Array(X,1) correspond au format par défaut. Il faut modifier cette valeur pour obtenir votre bon format de date.


    Cordialement.
    Dernière modification par Invité ; 07/06/2013 à 19h58.

  3. #3
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut toujours pas
    Bonjour,

    Merci pour votre réponse, j'avais déjà tenter de remplacer les colonnes au format date en mettant un 4 mais cela ne fonctionne toujours pas.

    Une autre solution ??

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re-bonjour,

    Mettez au moins un fichier en ligne pour que chacun puisse vous répondre.

    Cordialement.

  5. #5
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    je comprends bien mais malheuresement je peux pas faire mieux que mettre la macro car les données sont confidentielles........

    la macro a été faite sur excel avec l'enregistreur, les étapes sont :
    1 - supprimer les données de mon fichier planning final de la colonne A à AY
    2 - ouvrir le fichier planning.csv
    3. convertir les données (car elles apparaissent toutes sur la même colonne à l'ouverture)
    4 - copier les données
    5 - coller sur le fichier planning final

    le problème c'est donc que à l'ouverture du fichier planning.csv les dates sont en J/MM/AAAA et lorsque la macro colle elles sont au format US MM/JJ/AAAA

    en espérant que ca aide un peu plus..??

  6. #6
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    le souci doit être à un autre niveau et dépendre des interprébugs d'Excel en version non US, à partir d'une date en string, du 1 au 12 du mois tu risques des inversions et comme par magie à partir du 13 plus de problème...
    voir : Comprendre et gérer les dates sous Excel et en VBA

    D'autre part ce n'est pas aux contributeurs de faire tout le boulot et de jouer aux devinettes, un bon moyen de s'initier au débogage est, justement, de construire un fichier mini qui reproduise ton problème sans données confidentielles et sans manip de classeur ou feuilles inutiles, le but est de reproduire le problème au plus simple. Rien que ce stade t'amène à bien l'isoler et quelque fois à ne pas chercher sans fin à une autre endroit.

    Il faut toujours commencer par le commencement :

    Les règles :http://club.developpez.com/regles/

    Balises code : http://club.developpez.com/aidenouve...es/Balises.gif => lecture = bien meilleure => plus de participation.

    @ Eric KERGRESSE

    Il y a moyen de mettre tes images jointes en miniatures direct dans la texte sans qu'elles squattent le reste du coup, genre :
    Nom : Ormonth Data-1.jpg
Affichages : 179
Taille : 94,8 Ko

    et de continuer à écrire....... /.... un simple clic les agrandit temporairement.

    cordialement,

    Didier

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Ormonth Voir le message
    Bonjour,


    @ Eric KERGRESSE

    Il y a moyen de mettre tes images jointes en miniatures direct dans la texte sans qu'elles squattent le reste du coup, genre :
    Nom : Ormonth Data-1.jpg
Affichages : 179
Taille : 94,8 Ko

    et de continuer à écrire....... /.... un simple clic les agrandit temporairement.

    cordialement,

    Didier
    C'est bien le but pourtant. En quoi, cela dérange ?


    Cordialement.

  8. #8
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Citation Envoyé par Eric KERGRESSE Voir le message
    C'est bien le but pourtant. En quoi, cela dérange ?
    C'est une question de lisibilité / vue globale du fil dans une fenêtre écran, les gens intéressés par le focus cliquent dessus, ceux qui ont déjà vu ou pas intéressés à l'instant T, n'ont pas à scroller inutilement.

    C'est pourquoi, de façon native, les fenêtres de code sont limitées en hauteur et passent en scrolling, un simple clic permettant des les avoir en intégralité.

    Au final, les gens visionnent aussi souvent dans une fenêtre qui ne couvre pas la largeur de leur écran (si grand), l'image fait qu'elle bloque le redimensionnement auto et du coup, si fenêtre plus étroite que l'image, on a pas le bout des lignes qui ne s'ajustent pas...

    je visionne toute la largeur de ce fil dans un fenêtre de 1030 pixels de large,
    sur ce fil, le post où il y a ta grande image (très explicative par ailleurs) n'est pas redimensionné et les fins de lignes de texte sont invisibles..

    Nom : Ormonth Data-1.jpg
Affichages : 261
Taille : 103,6 Ko

    Le forum n'étant pas destiné qu'à celui qui pose la question et la mode étant au zapping, les gens passent dès qu'un manque de confort se fait sentir

    ça dépend l'effet qu'on recherche.

    cordialement,

    Didier

  9. #9
    Invité
    Invité(e)
    Par défaut
    Reçu fort et clair.

    Cordialement.

  10. #10
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Fichiers
    Je comprends mais je demande pas à ce que me le fasse, je suis débutante j'ai juste besoin d'un coup de pouce de la part de personnes expérimentées.

    Voici les fichiers utilisés .xlsm et .csv

    Merci encore.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Re-bonjour,

    Ci-dessous, une solution possible.

    J'ai eu du mal également à importer correctement les deux dernières colonnes avec des heures.

    Pour importer, il faut renommer l'extension .csv en .txt pour ouvrir le fichier avec la méthode OpenText.

    Ensuite, il faut typer les champs représentant des dates en type texte (valeur 2 dans Array(X,2)).

    Par contre, vous verrez dans le fichier joint, je duplique la ligne de titre que j'ai sauvegardée dans la feuille Titre Modèle. Je pense que lorsque vous aurez tous les champs dans votre fichier csv, vous pourrez importer directement la ligne de titre avec la copie.

    J'ai laissé le bouton et je n'ai pas touché les macros d'origine. J'ai ajouté un module et un bouton pour lancer ma macro.

    Le zip contient le nouveau planning et le fichier de données avec extension .txt.

    Cordialement.

  12. #12
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Bonjour,

    Merci Eric KERGRESSE, ça à l'air de fonctionner.
    En revanche comment faire pour que la macro convertisse le .csv en .txt automatiquement pour ensuite lancer ta macro ?

    en fait j'aimerais que cela reprenne le début de ma macro c'est à dire :
    - effacer les données de mon onglet "BD"
    - convertir le fichier .csv

    puis à partir de là :
    - enregistrer le .csv en .txt
    - continuer avec ta macro pour copier les données

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En ajoutant une voire deux procédures pour renommer les fichiers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub ChangerLExtensionDunFichierCsvEnTxt(Chemin As String, Fichier As String)
     
        Chemin = "C:\Users\Eric\Documents\VBA Excel\Développez-Com\Fichiers textes\TextTo\"
     
        Fichier = "planning2.csv"
        Name Chemin & Fichier As Replace(Chemin & Fichier, ".csv", ".txt")
     
    End Sub

    S'il faut renommer le fichier dans son extension d'origine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Sub ChangerLExtensionDunFichierTxtEnCsv(Chemin As String, Fichier As String)
     
        Chemin = "C:\Users\Eric\Documents\VBA Excel\Développez-Com\Fichiers textes\TextTo\"
        Fichier = "planning2.txt"
        Name Chemin & Fichier As Replace(Chemin & Fichier, ".txt", ".csv")
     
    End Sub

    La procédure principale devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Option Explicit
     
    Public WbSource As Workbook
    Public ShCible As Worksheet
    Public ShSource As Worksheet
    Public ShTitreModele As Worksheet
     
    Public AireCsv As Range
    Public DerniereLigne As Long
     
    Sub ImporterUnFichierTexte()
     
        Set ShCible = Sheets("BD")
        Set ShTitreModele = Sheets("Titre modèle")
     
        ChangerLExtensionDunFichierCsvEnTxt "C:\Users\Eric\Documents\VBA Excel\Développez-Com\Fichiers textes\TextTo", "planning2.csv"
     
        Range(ShCible.Cells(1, 1), ShCible.Cells(ShCible.UsedRange.Rows.Count, ShCible.UsedRange.Columns.Count)).Clear
     
        Workbooks.OpenText Filename:= _
            "C:\Users\Eric\Documents\VBA Excel\Développez-Com\Fichiers textes\TextTo\planning2.txt" _
            , Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier _
            :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _
            False, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array( _
            1, 2), Array(2, 2), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, _
            1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array _
            (15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
            Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), Array(27, 1), Array( _
            28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array(33, 1), Array(34, 1), _
            Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 2), Array(39, 1), Array(40, 1), Array( _
            41, 2)), TrailingMinusNumbers:=True
     
        Set WbSource = ActiveWorkbook
        Set AireCsv = Range(ActiveSheet.Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
     
        ' Copie du fichier Csv
        AireCsv.Copy
        ShCible.Activate
        ShCible.Cells(1, 1).Select
        ShCible.Paste
     
        Set AireCsv = Nothing
     
        ' Copie de la ligne de titre
        ShTitreModele.Range(ShTitreModele.Cells(1, 1), ShTitreModele.Cells(1, ShTitreModele.UsedRange.Columns.Count)).Copy
        ShCible.Activate
        ShCible.Cells(1, 1).Select
     
        ShCible.Paste
     
        WbSource.Close SaveChanges:=False
     
        ChangerLExtensionDunFichierTxtEnCsv "C:\Users\Eric\Documents\VBA Excel\Développez-Com\Fichiers textes\TextTo", "planning2.txt"
     
     
        Set WbSource = Nothing
        Set ShTitreModele = Nothing
        Set ShCible = Nothing
     
    End Sub

    Cordialement.

  14. #14
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    merci

    j'ai réussi tant bien que mal à l'intégrer dans mon fichier de base mais malheuresement la date est toujours inversée je comprends pas où est ce que cela beug étant donnée que sur votre exemple elle ne s'inverse pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Option Explicit
    Option Explicit
     
    Public WbSource As Workbook
    Public ShCible As Worksheet
    Public ShSource As Worksheet
    Public ShTitreModele As Worksheet
     
    Public AireCsv As Range
    Public DerniereLigne As Long
    Sub CopieBD()
    '
    ' CopieBD Macro
    '
    Set ShCible = Sheets("BD")
        Set ShTitreModele = Sheets("Titre modèle")
     
    'ThisWorkbook.Sheets("BD")
        Sheets("BD").Select
        Range("A2:AY1000").Select
        Range("AY2").Activate
        Selection.Cut
        Application.CutCopyMode = False
        Application.DisplayAlerts = False
        Selection.ClearContents
              ChDir "C:\Documents and Settings\admv6\Bureau\TMS"
        Workbooks.Open Filename:= _
            "C:\Documents and Settings\admv6\Bureau\TMS\planning.csv"
        Windows("planning.csv").Activate
        Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 2), Array(6, 2), _
            Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
            ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
            (20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
            Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
            33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
            Array(40, 1), Array(41, 1), Array(42, 2), Array(43, 1), Array(44, 1), Array(45, 2), Array( _
            46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1)) _
            , TrailingMinusNumbers:=True
            Application.DisplayAlerts = True
         Set WbSource = ActiveWorkbook
        Set AireCsv = Range(ActiveSheet.Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
     
        ' Copie du fichier Csv
        AireCsv.Copy
        ShCible.Activate
        ShCible.Cells(1, 1).Select
        ShCible.Paste
     
        Set AireCsv = Nothing
     
        ' Copie de la ligne de titre
        ShTitreModele.Range(ShTitreModele.Cells(1, 1), ShTitreModele.Cells(1, ShTitreModele.UsedRange.Columns.Count)).Copy
        ShCible.Activate
        ShCible.Cells(1, 1).Select
     
        ShCible.Paste
     
    Application.Workbooks("planning.csv").Close SaveChanges:=True
     
        Set WbSource = Nothing
        Set ShTitreModele = Nothing
        Set ShCible = Nothing
     
            Application.CutCopyMode = False
     
     
    End Sub

  15. #15
    Invité
    Invité(e)
    Par défaut
    Je ne vois pas à quel endroit vous avez transformé le .csv en .txt.


    Cordialement.
    Dernière modification par AlainTech ; 15/06/2013 à 10h58. Motif: Suppression de la citation

  16. #16
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    j'ai corrigé en mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Option Explicit
    
    Public WbSource As Workbook
    Public ShCible As Worksheet
    Public ShSource As Worksheet
    Public ShTitreModele As Worksheet
    
    Public AireCsv As Range
    Public DerniereLigne As Long
    
        Sub ChangerLExtensionDunFichierCsvEnTxt(Chemin As String, Fichier As String)
     
        Chemin = "C:\Documents and Settings\admv6\Bureau\TMS"
     
        Fichier = "planning.csv"
    Name Chemin & Fichier As Replace(Chemin & Fichier, ".csv", ".txt")
     
    End Sub
    
    
    Sub CopieBD()
    '
    ' CopieBD Macro
    '
    Set ShCible = Sheets("BD")
        Set ShTitreModele = Sheets("Titre modèle")
        
        ChangerLExtensionDunFichierCsvEnTxt "C:\Documents and Settings\admv6\Bureau\TMS", "planning.csv"
        
    'ThisWorkbook.Sheets("BD")
        Sheets("BD").Select
        Range("A2:AY1000").Select
        Range("AY2").Activate
        Selection.Cut
        Application.CutCopyMode = False
        Application.DisplayAlerts = False
        Selection.ClearContents
              ChDir "C:\Documents and Settings\admv6\Bureau\TMS"
        Workbooks.Open Filename:= _
            "C:\Documents and Settings\admv6\Bureau\TMS\planning.csv"
        Windows("planning.csv").Activate
        Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 2), Array(6, 2), _
            Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
            ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
            (20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
            Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
            33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
            Array(40, 1), Array(41, 1), Array(42, 2), Array(43, 1), Array(44, 1), Array(45, 2), Array( _
            46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1)) _
            , TrailingMinusNumbers:=True
            Application.DisplayAlerts = True
            
         Set WbSource = ActiveWorkbook
        Set AireCsv = Range(ActiveSheet.Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
        
        ' Copie du fichier Csv
        AireCsv.Copy
        ShCible.Activate
        ShCible.Cells(1, 1).Select
        ShCible.Paste
        
        Set AireCsv = Nothing
        
        ' Copie de la ligne de titre
        ShTitreModele.Range(ShTitreModele.Cells(1, 1), ShTitreModele.Cells(1, ShTitreModele.UsedRange.Columns.Count)).Copy
        ShCible.Activate
        ShCible.Cells(1, 1).Select
        
        ShCible.Paste
        
    Application.Workbooks("planning.csv").Close SaveChanges:=True
        
        Set WbSource = Nothing
        Set ShTitreModele = Nothing
        Set ShCible = Nothing
        
            Application.CutCopyMode = False
    
    
    End Sub
    mais il me dit "erreur d'éxécution 53 le fichier est introuvable" et surligne en jaune
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Name Chemin & Fichier As Replace(Chemin & Fichier, ".csv", ".txt")

  17. #17
    Invité
    Invité(e)
    Par défaut
    Désolé de vous avoir induit en erreur, il faut ajouter un antislash à la fin de Chemin = "C:\Documents and Settings\admv6\Bureau\TMS\"

    Cordialement.
    Dernière modification par AlainTech ; 15/06/2013 à 10h59. Motif: Suppression de la citation

  18. #18
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    cela me fait la même chose

  19. #19
    Invité
    Invité(e)
    Par défaut
    C'est normal qu' il ne trouve rien si vous avez transformé une première fois le fichier .csv en .txt et que vous ne l'avez pas retransformé le fichier .txt à la fin.

    Pendant la phase de développement de votre code, il faut utiliser la deuxième macro pour revenir à la position d'origine.

    Cordialement.

  20. #20
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    ok qu'est ce que je dois mettre alors ? j'ai remodifié les .txt à la fin mais toujours pareil.....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Option Explicit
     
    Public WbSource As Workbook
    Public ShCible As Worksheet
    Public ShSource As Worksheet
    Public ShTitreModele As Worksheet
     
    Public AireCsv As Range
    Public DerniereLigne As Long
     
        Sub ChangerLExtensionDunFichierCsvEnTxt(Chemin As String, Fichier As String)
     
        Chemin = "C:\Documents and Settings\admv6\Bureau\TMS\"
     
        Fichier = "planning.csv"
        Name Chemin & Fichier As Replace(Chemin & Fichier, ".csv", ".txt")
     
    End Sub
     
     
    Sub CopieBD()
    '
    ' CopieBD Macro
    '
    Set ShCible = Sheets("BD")
        Set ShTitreModele = Sheets("Titre modèle")
     
        ChangerLExtensionDunFichierCsvEnTxt "C:\Documents and Settings\admv6\Bureau\TMS\", "planning.csv"
     
    'ThisWorkbook.Sheets("BD")
        Sheets("BD").Select
        Range("A2:AY1000").Select
        Range("AY2").Activate
        Selection.Cut
        Application.CutCopyMode = False
        Application.DisplayAlerts = False
        Selection.ClearContents
              ChDir "C:\Documents and Settings\admv6\Bureau\TMS"
        Workbooks.Open Filename:= _
            "C:\Documents and Settings\admv6\Bureau\TMS\planning.txt"
        Windows("planning.txt").Activate
        Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 2), Array(6, 2), _
            Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
            ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
            (20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
            Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
            33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
            Array(40, 1), Array(41, 1), Array(42, 2), Array(43, 1), Array(44, 1), Array(45, 2), Array( _
            46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1)) _
            , TrailingMinusNumbers:=True
            Application.DisplayAlerts = True
     
         Set WbSource = ActiveWorkbook
        Set AireCsv = Range(ActiveSheet.Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
     
        ' Copie du fichier Csv
        AireCsv.Copy
        ShCible.Activate
        ShCible.Cells(1, 1).Select
        ShCible.Paste
     
        Set AireCsv = Nothing
     
        ' Copie de la ligne de titre
        ShTitreModele.Range(ShTitreModele.Cells(1, 1), ShTitreModele.Cells(1, ShTitreModele.UsedRange.Columns.Count)).Copy
        ShCible.Activate
        ShCible.Cells(1, 1).Select
     
        ShCible.Paste
     
    Application.Workbooks("planning.txt").Close SaveChanges:=True
     
        Set WbSource = Nothing
        Set ShTitreModele = Nothing
        Set ShCible = Nothing
     
            Application.CutCopyMode = False
     
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] Inversion date FR/US avec macro VBA
    Par freakhit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/04/2014, 13h31
  2. Réponses: 1
    Dernier message: 26/06/2013, 08h33
  3. décalage des dates macro excel
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/05/2010, 01h17
  4. copiage date macro
    Par djtweety dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/11/2007, 15h01
  5. date macro word 2000
    Par cmgirondins dans le forum VBA Word
    Réponses: 14
    Dernier message: 07/09/2005, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo