Effactuer un saut de ligne automatiquement apres chaque mois
Résolu
kimalg
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
kimalg Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
kimalg Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Pourriez-vous m'aider à faire un saut de ligne automatiquement après chaque changement de mois, dans un fichier Excel très volumineux dont la date est a la 1ere colonne A qui s’écrits de cette manière :28/02/2015 04:10 merci
A voir également:
- Effactuer un saut de ligne automatiquement apres chaque mois
- Partage de photos en ligne - Guide
- Comment supprimer une page sur word avec un saut de page ? - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Formulaire en ligne de meta - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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
kimalg
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
Merci infiniment ça marche bien ! quel soulagement ! Merci
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