Données excel dans pls onglet

Données excel dans pls onglet - Logiciels - Windows & Software

Marsh Posté le 05-01-2007 à 15:17:09    

Bonjour, afin d'éviter de très longue manip, je voudrais savoir s'il existe une fonction ou une commande de macro qui puisse me permettre le traitement suivant :::
 
j'ai un énorme tableau dans access, que je voudrais "découper" selon un certain critère (qui se trouve dans une colonne) et que ce découpage exécute la repartition dans les différents onglets avec le nom du critère sur l'onglet...  
 
Possible ça ????
 
 
Merci

Reply

Marsh Posté le 05-01-2007 à 15:17:09   

Reply

Marsh Posté le 05-01-2007 à 15:47:02    

un ptit yup...c'est urgent :/

Reply

Marsh Posté le 05-01-2007 à 18:51:51    

Bonsoir,
Si c'est avec excel et non access, ceci peut probablement convenir.
On suppose que les onglets n'existent pas au départ.
 
Sub recfil()
'ADAPTE d'une réponse sur le forum
    'On suppose que le filtre s'applique sur la colonne H
    'et que le premier worksheet s'appelle "origin2004"
     
    Dim Cell As Range
    Dim Unique As New Collection
    Dim Valeur As Range
    Dim i As Integer
    Application.ScreenUpdating = False
    Set w = Worksheets("origin2004" )
    w.Select
      w.AutoFilterMode = False
    'Récupère la derniere ligne non vide dans la colonne A
    i = Range("H65536" ).End(xlUp).Row
     
    On Error Resume Next
    'boucle sur les cellules de la colonne A
    For Each Cell In Range("H2:H" & i)
    If Not Cell.EntireRow.Hidden Then Unique.Add Cell, CStr(Cell)
        'Stocke les données dans une collection
        '(La collection n'accepte que des données uniques et permet donc
        ' de filtrer facilement les doublons).
        'Unique.Add Cell, CStr(Cell)
    Next Cell
    On Error GoTo 0
     
    'Boucle sur le contenu de la collection pour créer les onglets
     
    For Each Valeur In Unique
    w.AutoFilterMode = False
    w.Range("H:H" ).AutoFilter field:=1, Criteria1:=Valeur
    Sheets.Add
    ActiveSheet.Name = Valeur
    nomsh = Valeur
    Sheets("origin2004" ).Rows.Copy Sheets(nomsh).Range("a1" )
    Next Valeur
     
    Application.ScreenUpdating = True
End Sub
Cordialement

Reply

Marsh Posté le 08-01-2007 à 09:35:23    


 
Superbe....Tout simplement Merci, j'ai changé les variables et tout fonctionne parfaitement...Le genre de manip qui évite une voir plusieurs heures de taff...
 
 :bounce:


Message édité par TheFreeMarmote le 08-01-2007 à 09:35:45
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed