Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion lolo0013
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

lolo0013

Guest
Bonjour à tous

J’ai besoin d’aide, voici mon problème :
Je viens de reprendre la présidence d’une association, ou toute les fiches des membres (plusieurs centaine) son sous Excel .Le problème est que mon prédécesseur avait créé un fichier Excel par fiche !!!!
Le tous est quasiment inexploitable.
J’aimerai récupérer les donnes des fiches (elles ont toutes le même format) afin de créer un seul et unique fichier Excel sous la forme :
« Nom prénom adresse téléphone email »
« xxx xxxxx xxxxx xxxxxx xxxxx »
« yyy yyyyy yyyyy yyyyyy yyyyy »

Merci d'avance
 
Re : données excel

Bonjour lolo,

C'est une excellente idée de regrouper tes données en liste.
Il te faudra passer par une macro, mais pour t'aider à la faire, il va nous falloir plus de précisions sur le format commun des fiches (nom du classeur, nom de la feuille, cellules contenant les données) et sur le classeur qui contiendra ta liste.
D'autre part, la macro devra-t-elle ouvrir chaque classeur, récupérer les données, fermer le classeur ou doit-on considérer que tous les classeurs concernés seront ouverts ?
 
Re : données excel

Le nom des fichiers correspond au nom des membres.
ci joint la fiche type et et la disposition finale souhaité.
la macro devra ouvrir chaque classeur, récupérer les données et le fermer
 

Pièces jointes

Re : données excel

encore de petites questions :
tes fiche type.xls se trouvent toutes dans le même dossier ?
quelle est le modèle de leur nom ? fiche type NomDuMembre.xls ?
les feuilles contenant les données des fiche type se nomment bien Feuil1 ?
la feuille contenant la liste à créer se nomme bien Feuil1 ?
 
Re : données excel

Voilà ce que je te propose :
Tu ne garde que le fichier fiche final.xls ouvert
Dans le fichier fiche final.xls, tu ne garde que les noms de colonnes de ta future liste.
Tu affiche l'éditeur Visual Basic (Menu Outils - Macros - Visual Basic Editor)
Tu insères un module (Menu Insertion - Module)
Dans la fenêtre blanche, tu colle le code suivant :
Code:
Sub CréeListe()
Dim FSo As FileSearch, Dossier As String, Wkb As Workbook
Dim Nom As String, Prénom As String, Adresse As String, Adresse2 As String, Téléphone As String
Dim Mail As String, DateInsc As Date
    Dossier = "C:\temp"
    Set FSo = Application.FileSearch
        With FSo
        .NewSearch
        .LookIn = Dossier
        .Filename = "fiche type*.xls"
            If .Execute() > 0 Then
                For i = 1 To .FoundFiles.Count
                   Set Wkb = Workbooks.Open(.FoundFiles(i))
                   Nom = Wkb.Worksheets("Feuil1").Range("F9").Value
                   Prénom = Wkb.Worksheets("Feuil1").Range("F10").Value
                   Adresse = Wkb.Worksheets("Feuil1").Range("F13").Value
                   Adresse2 = Wkb.Worksheets("Feuil1").Range("F14").Value
                   Téléphone = Wkb.Worksheets("Feuil1").Range("F16").Value
                   Mail = Wkb.Worksheets("Feuil1").Range("F17").Value
                   DateInsc = CDate(Wkb.Worksheets("Feuil1").Range("F9").Value)
                   Wkb.Close False
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 1).Value = Nom
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 2).Value = Prénom
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 3).Value = Adresse & " " & Adresse2
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 4).Value = Téléphone
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 5).Value = Mail
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 6).Value = DateInsc
                Next i
            End If
        End With
End Sub
Le code est sans doute à adapter un peu... 🙄
Tu ferme l'éditeur visual basic (croix tout en haut à droite)
tu vas dans le Menu Outils - Macro - Macros
tu sélectionne CréeListe
tu clique sur éxecuter...
😀
 
Re : données excel

oui ,les fiches NomDuMembre.xls se trouvent toutes dans le même dossier.
le modèle de leur nom est NomDuMembre.xls .
les feuilles contenant les données des fiches type se nomment sheet1 .
la feuille contenant la liste à créer se nomme Feuil1 .
 
Re : données excel

alors on a un petit problème :
si les fichier type.xls n'ont pas de nom reconnaissable (car chaque membre a un nom différent), il faudra alors qu'ils soient seuls dans un dossier. Dossier que tu définira au début du code...
 
Re : données excel

Version corrigée :
Tu ne garde que le fichier fiche final.xls ouvert
Dans le fichier fiche final.xls, tu ne garde que les noms de colonnes de ta future liste.
Tu affiche l'éditeur Visual Basic (Menu Outils - Macros - Visual Basic Editor)
Tu insères un module (Menu Insertion - Module)
Dans la fenêtre blanche, tu colle le code suivant :
Code:
Sub CréeListe()
Dim FSo As FileSearch, Dossier As String, Wkb As Workbook
Dim Nom As String, Prénom As String, Adresse As String, Adresse2 As String, Téléphone As String
Dim Mail As String, DateInsc As Date
    Dossier = "C:\temp" [COLOR="Red"]'C'est ici que tu devra mettre le chemin de ton dossier[/COLOR]
    Set FSo = Application.FileSearch
        With FSo
        .NewSearch
        .LookIn = Dossier
        .Filename = [COLOR="red"]"*.xls"[/COLOR]
            If .Execute() > 0 Then
                For i = 1 To .FoundFiles.Count
                   Set Wkb = Workbooks.Open(.FoundFiles(i))
                   Nom = Wkb.Worksheets("Feuil1").Range("F9").Value
                   Prénom = Wkb.Worksheets("Feuil1").Range("F10").Value
                   Adresse = Wkb.Worksheets("Feuil1").Range("F13").Value
                   Adresse2 = Wkb.Worksheets("Feuil1").Range("F14").Value
                   Téléphone = Wkb.Worksheets("Feuil1").Range("F16").Value
                   Mail = Wkb.Worksheets("Feuil1").Range("F17").Value
                   DateInsc = CDate(Wkb.Worksheets("Feuil1").Range("F9").Value)
                   Wkb.Close False
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 1).Value = Nom
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 2).Value = Prénom
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 3).Value = Adresse & " " & Adresse2
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 4).Value = Téléphone
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 5).Value = Mail
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 6).Value = DateInsc
                Next i
            End If
        End With
End Sub
Dis-moi si tu y arrives...😉
 
Re : données excel

OUPS, j'ai oublié de changer quelque chose :
Code:
Sub CréeListe()
Dim FSo As FileSearch, Dossier As String, Wkb As Workbook
Dim Nom As String, Prénom As String, Adresse As String, Adresse2 As String, Téléphone As String
Dim Mail As String, DateInsc As Date
    Dossier = "C:\temp" [COLOR="Red"]'C'est ici que tu devra mettre le chemin de ton dossier[/COLOR]
    Set FSo = Application.FileSearch
        With FSo
        .NewSearch
        .LookIn = Dossier
        .Filename = [COLOR="red"]"*.xls"[/COLOR]
            If .Execute() > 0 Then
                For i = 1 To .FoundFiles.Count
                   Set Wkb = Workbooks.Open(.FoundFiles(i))
                   Nom = Wkb.Worksheets[COLOR="Red"]("Sheet1").[/COLOR]Range("F9").Value
                   Prénom = Wkb.Worksheets("[COLOR="red"]Sheet1[/COLOR]").Range("F10").Value
                   Adresse = Wkb.Worksheets("[COLOR="red"]Sheet1[/COLOR]").Range("F13").Value
                   Adresse2 = Wkb.Worksheets("[COLOR="red"]Sheet1[/COLOR]").Range("F14").Value
                   Téléphone = Wkb.Worksheets("[COLOR="red"]Sheet1[/COLOR]").Range("F16").Value
                   Mail = Wkb.Worksheets("[COLOR="red"]Sheet1[/COLOR]").Range("F17").Value
                   DateInsc = CDate(Wkb.Worksheets("[COLOR="red"]Sheet1[/COLOR]").Range("F9").Value)
                   Wkb.Close False
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 1).Value = Nom
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 2).Value = Prénom
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 3).Value = Adresse & " " & Adresse2
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 4).Value = Téléphone
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 5).Value = Mail
                   ThisWorkbook.Worksheets("Feuil1").Cells(i + 1, 6).Value = DateInsc
                Next i
            End If
        End With
End Sub
 
Re : données excel

j'ai teste mais la macro me donne le message d'erreur suivant:

(cet objet ne gère pas cette action)
à la ligne :
Set FSo = Application.FileSearch
 
Re : données excel

C'est pourtant les même que chez moi.... à une différence prêt : tu est en Excel 2007, n'est-ce pas ? moi je suis en 2003 et je ne connais pas bien les subtilités du 2007.
J'espère que Microsoft n'a pas supprimé les recherches de fichiers avec Office 2007...
Fouille peut-être sur le forum spécialisé Excel 2007 pour voir s'il n'y a pas d'info sur le sujet.
 
Re : données excel

file Search ne fonctionne effectivement plus sous excel 2007

Ce lien n'existe plus

je vais reinstaller mon vieux excel 2003

encore merci pour ton aide

a+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

T
Réponses
2
Affichages
7 K
T
C
Réponses
1
Affichages
684
M
Réponses
7
Affichages
2 K
matt60000
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…