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 :

Question sur import fichiers [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut Question sur import fichiers
    Bonjour,

    Je dois créer une application excel qui permette, à partir de plusieurs fichiers, de créer un nouveau document excel suivant les données des autres fichiers.

    En gros je voudrais importer puis lire et enfin créer un nouveau document.

    Es-ce facile et long à créer?

    Je ne trouve pas la commande qui permette de demander le document (genre boite de dialogue)...

    Merci pour votre aide.

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

    D'abord c'est possible.

    Si c'est facile ? Cela dépend de tes connaissances sous Excel en VBA.

    Si c'est longe ? Tout dépend de la complexité de l'import, du type de fichier (est-ce un fichier Excel ou autre), est-ce qu'il y a des tris, des mises en formes sur les données à transférer.

    Donc il faut être plus précis pour que les membres du forum puissent t'aider là où tu bloques (et non tout faire pour toi).

    Philippe

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut
    Bonsoir,

    Oui en effet j'aurai peut être du le faire.

    En principe cela devrai être des fichiers excel qui sont des tableaux.

    Dedans il y aura plein de colonnes.
    Je devrais donc récupérer des données (pas toutes).

    Ma connaissance, cela fait bien 3 an que j'ai totalement laissé tomber le VBA.
    La j'essaye de m'y remettre et c'est assez dur.

    Merci.

    EDIT : J'ai trouvé comment déjà ouvrir une boite de dialogue de fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Repertoire As FileDialog
     
        Set Repertoire = Application.FileDialog(msoFileDialogFilePicker)
        Repertoire.AllowMultiSelect = False
        Repertoire.Show
     
        If Repertoire.SelectedItems.Count > 0 Then
            MsgBox Repertoire.SelectedItems(1)
        End If
    Mais ce script il récupère le e document.
    Mais après pour l'ouvrir il le retrouvera ????
    Car en fait l'interface sera :

    +--------------------------------------------+
    + Sélection fichier 1 : CHOISIR FICHIER +
    + Sélection fichier 2 : CHOISIR FICHIER +
    + BOUTON TRAITEMENT +
    +--------------------------------------------+

    On peut donc le mettre le résultat dans une cellule et ensuite le récupérer lors du traitement ?

    Merci

    Bonjour,

    J'ai trouvé presque tous ce qu'il me fallait :
    - Importer fichier
    - Traiter
    - Ouvrir un document nouveau

    Par contre question : j'ai créer finalement une "Boîte de dialogue". Comment faire pour qu'elle s'ouvre automatiquement dès l'ouverture de excel ? Et que donc s'affiche qu'elle ?



    Merci

  4. #4
    Membre expérimenté Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Points : 1 482
    Points
    1 482
    Par défaut
    Bonjour
    Essaie ça

    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
    Sub Module01ImportFichierSélectionné()
     
    Set Destination = ActiveWorkbook
     
    Dim Msg, Style, Title, Help, Ctxt, Response, MyString, Msg1, Style1, Title1, Help1, Ctxt1, Response1, MyString1
    Msg = "Ouvrir le fichier  'Ton fichier'?"
    Style = vbYesNo + vbDefaultButton1
    Title = "Ouverture du fichier source"
    Response = MsgBox(Msg, Style, Title, Help, Ctxt)
     
    If Response = vbYes Then
        MyString = "Yes"
     
                Source = Application.Dialogs(xlDialogOpen).Show
                If Source = False Then
                MsgBox ("Aucun fichier sélectionné")
                Exit Sub
                Else
                Set Source = ActiveWorkbook
     
     
                Source.Activate
                Sheets(1).Select
                Cells.Select 'Feuille entièrement sélectionnée
                Selection.Copy
     
                Destination.Activate 'Fichier Onglet activé
                Sheets(1).Select 'Onglet activé
                Range("A1").Select
                Selection.PasteSpecial Paste:=xlPasteValues 'Collage spécial valeurs
     
                Source.Activate 'Fichier sélectionné activé
                Application.CutCopyMode = False
                ActiveWindow.Close SaveChanges:=False 'Fichier sélectionné fermé
                End If
     
    Else
    MyString = "No"
    MsgBox ("Aucun fichier sélectionné")
     
    Exit Sub
     
    End If
     
     'Call Module02 ton code à faire selon tes besoins
     
    End Sub

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut
    Bonsoir,

    En fait jene parlais pas de Dialog VBA mais j'ai créer une dans excel de Boite de dialogue (comme une feuille)...

    EDIT: En fait la j'ai presque fini mon code en premier lieu.
    Par contre j'ai un problème sur l'ouverture d'un nouveau fichier et la création d'une copie d'une feuille vers le nouveau fichier créer (mais non enregistré).

    Voilà ce que je fais :

    J'ai utilisé un "UserForm".
    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
    Public Function openNewCocument()
        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Dim xlSheet As Excel.Worksheet
     
        Set xlApp = CreateObject("Excel.Application")
        xlApp.SheetsInNewWorkbook = 1
        Set xlBook = xlApp.Workbooks.Add
     
        'On rend le classeur visible
        xlApp.Visible = True
     
        Set xlSheet = xlBook.Worksheets(1)
        xlSheet.Name = "Donnees"
     
        ThisWorkbook.Sheets("Donnees").Range("A1:Z100").Copy
        xlSheet.Paste Destination:=Range("A1:Z100")
     
        xlSheet.Cells(6, 2).Value = 540
     
        Set xlSheet = Nothing
     
        xlApp.SheetsInNewWorkbook = 3
        'xlApp.Quit
    End Function
    Il plante sur le "Paste" en me disant que c'est pas le même indice....

    Je ne vois pas du tout d'ou viens le problème.

    Merci

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut
    Bonjour,

    J'ai modifié ma fonction, cette fois il copy bien mais ne le colle pas ! J(active pourtant la feuille, je séléctionne bien la zone.... non ?

    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
    Public Function openNewCocument()
    Cells.Select
    Selection.Copy
     
     
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
     
    Set xlApp = CreateObject("Excel.Application")
    xlApp.SheetsInNewWorkbook = 1
    Set xlBook = xlApp.Workbooks.Add
     
    xlApp.Visible = True
     
    Set xlSheet = xlBook.Worksheets(1)
    xlSheet.Name = "Donnees"
     
     
    xlSheet.Activate
     
    xlSheet.Select
     
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
     
    'xlSheet.Cells(6, 2).Value = 540
     
    Set xlSheet = Nothing
     
    'xlApp.SheetsInNewWorkbook = 3
    'xlApp.Quit
    End Function

  7. #7
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Pour enregistrer la feuille Donnees dans un nouveau fichier à créer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub CreeNouv()
    Application.ScreenUpdating = False
    ThisWorkbook.Sheets("Donnees").Copy
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\MonFichierCree.xls"
    Application.DisplayAlerts = True
    ActiveWorkbook.Close
    End Sub

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut
    Bonjour,

    Le fichier doit s'ouvrir mais pas s'enregistrer sur disque dur...

    Merci

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut
    Bonsoir,

    Voilà j'ai fini par trouvé, mais j'ai eu du mal. En fait c'étais tout simple :

    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
    Dim objWorkbookCible As Workbook
    Dim objworkbooksource As Workbook
     
    Set objworkbooksource = ActiveWorkbook
     
    Worksheets(1).Copy
     
    Set objWorkbookCible = ActiveWorkbook
     
    objWorkbookCible.Worksheets(1).Name = "Donnees"
     
    objWorkbookCible.Worksheets(1).Cells(6, 2).Value = "500"
     
    Application.Visible = True
     
    objworkbooksource.Activate
    ...sans enregistrer sur disque dur...

    Encore Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AIX] Une question sur les fichiers
    Par Bahan dans le forum AIX
    Réponses: 1
    Dernier message: 11/04/2007, 08h59
  2. [RegEx] Question sur les fichiers
    Par xdoreau dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2007, 09h55
  3. [XSLT] une question sur mon fichier XML
    Par delma dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 20/10/2006, 17h08
  4. Question sur accès fichier word depuis excel (VBA)
    Par jerome.grange dans le forum VBA Word
    Réponses: 6
    Dernier message: 22/09/2006, 17h34
  5. Questions sur les fichiers Ressource .RC .RES
    Par dexterz dans le forum Langage
    Réponses: 10
    Dernier message: 01/08/2005, 10h15

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