Scinder une tableau Excel en plusieurs onglets

Bonjour,

Novice en VBA, je cherche désespérément à faire une macro pour automatiser le travail que j'ai à faire, à savoir scinder mon tableau excel en autant d'onglets que d'infos contenues dans ma colonne A. En clair : faire un premier onglet où je trouverai toutes les données où "SUIVEUR CRM" = "Adrien MALARD", etc.

J'ai trouvé des macros sur le sujets, mais je n'arrive pas à les adapter à mon besoin.

Pourriez vous m'aider à trouver la macro qui va bien ?

je vous mets mon fichier en pj

un grand merci pour votre aide :-)

Bonjour,

Ton classeur comprend apparemment des données personnelles !

Supprime le rapidement.

Cdlt.

Merci pour l'info, je me suis effectivement trompée dans mon fichier.....

j'ai pas la main pour supprimer mon post....

20export-test-2.xlsx (10.37 Ko)

voici le bon fichier.

merci pour l'aide

Bonjour,

Voici un essai avec un tableau structuré nommé "Base" sur la feuille de départ nommée "Base" également. Pour l'instant, la macro exécute au début une autre macro (Call Supprimer) qui réinitialise le fichier en supprimant tous les onglets et en les recréant par la suite. Il est possible d'effacer (ou de passer en commentaire) cette ligne mais alors, toute nouvelle exécution de la macro Scinder ajoutera les données à celles existantes au lieu de les "mettre à jour".

57export-test-2.xlsm (31.54 Ko)

Cdlt,

Bonjour,

un grand merci ! c'est vraiment super !!!!!

Je vous en prie !

Testez bien quand même sur une copie de votre fichier... Il y avait dessus plein de petits cas particuliers un peu bloquant (tirets, apostrophes, vides dans la première colonne...).

Cdlt,

Salut Lorounette,
Salut les as,

je ne transmets que la macro, à coller dans le module VBA de la première feuille, destinée à recevoir ton import de données à scinder.
Ne pas oublier d'enregistrer ton fichier au format XLSM !

@3GB : je ne sais pas si tu as pu télécharger le fichier originel (supprimé depuis), mais plusieurs noms de la liste en colonne [A:A] comportent des "vides", appartenant ici à A... qui n'en sont pas vraiment.
La commande iRow = Range("A" & x + 1).End(xlDown).Row me projetait en fin de fichier sauf à effacer la cellule... vide !!

image

Je me suis cassé la tête dessus sans parvenir à déterminer leur vraie nature d'où la première boucle de remplissage de ma macro.

La macro démarre par un double-clic sur cette première feuille.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim iRow%, iCol%, sItem$
'
Cancel = True
Application.ScreenUpdating = False
'
iCol = Cells(1, Columns.Count).End(xlToLeft).Column
tTab = Range("A1").CurrentRegion.Value
For x = 1 To UBound(tTab, 1)
    If tTab(x, 1) = "" Then tTab(x, 1) = tTab(x - 1, 1)
Next
Range("A1").CurrentRegion.Value = tTab
For x = 2 To Range("A" & Rows.Count).End(xlUp).Row
    sItem = Range("A" & x).Value
    iRow = Columns(1).Find(what:=sItem, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Row
    Worksheets.Add(after:=Sheets(Sheets.Count)).Name = sItem
    With Worksheets(sItem)
        .Range("A1").Resize(1, iCol).Value = Range("A1").Resize(1, iCol).Value
        .Range("A2").Resize(iRow - x + 1, iCol).Value = Range("A" & x).Resize(iRow - x + 1, iCol).Value
    End With
    x = iRow
Next
'
Application.ScreenUpdating = True
'
End Sub


A+

Salut Curulis,

Oui, justement, comme je viens d'écrire à l'instant, j'ai vu le premier fichier et il y avait ces vides plus des caractères enquiquinant pour les noms de tableaux structurés...

J'ai donc créé une section spéciale...

Cdlt,

Bonjour à tous !

C'est re-moi ! Je souhaite ré-utiliser la macro pour scinder d'autres tableaux, et forcément mes intitulés de colonnes changent à chaque fois... Je n'arrive pas à trouver dans ma macro où faire les modifs pour qu'il prenne en compte les nouveaux intitulés.

Je vous mets mon fichier en pj. je veux scinder le fichier sur la base de la colonne A, qui ne s'appelle plus "SUIVEUR CRM" mais "EQUIPE".

j'ai le même problème sur un autre tableau, où la colonne sur laquelle se fier pour scinder s'appelle "CONSULTANT"

Merci pour votre aide

16test.xlsm (25.21 Ko)

Bonjour,

Le code peut sûrement être amélioré mais il ne dépend pas pour l'instant du nom de la colonne, juste du nom du tableau, qui doit s'appeler Base.

Le problème, c'est qu'il y a création de tableau structuré et je crois que leur nom ne peut pas commencer par un chiffre...

Pouvez-vous essayer en modifiant ainsi cette ligne :

nom = "T_" & Replace(Replace(Replace(IIf(.Cells(i, 1) = "", "NR", .Cells(i, 1)), " ", "_"), "-", "_"), "'", "")

Cdlt,

Bonjour,

merci pour votre aide. Je suis très novice, et j'avoue que je ne sais pas du tout où il faut que j'insère ce bout dans ma macro...

Il faut remplacer la ligne où nom est affectée. Il y a une ligne nom = .... (il n'y en a qu'une seule). Vous rajoutez "_" & devant le replace et ça devrait être bon.

Il faut pas avoir peur de faire des essais !

Rechercher des sujets similaires à "scinder tableau onglets"