Effactuer un saut de ligne automatiquement apres chaque mois
Résolu/Fermé
kimalg
Messages postés
9
Date d'inscription
dimanche 6 août 2017
Statut
Membre
Dernière intervention
9 août 2018
-
20 août 2017 à 15:53
kimalg Messages postés 9 Date d'inscription dimanche 6 août 2017 Statut Membre Dernière intervention 9 août 2018 - 20 août 2017 à 16:30
kimalg Messages postés 9 Date d'inscription dimanche 6 août 2017 Statut Membre Dernière intervention 9 août 2018 - 20 août 2017 à 16:30
A voir également:
- Effactuer un saut de ligne automatiquement apres chaque mois
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Excel mois en lettre ✓ - Forum Excel
- Comment supprimer une page sur word avec un saut de page ? - Guide
2 réponses
yg_be
Messages postés
23338
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 novembre 2024
Ambassadeur
1 551
20 août 2017 à 16:13
20 août 2017 à 16:13
suggestion pour insérer une ligne blanche à chaque changement de mois:
Sub decouperparmois() Dim ligne As Long Dim unmoment As Date Dim lemois As Date, cemois As Date Dim valeur As Range unmoment = CDate(ActiveSheet.Cells(1, "A")) lemois = DateSerial(Year(unmoment), Month(unmoment), 1) ligne = 2 Do Set valeur = ActiveSheet.Cells(ligne, "A") If Not IsDate(valeur) Then Exit Do Else unmoment = CDate(valeur) cemois = DateSerial(Year(unmoment), Month(unmoment), 1) If (cemois <> lemois) Then lemois = cemois ' ajouter une ligne vide avant valeur.EntireRow.Insert ligne = ligne + 1 End If End If ligne = ligne + 1 Loop End Sub
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
20 août 2017 à 16:26
20 août 2017 à 16:26
Bonjour,
Un petite adaptation du code précédent :
Un petite adaptation du code précédent :
Option Explicit Sub DécouperTableauEnBlocsMensuels() Dim C As Long 'Compteur Dim L As Long 'n° ligne Dim J As Date 'Jour Dim M As Byte 'Mois Application.ScreenUpdating = False 'Supprimer les lignes vides Call SupprimerLesLignesVides 'Séparer les jours (en partant de la fin) With ActiveSheet L = .Cells(Rows.Count, "A").End(xlUp).Row J = DateValue(.Cells(L, "A").Value) M = Month(J) For C = L - 1 To 2 Step -1 J = DateValue(.Cells(C, "A").Value) If Month(J) <> M Then M = Month(J) .Rows(C + 1).Insert End If Next C End With Application.ScreenUpdating = True End Sub Sub SupprimerLesLignesVides() Dim D As Range 'Début Dim V As Range 'Vide Dim T As Range 'Tableau Dim S As Boolean 'ScreenUpdating S = Application.ScreenUpdating Application.ScreenUpdating = False 'Début du tableau Set D = ActiveSheet.Cells(1, "A") 'Supprimer les lignes vides Do 'Tableau Set T = D.CurrentRegion 'Ligne vide suivant le tableau Set V = D.End(xlDown).Offset(1) 'Est-ce la fin des données de la feuille ... If ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row < V.Row Then '... Oui : terminer Exit Do Else '... Non : supprimer les lignes vides V.Resize(V.End(xlDown).Row - V.Row).EntireRow.Delete End If Loop Application.ScreenUpdating = S End Sub
20 août 2017 à 16:30