Effactuer un saut de ligne automatiquement apres chaque mois
Résolu
kimalg
Messages postés
13
Statut
Membre
-
kimalg Messages postés 13 Statut Membre -
kimalg Messages postés 13 Statut Membre -
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
- Formulaire en ligne de meta - Guide
- Mètre en ligne - Guide
- Automatiquement - Guide
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
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
13
Statut
Membre
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