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 :

Macro en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut Macro en VBA
    Bonjour les internauts(es);

    J'ai besoin un coup de main pour mon application en VBA.
    j'explique:

    Je voudaris définir le chemin d'exportation mon fichier.csv dans un sous-répertoire:Exportation---->Traité avec :Le nommage des fichiers suit la règle suivante :

    NomdeFichier_CRI_{Date_du_fichier}.csv


    avec Date_du fichier au format : AAAAMMJJHHMMSS


    L’émetteur peut choisir d’envoyer un fichier conteneur CSV par fichier.csv ou de regrouper plusieurs fichier.csv dans un même fichier.csv.

    voilà mon code de conversion fichier.xls en .csv et en méme temps il exporte dans la source:

    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
    '*****************************************************
    'sauvegarder le fichier Excel en CSV avec pipe "|" *
    '*****************************************************
    Sub createCsv()
    Dim separateur As String
    Dim Ligne As String
    Dim Sh As Worksheet
     
    Application.ScreenUpdating = False
     
    separateur = "|"
    Set Sh = ThisWorkbook.Worksheets("OT à Imprimer")
     
    'Kill "Testfichiercsv2.csv"
    Open "Testfichiercsv2.csv" For Output As #1
     
    Ligne = "REFCONTRAT" & "|" & "NOM PRESTATAIRE" & separateur & "DATECRENEAU" & separateur _
    & "HEUREDEBUT" & separateur & "COMMENTAIREPOSTE" & separateur & "CODEECHEC" & separateur & "CRNOM" _
    & separateur & "CRDATE" & separateur & "CRHEUREDEBUT" & separateur & "CRHEUREFIN" _
    & separateur & "SERVICE TEL" & separateur & "SERVICE TV" & separateur & "SERVICE WEB" _
    & separateur & "MACADRESSE MODEM" & separateur & "NUMSERIE MODEM" & separateur & "MAC ADRESSE NEUFBOX" _
    & separateur & "NUMSERIE NEUFBOX" & separateur & "MAC ADRESSE STB" _
    & separateur & "NUM SERIE STB" & separateur & "MAC ADRESSE STB2" _
    & separateur & "NUMSERIE STB2" & separateur & "MAC ADRESSE STB3" _
    & separateur & "NUMSERIE STB3" & separateur & "MAC ADRESSE STB4" _
    & separateur & "NUMSERIE STB4" & separateur & "NOM" _
    & separateur & "PRENOM" & separateur & "FIXCONTACT" _
    & separateur & "PORTABLECONTACTE" & separateur & "AFFECTATIONBOITIERETAGE" _
    & separateur & "AFFECTATIONEQUIPEMENT" & separateur & "AFFECTATIONFO" _
    & separateur & "AFFECTATIONSITE" & separateur & "AFFECTATIONSPLITTER" _
    & separateur & "AFFECTATIONIMMEUBLE" & separateur & "AFFECTATIONBPIVER" _
    & separateur & "AFFECTATIONBPIHOR" & separateur & "PUISSANCEOPTIQUEPRISE" _
    & separateur & "PUISANCEOPTIQUEBE" & separateur & "CODEVALIDATION" _
    & separateur & "NUMEROLOGO" & separateur & "NUMEROPBO" _
    & separateur & "PRISE ETHERNET" & separateur & "CLEUSB" _
    & separateur & "FILTREADSL" & separateur & "PACK CPL2" _
    & separateur & "CPL" & separateur & "ETHERNET10m" _
    & separateur & "ETHERNET2m" & separateur & "AFFECTATIONBOITIERTIERS" & separateur & "POSITIONMOVE3PS" & separateur & "POSITIONMOVETIERCE"
     
    Print #1, Ligne
     
    Ligne = Sh.Range("B6").Value & separateur & Range("E17").Value & separateur & Range("B18").Value & separateur & Range("E18").Value _
    & separateur & Range("B19").Value & separateur & Range("F59").Value & separateur & Range("E28").Value _
    & separateur & Range("B18").Value & separateur & Range("H28").Value & separateur & Range("K28").Value _
    & separateur & Range("H51").Value & separateur & Range("H50").Value & separateur & Range("H52").Value _
    & separateur & " " & separateur & Range("B41").Value & separateur & " " _
    & separateur & Range("B42").Value & separateur & " " & separateur & Range("B44").Value _
    & separateur & " " & separateur & Range("B45").Value & separateur & " " _
    & separateur & " " & separateur & " " & separateur & " " _
    & separateur & Range("E6").Value & separateur & Range("F6").Value & separateur & Range("B7").Value _
    & separateur & Range("E7").Value & separateur & Range("B23").Value & separateur & " " _
    & separateur & " " & separateur & " " & separateur & " " _
    & separateur & " " & separateur & " " & separateur & " " _
    & separateur & Range("H29").Value & separateur & Range("K29").Value & separateur & " " _
    & separateur & Range("B28").Value & separateur & " " & separateur & Range("I46").Value _
    & separateur & " " & separateur & " " & separateur & " " _
    & separateur & " " & separateur & " " & separateur & " " _
    & separateur & Range("B32").Value & separateur & Range("B24").Value & separateur & Range("B33").Value
     
     
    Print #1, Ligne
     
    Close #1
     
    Application.ScreenUpdating = True
     
    End Sub
    Merci beaucoup de votre attention

    Cordialement

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Tu code, merci bien seulement il est difficilement lisible sans les balises CODES

    Maintenant quel est ton problème, l'ecriture à la date du jour ?

    Pour l'année par exemple tu peux faire


  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Je n'ai compris ta demande qu'à moitié mais si c'est pour mettre le fichier dans un autre répertoir...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Chemin as string
    Chemin = "C:\ExportationRep\"
    Open Chemin & "Testfichiercsv2.csv" For Output As #1
    Sinon tu dis.
    A+

  4. #4
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut Precise la question
    Bonjour,

    Precise mieux ta question car c 'est ambigu ....


    Pour definir un chemin + un nom generique j'aurai fait comme cela


    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
     
     
    Sub test()
    Dim sDir As String
    Dim sFichier As String
    'Chemin d 'export
    sDir = ThisWorkbook.Path & "\Exportation Traitée\"
    'Nom du fichier formate
    ' NomdeFichier_CRI_{Date_du_fichier}.csv
    ' avec Date_du fichier au format : AAAAMMJJHHMMSS
     
    sFichier = "NomDeFichier_CRI_" & Format(Now, "yyyymmddhhnnss") & ".csv"
     
    MsgBox sFichier
     
     
    End Sub

    J'esperes que cela répond à ta demande sinon apporte plus de précision


  5. #5
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut
    Merci beaucoup à vous tous;
    Pour Monsieur Lynx92260;
    On faite le code je l'integre dans le code de converstion en .csv ou je crer un autre module?

  6. #6
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut selon .....
    rebonjour meminfo

    Bien sur à intégrer les lignes ci-dessous dans le code de conversion si cela convient à vos habitudes de programmation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim sDir As String
    Dim sFichier As String
    'Chemin d 'export
    sDir = ThisWorkbook.Path & "\Exportation Traitée\"
    'Nom du fichier formate
    ' NomdeFichier_CRI_{Date_du_fichier}.csv
    ' avec Date_du fichier au format : AAAAMMJJHHMMSS
     
    sFichier = "NomDeFichier_CRI_" & Format(Now, "yyyymmddhhnnss") & ".csv"




    Pensez à mettre

  7. #7
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut
    Merci,je t'ai posé cette question,c'est prcq je trouvé l'erreur au niveau ligne:

    Print #1,Ligne

    Erreur d'exécution '52':Nom ou numéro de fichier incorrecte


  8. #8
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut freefile
    Je ne vois pas pourquoi ma proposition de nommage de fichier à déclencher cela n'a rien avoir avec avec l'execution de commande bas niveau de cette instruction Print #1,Ligne

    L'erreur vient du fait que le numero 1 n'est pas attribué à l'ouverture du fichier

    Pour ma part j'utilise l'attribution comme ci dessous


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    intFic = FreeFile
    Open "Testfichiercsv2.csv" For Output As intFic
    .....
     
    Print #intFic, Ligne
     
    ....
     
    Close #intFic

    C'est plus sure .....


Discussions similaires

  1. besoin d'aide pour macros ou VBA
    Par jmsor dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/02/2007, 18h41
  2. macro excel vba
    Par fildupa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/12/2006, 21h29
  3. Demarrer une Macro/Appli VBA sans paser par les feruilles Excel
    Par size_one_1 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/12/2006, 21h23
  4. execute une macro via vba sous access
    Par nes dans le forum Access
    Réponses: 4
    Dernier message: 28/03/2006, 23h15
  5. Réaliser une macro en VBA pour excel afin de créer un graphe
    Par xavier le breuil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 14h41

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