Microsoft 365 Tri et saut de ligne

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 !

homernell

XLDnaute Occasionnel
Bonjour à tous,

Comment beaucoup je refuse chat gpt au profit de vous les humains, et d'ailleurs merci !

J'aimerai dans le fichier joint, faire du tri et éviter un saut de ligne à partir d'une base de données.
Tout est écrit dans le fichier pour les explications.

Merci d'avance.
 

Pièces jointes

bonsoir à toutes & à tous, bonsoir @job75 et @vgendron
puis... j'ai vu que ces lignes vides étaient en fait masquées
d'où le
Oups pas bien lu le fichier je n'ai rien dit 🙄
et ..
et pour le filtrage plutot que tri.. j'ai posé la question en #9.... pas eu de réponse...
un filtre pour exclure les lignes vides mais aussi un tri sur les horaires de sortie (pas dans le même ordre que les horaires d'entrée) pour cela il faut aller piocher dans un encart dans un des fichiers fournis
1731872222964.png



Bon je me suis attaqué au problème du tableau hebdomadaire toujours dans le même esprit :
Fonctions matricielles dynamiques et une macro juste pour l'import du fichier de données brutes.

C'est un peu plus coton que la demande initiale mais ça fonctionne !

Voir le fichier joint
 

Pièces jointes

Pour la mise en forme on peut se contenter de copier les formats de la feuille "Sheet1".

C'est alors très simple :
VB:
Sub Creer_jours()
Dim w As Worksheet, i&, lig&
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Sheets("Sheet1")
    For Each w In Worksheets
        If w.Name <> .Name Then w.Delete
    Next w
    For i = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Row
        If .Cells(i, 2).Text Like "##/##/####" Then
            Set w = Sheets.Add(After:=Sheets(Sheets.Count))
            ActiveWindow.DisplayGridlines = False 'masque le quadrillage
            w.Name = Format(CDate(.Cells(i, 2)), "dd-mm-yy")
            .Columns("B:AG").Copy w.Cells(1): w.Cells.Clear 'copie les largeurs des colonnes
            .Range("B12:AG12").Copy w.Cells(1)
            lig = 2
        ElseIf .Cells(i, 2).Text Like "##:##" Then
            .Range("B" & i & ":AG" & i).Copy w.Cells(lig, 1)
            lig = lig + 1
        End If
    Next i
    .Activate
End With
End Sub
Edit : ajouté le masquage du quadrillage.
 

Pièces jointes

Dernière édition:
Bonjour à toutes & à tous, bonjour @job75
J'ai lu
j'abuse certainement de ta gentillesse mais la feuille sera imprimé
C'est pourquoi j'ai respecté la mise en forme du 1er fichier joint.
Comme les données arrivent par formule, les feuilles ne sont pas supprimées et les mises en formes sont faites une fois pour toutes.
Je suppose que ces feuilles sont faites pour des interventions dans les salles en fin de séance, mais ce n'est qu'une supposition...
À bientôt
 
- 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
7
Affichages
182
Réponses
22
Affichages
878
Réponses
5
Affichages
283
Réponses
4
Affichages
221
Retour