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 :

VBA consolider plusieurs fichiers .csv vers .xlsm avec conditions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Par défaut VBA consolider plusieurs fichiers .csv vers .xlsm avec conditions
    Bonjour à tous,

    Je rencontre des difficultés pour consolider plusieurs classeurs.csv en VBA. Après quelques tests je pense qu'il est préférable de reprendre à zéro compte tenu des différentes étapes à réaliser. Vous pouvez trouver les détails des actions à réaliser pour tous fichiers .csv présents dans le dossier en cours du classeur maître.

    A partir du classeur CALCULS.xlsm qui est le classeur maître :

    1-ouvrir un premier fichier .csv nommé "*" présent dans le dossier en cours (au format européen car en VBA le fichier s'ouvre au format américain avec des virgules et points points virgules tout à la suite non exploitable en l'état)

    2- condition 1 : si Range("F2") contient "*PERIODE*" alors copier toutes les données à partir de A3 et coller avec format dans dans le classeur maître onglet "RECEPTACLE PERIODE" à la première cellule vide de la colonne A

    3 - condition 2 : si Range("F2") contient "*SEMAINE*" alors copier toutes les données à partir de A3 et coller avec format dans dans le classeur maître onglet "RECEPTACLE HEBDO" à la première cellule vide de la colonne A

    Fermer le classeur et répéter les opérations pour tous fichiers .csv présents dans le dossier en cours du classeur maître.


    Merci beaucoup pour votre aide !

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Bien. J'ai lu ton mini-cahier des charges.
    Puis j'ai cherché, en vain, ton code au moins tenté pour parvenir à tes fins.
    Tu attends quoi ? un code à copier/coller pour CHACUN des TROIS problèmes exposés ?

  3. #3
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Par défaut Bonjour UNPARIA
    Bonjour UNPARIA et merci,
    Dans un premier temps ouvrir tous les fichiers csv du dossier en cours au format européen serai vraiment bien.
    voici la ligne de code qui permet de consolider mais sur plusieurs onglet et la prise en charge CSV n'est pas exploitable.

    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
    Sub consolideClasseurs()
     Application.ScreenUpdating = False
      ChDir ActiveWorkbook.Path
      Set classeurMaitre = ActiveWorkbook
      'sup
      nf = Dir("*.csv")
      Do While nf <> ""
          Workbooks.Open Filename:=nf
          Sheets(1).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
          'classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = nf
          Workbooks(nf).Close False
          nf = Dir     ' classeur suivant
      Loop
      Sheets(1).Select
      ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
      'ActiveWorkbook.Save
     
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Commence par utiliser l'enregistreur de macros pour voir à quoi ressemblerait le code d'importation d'un .csv.

  5. #5
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    En VBA, Excel offre 2 options avec le parametre LOCAL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Local_True_Ouvrir_CSV_Local()
     
        Workbooks.Open Local:=True, Filename:="C:\Users\client\Documents\CFichier_Local.csv"
     
    End Sub
     
     
    Sub Local_False_Ouvrir_CSV_Americain()
     
        Workbooks.Open Local:=False, Filename:="C:\Users\client\Documents\Fichier_americain.csv"
     
    End Sub

Discussions similaires

  1. Lecture de plusieurs fichiers csv avec R
    Par Korera dans le forum R
    Réponses: 1
    Dernier message: 06/03/2017, 17h20
  2. [AC-2003] Ouvrir un fichier .csv avec ultraedit en vba
    Par gontrand16 dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/08/2011, 19h54
  3. Réponses: 1
    Dernier message: 19/03/2008, 09h51
  4. [access 2003] Supprimer un fichier .csv avec du code VBA
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 6
    Dernier message: 18/02/2008, 16h42

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