XL 2019 Création automatique des onglets en fonction de critères

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 !

rmjunivers

XLDnaute Junior
bonjour et bonne année 2021!

je suis un amateur d'Excel, j'ai un souci et je sollicite votre aide.

en effet j'ai un fichier Excel avec une colonne qui contient des informations que je souhaite scinder par onglet regroupés par type d'informations.

la colonne à regrouper c'est "C"
merci de votre aide en attache le fichier.
 

Pièces jointes

Bonjour à tous,

Si joint un début de piste par TCD

Tu peux en créer d'autres suivant tes critères mais en colonne "C" il y a 43 noms différents.
J'ai supprimé beaucoup de lignes au tableau car trop volumineux pour un envoi sur le forum.
Il te suffit de recopier les lignes manquantes à la suite du tableau.

JHA
 

Pièces jointes

Bonjour Rmjunivers, JHA,
En PJ un essai avec ce que j'ai compris :
Pour chaque nom de DESC_READING_CENTER, on créé un onglet où on range que les données concernant ce centre.
Le bouton "Supprime les onglets" permet de tout supprimer pour obtenir un fichier léger, sinon il est assez lourd avec tous ces onglets.
 

Pièces jointes

Voilà, avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [C2:C1000]) Is Nothing Then
        If Target = "" Then Exit Sub
        NomOnglet = Target.Value
        Sheets(NomOnglet).Select
        Sheets(NomOnglet).Range("A1").Select
    End If
Fin:
End Sub
Et comme la question suivante va être "Comment faire quand on est sur un onglet pour revenir sur l'onglet principal, car j'ai beaucoup d'onglets ?" 🤣
Il suffit de d'appuyer sur la touche "²" ( qui généralement ne sert quasiment à rien ) avec :
Code:
Sub Workbook_Open()
     Application.OnKey "²", "ActiveOnglet"
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
     Application.OnKey "²"
End Sub
et
Sub ActiveOnglet()
    Sheets("Onglets").Select
End Sub
 

Pièces jointes

Voilà, avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [C2:C1000]) Is Nothing Then
        If Target = "" Then Exit Sub
        NomOnglet = Target.Value
        Sheets(NomOnglet).Select
        Sheets(NomOnglet).Range("A1").Select
    End If
Fin:
End Sub
Et comme la question suivante va être "Comment faire quand on est sur un onglet pour revenir sur l'onglet principal, car j'ai beaucoup d'onglets ?" 🤣
Il suffit de d'appuyer sur la touche "²" ( qui généralement ne sert quasiment à rien ) avec :
Code:
Sub Workbook_Open()
     Application.OnKey "²", "ActiveOnglet"
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
     Application.OnKey "²"
End Sub
et
Sub ActiveOnglet()
    Sheets("Onglets").Select
End Sub
Bonjour @sylvanu,
Je sis novice dans le domaine des MACROS VBA,
J'ai 4 onglets,
Onglet (1) : je rentre mes informations
Onglet 2
Onlget 3
Onglet 4
Le but étant de faire une sélection multiple des onglets 2, 3 et 4 pour les imprimer derrière, mais la sélection des onglets est sous conditions qui se trouve en Onglet 1,
Onglet 1 :
Si cellule A1 = X
Si Cellule A2 = X
Si Cellule A3 = Z

la macro doit sélectionner juste l'onglet 2 et 3 à la fois et les imprimer,

J'arrive à faire une selection multiple mais pas sous condition,

Merci pour l'aide 🙂
 
Si le résultat est correct, pensez à mettre ce post en Résolu.
Pensez aux lecteurs futurs qui cherchent des solutions.
 
Bonjour Rmjunivers,
En PJ un essai où j'ai rajouté la suppression des lignes inutiles :
VB:
Sub SupprimerDESC_READING_CENTER(Nom)
' Supprime toutes les lignes non concernées par le DESC_READING_CENTER
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
    With .Columns(26)
        .FormulaR1C1 = "=IF(RC[-23]=" & Nom & ",0,1)"   ' Repère les lignes concernées
        .Value = .Value                                 'supprime les formules
        .EntireRow.Sort .Cells, xlDescending            'tri pour regrouper et accélérer
        On Error Resume Next                            'si aucune SpecialCell
        .SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete
        .EntireColumn.Delete                            'supprime la colonne auxiliaire
    End With
End With
With ActiveSheet.UsedRange: End With                    'actualise les barres de défilement
End Sub
 

Pièces jointes

Bonjour Rmjunivers,
En PJ un essai où j'ai rajouté la suppression des lignes inutiles :
VB:
Sub SupprimerDESC_READING_CENTER(Nom)
' Supprime toutes les lignes non concernées par le DESC_READING_CENTER
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
    With .Columns(26)
        .FormulaR1C1 = "=IF(RC[-23]=" & Nom & ",0,1)"   ' Repère les lignes concernées
        .Value = .Value                                 'supprime les formules
        .EntireRow.Sort .Cells, xlDescending            'tri pour regrouper et accélérer
        On Error Resume Next                            'si aucune SpecialCell
        .SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete
        .EntireColumn.Delete                            'supprime la colonne auxiliaire
    End With
End With
With ActiveSheet.UsedRange: End With                    'actualise les barres de défilement
End Sub
bonjour sylvanu et merci déjà pour ton aide,

j'ai essayé mais je me retrouve dans la même situation:
les onglets sont créés mais j'ai dans chaque onglet le contenu de l'onglet principal au de celui relatif au nom de l'onglet colonne "C"

je joins mon fichier.
 

Pièces jointes

- 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
4
Affichages
145
Réponses
3
Affichages
231
Réponses
4
Affichages
222
Retour