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 :

comment ouvrir un ficher ;csv dans le classeur en cours pas dans un autre classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Par défaut comment ouvrir un ficher ;csv dans le classeur en cours pas dans un autre classeur
    Bonjour,

    mon code ne me permet d'ouvrir un fichier .csv mais dans un autre classeur j'ai voulu savoir comment l'ouvire dans le classeur encour et le mettre par exemple dans la feuille 3

    merci pour votre aide

    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
    Public Sub ImporterFichier()
    Dim Index As Variant
    'Déclaration des variables
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
    Dim str_fichier_chemin As String
    str_fichier_chemin = "117531472_IA3_data_pv_ccpma_20130122_060002"
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Workbooks.OpenText Filename:="\\appsef\COMMUN\TEC\" & str_fichier_chemin, Origin:=xlWindows, _
    StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
    ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
    Set wbExcel = appExcel.ActiveWorkbook
    For Index = 1 To 500
    Debug.Print Error$(Index)
    Next Index
     
     
    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    En fait, la seule chose d'utile dans le code que tu présentes est ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks.OpenText Filename:="\\appsef\COMMUN\TEC\" & str_fichier_chemin, Origin:=xlWindows, _
    StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
    ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
    Tu n'as pas besoin de tout le reste. Maintenant, il faut comprendre ce que ce bout de code signifie.
    Ce code t'ouvre en fait le fichier CSV transformé. Il ne l'ouvre pas "dans un autre classeur" mais lui même directement.
    La phase suivante est uniquement le transport de ces données dans ton autre classeur.

    Facile :
    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
    Public Sub ImporterFichier()
    Dim str_fichier_chemin As String
     
    str_fichier_chemin = "117531472_IA3_data_pv_ccpma_20130122_060002"
     
    'Ouverture d'un fichier Excel
    Workbooks.OpenText Filename:="\\appsef\COMMUN\TEC\" & str_fichier_chemin, Origin:=xlWindows, _
    StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
    ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
     
    With ActiveWorkbook
        'MsgBox Workbooks("test").Sheets.count
        .Sheets(1).Copy Before:=Workbooks("test").Sheets(1)
    End With
     
     
    End Sub
    Plus qu'à jouer avec :
    - le nom du classeur de destination (ici "test")
    - "Before" ou "After" // et l'indice (ou le nom) de la feuille où tu veux placer cette nouvelle worksheets !

    Pour te former, les cours et tutoriels Excel : https://excel.developpez.com/cours/

    Tiens moi au courant !

  3. #3
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Par défaut Merci bcp est ce que t'a des astuces d'utilisation de FileSearch
    Merci bcp, c'est vraiment génial

    je commence bien ma journée

    j'ai voulu te demander si tu connais une solution pour la recherche d'un fichier .csv dans un repertoire donné

    en faite l'utilisateur doit faire entrer le nom du fichier et la date et la macro doit trouver ce fichier dans un repertoire

    Alors dans le repertoire "\\appsef\COMMUN\TEC\" il y'a deux types de nom de fichiers:

    1er type:
    117531478_IA3_data_pv_ERAF1_20130122_060003
    117531472_IA3_data_pv_ccpma_20130122_060002
    117268533_IA3_data_pv_perp_ve_20130115_060009

    VariableNumerique_IA3_data_pv_NomAfaireEntrerParUtilisateur_DateEntrerParUtilisateur_VariableNumerique1

    la variable numerique 1 est comprise entre 060000 et 060015

    2eme type
    data_pv_sk001_20130122_060004
    data_pv_perp_av_20130122_060004
    data_pv_mdf_20130122_060003

    data_pv_NomAfaireEntrerParUtilisateur_DateEntrerParUtilisateur_VariableNumerique1

    j'ai vraiment tester FileSearch et ça marche pas

    si ta une solution ou meme un debut de solution je te serai reconnaissant

    et Merci pour tout

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    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
    Public Sub ImporterFichier()
    'Dim str_fichier_chemin As String
    Dim date_user, nom_user, report As String
     
    nom_user = "perp_ve"
    date_user = "20130115"
     
    report = Dir("\\appsef\COMMUN\TEC\*" & "*_IA3_data_pv_" & nom_user & "_" & date_user & "_0600*" & "*.csv")
     
    full_name = "\\appsef\COMMUN\TEC\" & report
     
    'Ouverture d'un fichier Excel
    Workbooks.OpenText Filename:=full_name, Origin:=xlWindows, _
    StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
    ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
     
    With ActiveWorkbook
        'MsgBox Workbooks("test").Sheets.count
        .Sheets(1).Copy Before:=Workbooks("test").Sheets(1)
    End With
     
     
    End Sub
    Pour tes premier fichiers !
    A toi de récupérer les valeurs à mettre dans "date_user" et "nom_user" !

  5. #5
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Par défaut
    Salut

    Merci beaucoup pour ta réponse, je ne l'ai pas encore testé, j'ai changé d'excel et je suis passé de 2003 à 2010,

    un grand pas technologique

    Le meme code qui m'affichait le csv dans le meme claasseur dans Excel 2003, il importe le csv dans un autre classeur avec Excel 2010

    et en plus il m'affiche cette erreur
    Indice en dehors de la plage (erreur 9)
    stp est ce que tu connais c'est quoi la cause

    Merci bcp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(1).Copy Before:=Workbooks("test").Sheets(1)
    c'est la ligne de code que compilateur n'a pas trop aimé

  6. #6
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Par défaut Tout a basculer avec Excel 2010 meme le format de mes cellulles

    ta methode de recherce de fichier est impecable je l'ai testé toute seul elle marche à merveille

    sinon meme l'affichage de mes celllule il a changé sur Excel 2010

    exemple

    50000 en excel 2003

    devient 00000050000.000000 en excel 2010

  7. #7
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 27
    Par défaut
    en faite le fichier avec Excel 2010 devient bordelique

    les espece de 000000050000 c'est des chaines de caractere

    mais ce qui est bizarre c'est qu'il y a des nbre qui sont resté de type nombre et des nombre qui son devenu des chaines de caractere avec plein de 00000

Discussions similaires

  1. Ouvrir un fichier CSV sur un QTableWidget
    Par lekev262 dans le forum PyQt
    Réponses: 0
    Dernier message: 01/08/2014, 22h17
  2. [AC-2007] Comment simplifier ma requête en SQL ? car elle ne rentre pas dans l'éditeur
    Par Debutant10 dans le forum Requêtes et SQL.
    Réponses: 28
    Dernier message: 21/07/2011, 01h41
  3. [XL-2003] Rédiger une macro dans un classeur à partir d’une macro d'un autre classeur
    Par Roms un dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/11/2009, 15h44
  4. Réponses: 6
    Dernier message: 20/12/2007, 15h04
  5. Comment ouvrir un fichier.csv ou un fichier.txt séparateur ";"
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/03/2007, 01h27

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