Dispacher des onglets

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 !

mcj1997

XLDnaute Accro
Bonjour,

En PJ fichier que j'ai trouvé sur ce site permettant de dispacher en onglets les valeurs de la colonne A. Je recherche à aménager la macro :
- afin d'avoir un message demandant la colonne sur laquelle il faut que les onglets se crééent.


Merci d'avance,
 

Pièces jointes

Re : Dispacher des onglets

Bonjour à tous,

Peux-tu essayer en insérant ceci en début de code :

VB:
Sub Dispatcher()
    Dim VnomOnglet As String
    Dim Col%
    Col = InputBox("Quelle est la colonne à dispatcher", "Choix", 1)
    Cells(1, Col).Select
'.....

A + à tous
 
Re : Dispacher des onglets

Je viens d'essayer, cela fonctionne partiellement, en effet si par exemple je demande la colonne 4 cela va effectivement créer des onglets avec les noms de la colonne 4 sans rappatrier dans les onglets les infos sur se trouvant sur les lignes.

Ex : dans l'onglet anémone il faut une ligne avec : 73013066 FR 7301754383

Merci d'avance


Cordialement,
 
Re : Dispacher des onglets

Bonjour à tous,

Ton code ne le faisait pas non plus...

Voir le fichier joint avec quelques rajouts :

VB:
Sub Dispatcher()    Dim VnomOnglet As String
    Dim Col%, NBCol%
    Dim Rep As String
    NBCol = Feuil1.UsedRange.Columns.Count
    
    Rep = MsgBox("Voulez-vous effacer les onglets", vbYesNo, "Effacement des onglets")
    If Rep = vbYes Then Call SupOnglet
    
    On Error Resume Next
    Col = InputBox("Quelle est la colonne à dispatcher ?", "Choix", 1)


    If Col > NBCol Then
        MsgBox "Le nombre de colonnes est de " & NBCol & Chr(10) & "Vous ne pouvez pas demander " & Col & "...", vbCritical, "Oups..."
        Exit Sub
    End If


    Application.ScreenUpdating = 0
    Cells(1, Col).Select
    Range(Selection, Selection.End(xlDown)).Select
    For Each vcell In Selection
        VnomOnglet = vcell.Value
        vcell.Offset(0, 1 - Col).Range("A1:D1").Select
        Selection.Copy
        'si l'onglet existe
        If FeuilExiste(VnomOnglet) Then
            'si l'onglet 'existe pas
            Sheets(VnomOnglet).Select
            ActiveCell.Offset(1, 0).Range("A1").Select
        Else
            Sheets.Add after:=Feuil1
            ActiveSheet.Name = VnomOnglet
        End If
        ActiveSheet.Paste
        Sheets("Données").Select
    Next
    Application.CutCopyMode = False
    Range("A1").Select
End Sub


Sub SupOnglet()
    Application.DisplayAlerts = 0
    For Each Sheet In Sheets
        If Sheet.Name <> "Données" Then Sheets(Sheet.Name).Delete
    Next
    Application.DisplayAlerts = 1
    ActiveWorkbook.Save
End Sub


Function FeuilExiste(F As String) As Boolean
    On Error Resume Next
    FeuilExiste = Not Sheets(F) Is Nothing
End Function

A + à tous
 

Pièces jointes

Re : Dispacher des onglets

Bravo, vraiment super par contre je souhaite mettre cette macro dans vba perso afin de pouvoir m'en servir avec n'importe quel fichier, après un essai j'ai un message qui me dit que je n'ai qu'une colonne lorsque je rentre un numéro de colonne et si j'essaie en renseignant 1 cela ne fonctionne pas.

Aussi j'aimerai pouvoir recopier sur chaque onglet la première ligne de la feuille de données qui contient les titres des colonnes et que les bonnes largeurs des colonnes se mettent automatiquement.

Merci d'avance,
 
Dernière édition:
Re : Dispacher des onglets

Bonjour à tous,

Le code prend en compte le nombre de colonnes en ligne 1.
Il envoie un message d'erreur si tu souhaites ventiler sur une colonne qui n'existe pas et la sortie du code est automatique...

A + à tous
 
Re : Dispacher des onglets

Je ne comprends pas je recopie exactement la même macro que vous dans le module dans VBAperso et lorsque je lance la macro et que je demande le tri sur la colonne 3, j'ai le message suivant : "Le nombre de colonnes est 1 Vous ne pouvez pas demander 3..."

Merci d'avance



Bonjour à tous,

Le code prend en compte le nombre de colonnes en ligne 1.
Il envoie un message d'erreur si tu souhaites ventiler sur une colonne qui n'existe pas et la sortie du code est automatique...

A + à tous
 
Re : Dispacher des onglets

Bonjour à tous,

Le nombre de colonnes est déterminé par le nombre de valeurs présentes en LIGNE 1 de la première feuille (Feuil1)...

A+ à tous

Bonjour,

Ce sont des fichiers au bureau qui ne comportent pas de "feuil1" et la seule feuille je la nomme "Données" afin que la macro fonctionne. Le problème doit venir de là, dois-changer quelque chose dans la macro afin de contourner le problème car mon but est bien d'avoir cette macro en dur dans excel (vba perso) afin de m'en servir avec n'importe quel fichier.

Merci d'avance,
 
Re : Dispacher des onglets

Bonjour à tous,

Peux-tu cliquer sur l'mage ?
Tu auras le Name et le CodeName de ta feuille active.

Dans le fichier que je t'ai proposé, j'utilise le CodeName. Tu peux ainsi modifier le nom de l'onglet dans Excel sans modifier le code.

A + à tous

Bonsoir,

Si j'enregistre le code dans le VBA(Project) du fichier que j'utilise ce fonctionne mais :

1) si je copie le code dans le VBAProject(PERSO.XLS)
2) j'ouvre le fichier lequel je souhaite trier les onglets
3) j'actionne la macro qui se trouve alors dans le VBAProject(PERSO.XLS), j'ai bien la question si je souhaite effacer les onglets mais lorsque je répond à la question nombre de colonne si je mets 3 par exemple, j'ai le message qui me dit que je n'ai qu'une colonne !

Je ne sais pas comment faire, le but étant bien d'avoir la macro en permanence dans le vbaproject(perso.xls) afin de l'utiliser avec n'importe quel fichier.

Merci d'avance,
 
Re : Dispacher des onglets

Bonsoir,

Si j'enregistre le code dans le VBA(Project) du fichier que j'utilise ce fonctionne mais :

1) si je copie le code dans le VBAProject(PERSO.XLS)
2) j'ouvre le fichier lequel je souhaite trier les onglets
3) j'actionne la macro qui se trouve alors dans le VBAProject(PERSO.XLS), j'ai bien la question si je souhaite effacer les onglets mais lorsque je répond à la question nombre de colonne si je mets 3 par exemple, j'ai le message qui me dit que je n'ai qu'une colonne !

Je ne sais pas comment faire, le but étant bien d'avoir la macro en permanence dans le vbaproject(perso.xls) afin de l'utiliser avec n'importe quel fichier.

Merci d'avance,
Bonsoir,

J'ai essayé aujourd'hui sur mon ordinateur au bureau et c'est le même problème, comment faire ?

merci d'avance,
 
- 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

Discussions similaires

Réponses
43
Affichages
764
Réponses
2
Affichages
176
Réponses
5
Affichages
271
Réponses
4
Affichages
215
Réponses
4
Affichages
328
Retour