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

Résolu
wanajo38 Messages postés 149 Statut Membre -  
wanajo38 Messages postés 149 Statut Membre -
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

--
Wanajo38

2 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  2. wanajo38 Messages postés 149 Statut Membre 62
     
    Merci mille fois, j'ai adapté ça à mes données et ça fonctionne parfaitement ;)
    0