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/09/2011, 12h13   #1
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : -5
Points : -5
Par défaut Besoin d'aide Macro récupéré les mêmes données sur classeur fermé

Bonjour, je travail actuellement sur un fichier pour mon taff et je bloque sur une macro pour récupérer plusieurs données sur plusieurs classeurs différents fermé.

Je vous expliques :
Mon fichier principale effectue une enquête, sur différent produit.

J'ai donc envoyé le même questionnaire à plusieurs clients, ou les réponses ( valeurs ) ce situe dans les cellules suivantes : H5, D15,D16, E15,E16, C22,C23, D22,D23, E22,E23 .

J'aurais donc besoin d'une macro qui va chercher les valeurs dans les céllules : H5, D15,D16, E15,E16, C22,C23, D22,D23, E22,E23 de tout les fichiers excel dans le même répertoire.

Et qui les copie sur une feuil de mon fichier principal.

Merci d'avance pour les courageux qui vont tenter de m'aider
djinero est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/09/2011, 12h38   #2
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 704
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 704
Points : 3 625
Points : 3 625
Salut, voir http://silkyroad.developpez.com/VBA/ClasseursFermes/
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 12h44   #3
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : -5
Points : -5
Par défaut merci kiki

merci kiki j'ai deja lu ce doc très intéréssant ; j'ai opter pour :
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
Sub extractionValeurCelluleClasseurFerme()
    Dim Source As ADODB.Connection
    Dim Rst As ADODB.Recordset
    Dim ADOCommand As ADODB.Command
    Dim Fichier As String, Cellule As String, Feuille As String
 
    'Adresse de la cellule contenant la donnée à récupérer
    Cellule = "B4:B4"
      'Pour une plage de cellules, utilisez:
      'Cellule = "A4:C10"
 
    Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
    'Chemin complet du classeur fermé
    Fichier = "C:\Base.xls"
 
    Set Source = New ADODB.Connection
    Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
 
    Set ADOCommand = New ADODB.Command
    With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
    End With
 
    Set Rst = New ADODB.Recordset
    Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
 
    Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
 
    Range("A2").CopyFromRecordset Rst
 
    Rst.Close
    Source.Close
    Set Source = Nothing
    Set Rst = Nothing
    Set ADOCommand = Nothing
End Sub
Mais je ne sais pas comment lui faire comprendre qu'il doit prendre la même valeur sur tout les fichiers du répertoire.

Comme j'ai 200 fichiers et que ça peut varier en fonction des mois Je peux pas les inscrire dans la macro exemple c:\enquete1 , enquete2 etc....

Il existe pas une fonction pour faire comprendre a VBA de prendre toute les valeur de tout les classeurs dans un répertoire ?
djinero est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 28/09/2011, 10h26   #4
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : -5
Points : -5
Par défaut Collecter des informations sur un répertoire de classeur fermé

Je reviens encore pour solliciter votre aide, j'avais déjà poster un message similaire la semaine dernière de mémoire une personne au pseudonyme (kiki) m'avez répondu pour m'orienter dans mes recherches. Mais après une semaine de lecture et de compréhension en vain je n'arrive pas à obtenir le résultat désiré. Et je vois ma quantité de travail s'accumulé

Mon problème : je voudrais que sur mon fichier excel "Base CEP fluide frigorigène"
sur n'importe quelle feuille vierge, je puisse rapatrier une liste d'information sur tous les fichier excel présent dans le même répertoire. A savoir ce sont toujours les mêmes cellules que je doit rapatrier.
Exemple : copier dans mon un tableau tout les cellule A1 B1 B2 B3 B4... sur une feuille vierge de mon fichier "Base CEP fluide frigorigène"
Ça me dérange pas d'entrer toute les cellules si vous pouvez juste m'indiquer ou les écrires, mais si quelqu'un peut me taper la macro pour rapparier les information de tout les fichiers excel du répertoire ( les information ce trouve sur la feuil1) ça serait très gentil.

Pour info le chemin du répertoire ou sont placer tous les fichiers Excel est :
C:\Documents and Settings\fred\Mes documents\Enquete

Je reste connecté sur le forum pour vos questions. En remerciant par avance celui ou celle qui m'aidera.
Fichiers attachés
Type de fichier : rar Base CEP fluide frigorigène.rar (459,5 Ko, 4 affichages)
djinero est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 28/09/2011, 11h55   #5
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

la macro suivante scanne tous les classeurs contenus dans le dossier indiqué dans la variable Chemin. la copie se fait cellule par cellule. Dans la macro, la cellule C2 du classeur fermé est copiée en A1 du classeur cible :

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
Sub test1()
    Dim Chemin As String, Fichier As String, Ligne As Long
    Dim Feuilles, Sh As Worksheet, Tabl
    Chemin = "C:\Users\Daniel\Documents\Donnees\Daniel\mpfe\"
    Fichier = Dir(Chemin & "*.xls")
    Set Sh = Sheets.Add
    Do While Fichier <> ""
        ThisWorkbook.Names.Add "Plage", _
            RefersTo:="='" & Chemin & "[" & Fichier & "]DonnesU'!$A$1:$Z$100"
        With Sh
            .[A1:Z100] = "=Plage"
            .[A1:Z100].Copy
            .[A1:Z100].PasteSpecial xlPasteValues
            ' Tabl est un tableaureprésentant la zone A1:Z100 du classeur fermé en cours de traitement
            ' la première dimension représente le numéro de ligne
            ' et la seconde le numéro de colonne
            Tabl = .[A1:Z100]
            Cells.ClearContents
            Ligne = Ligne + 1
            Cells(Ligne, 1) = Tabl(2, 3) ' renseigne A1
            'etc.
        End With
        Fichier = Dir
    Loop
End Sub
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 12h13   #6
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : -5
Points : -5
Par défaut Remerciement

Un grand merciiii, une petite question je vois pas ou est situer l'information C2 et A1 dans ton code excuse pour m'on manque de connaissance lol
djinero est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 28/09/2011, 13h53   #7
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Il s'agit de cette ligne :

Code :
Cells(Ligne, 1) = Tabl(2, 3) ' renseigne A1
Tabl a été rempli avec la plage A1:Z100 du classeur fermé.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 15h06   #8
 
Inscription : septembre 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 7
Points : -5
Points : -5
Par défaut re

re bonjour, le problème et que ça n'affiche pas les valeurs sur une seul feuille. ça les affiches pas les une en dessous de l'autre. Je me suis peut être mal exprimé
djinero est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/10/2011, 15h40   #9
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,
Poste ton code car tu as forcément modifié le mien.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C 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 19h01.


 
 
 
 
Partenaires

Hébergement Web