Macro récupérer des données dans # feuilles

Résolu/Fermé
wanajo38 Messages postés 137 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 février 2015 - 20 avril 2011 à 15:05
wanajo38 Messages postés 137 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 février 2015 - 21 avril 2011 à 08:37
Bonjour,

Alors voilà, j'ai besoin d'aide car je maîtrise assez bien Excel 2007 mais malheureusement pas vraiment les macros.

Je souhaite créer un tableau sur Excel qui me serve de base de données clients (très simplifier, nom prénoms et adresse) à partir d'un fichier déjà existant mais inexploitable en l'état. En effet, ce fichier contient une facture par onglet, avec le nom en A1 , l'adresse en B1, B2, B3 et B4. Le but serait de créer une macro pour que ça récupère ces données et les mette dans un tableau dans une nouvelle feuille. J'ai essayé d'utiliser des références relatives mais je n'arrive pas à expliquer à Excel qu'il faut à chaque fois choisir les données dans la feuille suivante à droite et les mettre sur la ligne en dessous dans le nouveau tableau.

Votre aide me serait d'un grand secours, ça éviterai de tout ressaisir à la main (4000 clients environ, ça va être long).

Merci d'avance
A voir également:

2 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
Modifié par gbinforme le 20/04/2011 à 23:14
bonjour

Avec les informations que tu donnes, en supposant que ta "base de données clients" soit sur l'onglet "base" tu devrais regrouper tes données ainsi :

Public Sub regroupe() 
Dim f As Integer, wb As Worksheet 
Set wb = Sheets("base") 
For f = 1 To Sheets.Count 
    If Sheets(f).Name <> wb.Name Then 
        wb.Cells(f + 1, 1).Value = Sheets(f).Range("A1").Value 
        wb.Cells(f + 1, 2).Value = Sheets(f).Range("B1").Value 
        wb.Cells(f + 1, 3).Value = Sheets(f).Range("B2").Value 
        wb.Cells(f + 1, 4).Value = Sheets(f).Range("B3").Value 
        wb.Cells(f + 1, 5).Value = Sheets(f).Range("B4").Value 
    End If 
Next f 
End Sub 

Toujours zen
1
wanajo38 Messages postés 137 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 février 2015 61
21 avril 2011 à 08:37
Merci mille fois, j'ai adapté ça à mes données et ça fonctionne parfaitement ;)
0