Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2011, 12h01   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 1
Points : 0
Points : 0
Par défaut Export .csv Sélection et mise en forme des données

Bonjour,

Voilà, j'extrais de mon logiciel commercial un fichier .csv contenant de nombreuses informations mais dont certaines me sont inutiles. Le logiciel ne me permet malheureusement pas d'extraire uniquement les données qui m'intéressent. J'illustre :

Import du fichier .csv vers .xls :
(colonnes) A B C D E F G

Les données qui m'intéressent :
(colonnes) B D E F
(et même plutôt) F B D E

Je ne suis pas informaticienne mais je peux essayer de comprendre si on m'explique Donc existe-t-il une macro qui puisse me permettre :
- d'extraire certaines colonnes de mon fichier seulement?
- de modifier l'ordre des colonnes exportées?
- de créer puis conserver la mise en page de mon fichier récepteur?
(couleur, format entête, mise en forme conditionnelle, ex : si(non) vide = jaune))

Je vais devoir faire des mises à jour régulière de ce fichier avec un nouveau nombre de données à intégrer à chaque fois. L'avantage, c'est que je n'ai pas à toucher à ces informations, c'est du consultatif...

J'espère avoir été claire dans mes explications

Merci de vos conseils avisés.

Julie
julie13or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 12h33   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour Julie et bien venue sur le Forum


Mettre ton fichier dans un dossier

Une piste

Code :
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
Option Explicit
'Avec référence microsoft DAO 3.6 Object Library
 
                            Dim Donneestxt                      As DAO.Database
 
                            Dim Appli                           As Object
                            Dim Creation                        As Object
 
                            Dim Chemin                          As String
                            Dim NomFichier                      As String
                            Dim TexteRequete                    As String
                            Dim Requete                         As Recordset
Sub test()
    Chemin = "C:\......\" ' a adapter
    NomFichier = "LenomDuFichier.csv" ' a adapter
 
' Création de la base
' ton dossier désigné par la variable Chemin devient la base
' et chaque fichier texte présent dans ton dossier devient une table
    Set Donneestxt = DAO.OpenDatabase(Chemin, False, False, "Text;Database=" & Chemin)
 
    Set Appli = CreateObject("Scripting.FileSystemObject")
' Création du schema.ini pour déclaration du séparateur et des entêtes colonne
' ce fichier est lut dés la création de ta base(Donneestxt) et va initialiser tes tables
    Set Creation = Appli.CreateTextFile(Chemin & "schema.ini", True)
    Creation.Write "[" & NomFichier & "]" & vbCrLf
    Creation.Write "Format=Delimited(;)" & vbCrLf
    Creation.Write "ColNameHeader = True"
    Creation.Close
'Création du Sql
    TexteRequete = "SELECT F, B, D, E" & _
                        "FROM [" & NomFichier & "]" ' création du Sql
' éxécute la requête
    Set Requete = Donneestxt.OpenRecordset(TexteRequete, DAO.dbOpenSnapshot)
    ' renvoi du résultat de la requête
    Sheets("Feuil1").Range("A2").CopyFromRecordset Requete ' adapter pour le nom de la feuille
 
' On ferme et on déinstancie
    Creation.Close
    Set Creation = Nothing
    Requete.Close
    Set Requete = Nothing
End Sub
Pour déclarer la référence Microsoft DAO 3.6 Object Library

Dans Visual Basic (Fait Alt - F11)
Outil>Référence
et Cherche et coche
Microsoft DAO 3.6 Object Library

Pour le cosmétique (mise en forme des données dans ta feuille), je te laisse faire

Bon courage
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h36.


 
 
 
 
Partenaires

Hébergement Web