En colonne des dates (01/01/2007) triées.
En B...AS des valeurs numèriques.
Comment recupérer la ligne du dernier jour du mois de janvier par exemple
( sachant que le dernier jour n'est pas forcemment le 31) et copier cette
ligne sur feuille 2 par exemple.
Merci d'avance
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
En colonne des dates (01/01/2007) triées.
En B...AS des valeurs numèriques.
Comment recupérer la ligne du dernier jour du mois de janvier par exemple
( sachant que le dernier jour n'est pas forcemment le 31) et copier cette
ligne sur feuille 2 par exemple.
Merci d'avance
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Philippe.R
Bonsoir jean, En supposant nommée "lemois" une cellule dans laquelle tu entre le numéro du mois dont tu cherches à copier la dernière ligne :
Sub max_du_mois() For i = 2 To Range("a6543").End(xlUp).Row If Month(Cells(i, 1)) = [lemois] + 1 Then If Day(Cells(i, 1).Value) < Day(Cells(i - 1, 1).Value) Then Cells(i - 1, 1).EntireRow.Copy Sheets("Feuil2").Activate j = Range("a6543").End(xlUp).Row Rows(j).Select ActiveSheet.Paste Sheets("feuil1").Activate Application.CutCopyMode = False Exit Sub End If End If Next i End Sub -- Avec plaisir Philippe.R "Jean Berti" a écrit dans le message de news:
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Bonsoir jean,
En supposant nommée "lemois" une cellule dans laquelle tu entre le numéro du
mois dont tu cherches à copier la dernière ligne :
Sub max_du_mois()
For i = 2 To Range("a6543").End(xlUp).Row
If Month(Cells(i, 1)) = [lemois] + 1 Then
If Day(Cells(i, 1).Value) < Day(Cells(i - 1, 1).Value) Then
Cells(i - 1, 1).EntireRow.Copy
Sheets("Feuil2").Activate
j = Range("a6543").End(xlUp).Row
Rows(j).Select
ActiveSheet.Paste
Sheets("feuil1").Activate
Application.CutCopyMode = False
Exit Sub
End If
End If
Next i
End Sub
--
Avec plaisir
Philippe.R
"Jean Berti" <jberti@free.fr> a écrit dans le message de
news:uA6DZvB4HHA.2752@TK2MSFTNGP06.phx.gbl...
Bonjour à tous
En colonne des dates (01/01/2007) triées.
En B...AS des valeurs numèriques.
Comment recupérer la ligne du dernier jour du mois de janvier par exemple
( sachant que le dernier jour n'est pas forcemment le 31) et copier cette
ligne sur feuille 2 par exemple.
Merci d'avance
Bonsoir jean, En supposant nommée "lemois" une cellule dans laquelle tu entre le numéro du mois dont tu cherches à copier la dernière ligne :
Sub max_du_mois() For i = 2 To Range("a6543").End(xlUp).Row If Month(Cells(i, 1)) = [lemois] + 1 Then If Day(Cells(i, 1).Value) < Day(Cells(i - 1, 1).Value) Then Cells(i - 1, 1).EntireRow.Copy Sheets("Feuil2").Activate j = Range("a6543").End(xlUp).Row Rows(j).Select ActiveSheet.Paste Sheets("feuil1").Activate Application.CutCopyMode = False Exit Sub End If End If Next i End Sub -- Avec plaisir Philippe.R "Jean Berti" a écrit dans le message de news:
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Philippe.R
Re, Ce sera mieux comme ci dessous :
Sub max_du_mois() For i = 2 To Range("a6543").End(xlUp).Row If Month(Cells(i, 1)) = [lemois] + 1 Then If Day(Cells(i, 1).Value) < Day(Cells(i - 1, 1).Value) Then Cells(i - 1, 1).EntireRow.Copy Sheets("Feuil2").Activate j = Range("a6543").End(xlUp).Row Rows(j + 1).Select ActiveSheet.Paste Sheets("feuil1").Activate Application.CutCopyMode = False Exit Sub End If ElseIf Month(Cells(Range("a6543").End(xlUp).Row, 1).Value) = [lemois] Then Cells(Range("a6543").End(xlUp).Row, 1).EntireRow.Copy Sheets("Feuil2").Activate j = Range("a6543").End(xlUp).Row Rows(j + 1).Select ActiveSheet.Paste Sheets("feuil1").Activate Application.CutCopyMode = False Exit Sub End If Next i err: MsgBox "La valeur que vous avez saisie pour le mois est incorrecte" _ & vbNewLine & "ou n'existe pas dans le tableau", , "M.P.F.E." End Sub
-- Avec plaisir Philippe.R "Jean Berti" a écrit dans le message de news:
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Re,
Ce sera mieux comme ci dessous :
Sub max_du_mois()
For i = 2 To Range("a6543").End(xlUp).Row
If Month(Cells(i, 1)) = [lemois] + 1 Then
If Day(Cells(i, 1).Value) < Day(Cells(i - 1, 1).Value) Then
Cells(i - 1, 1).EntireRow.Copy
Sheets("Feuil2").Activate
j = Range("a6543").End(xlUp).Row
Rows(j + 1).Select
ActiveSheet.Paste
Sheets("feuil1").Activate
Application.CutCopyMode = False
Exit Sub
End If
ElseIf Month(Cells(Range("a6543").End(xlUp).Row, 1).Value) = [lemois]
Then
Cells(Range("a6543").End(xlUp).Row, 1).EntireRow.Copy
Sheets("Feuil2").Activate
j = Range("a6543").End(xlUp).Row
Rows(j + 1).Select
ActiveSheet.Paste
Sheets("feuil1").Activate
Application.CutCopyMode = False
Exit Sub
End If
Next i
err:
MsgBox "La valeur que vous avez saisie pour le mois est incorrecte" _
& vbNewLine & "ou n'existe pas dans le tableau", , "M.P.F.E."
End Sub
--
Avec plaisir
Philippe.R
"Jean Berti" <jberti@free.fr> a écrit dans le message de
news:uA6DZvB4HHA.2752@TK2MSFTNGP06.phx.gbl...
Bonjour à tous
En colonne des dates (01/01/2007) triées.
En B...AS des valeurs numèriques.
Comment recupérer la ligne du dernier jour du mois de janvier par exemple
( sachant que le dernier jour n'est pas forcemment le 31) et copier cette
ligne sur feuille 2 par exemple.
Merci d'avance
Sub max_du_mois() For i = 2 To Range("a6543").End(xlUp).Row If Month(Cells(i, 1)) = [lemois] + 1 Then If Day(Cells(i, 1).Value) < Day(Cells(i - 1, 1).Value) Then Cells(i - 1, 1).EntireRow.Copy Sheets("Feuil2").Activate j = Range("a6543").End(xlUp).Row Rows(j + 1).Select ActiveSheet.Paste Sheets("feuil1").Activate Application.CutCopyMode = False Exit Sub End If ElseIf Month(Cells(Range("a6543").End(xlUp).Row, 1).Value) = [lemois] Then Cells(Range("a6543").End(xlUp).Row, 1).EntireRow.Copy Sheets("Feuil2").Activate j = Range("a6543").End(xlUp).Row Rows(j + 1).Select ActiveSheet.Paste Sheets("feuil1").Activate Application.CutCopyMode = False Exit Sub End If Next i err: MsgBox "La valeur que vous avez saisie pour le mois est incorrecte" _ & vbNewLine & "ou n'existe pas dans le tableau", , "M.P.F.E." End Sub
-- Avec plaisir Philippe.R "Jean Berti" a écrit dans le message de news:
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
isabelle
en vba,
Sub Macro1() x = Evaluate("=IF(ISERROR(MATCH(DATE(2007, 2, 1),Feuil1!A:A,0)),MATCH(DATE(2007, 2, 1),Feuil1!A:A),MATCH(DATE(2007, 2, 1),Feuil1!A:A,0)-1)") Sheets("Feuil1").Rows(x).Copy Sheets("Feuil2").Range("A1") End Sub
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
en vba,
Sub Macro1()
x = Evaluate("=IF(ISERROR(MATCH(DATE(2007, 2, 1),Feuil1!A:A,0)),MATCH(DATE(2007, 2, 1),Feuil1!A:A),MATCH(DATE(2007, 2, 1),Feuil1!A:A,0)-1)")
Sheets("Feuil1").Rows(x).Copy Sheets("Feuil2").Range("A1")
End Sub
En colonne des dates (01/01/2007) triées.
En B...AS des valeurs numèriques.
Comment recupérer la ligne du dernier jour du mois de janvier par
exemple ( sachant que le dernier jour n'est pas forcemment le 31) et
copier cette ligne sur feuille 2 par exemple.
Merci d'avance
Sub Macro1() x = Evaluate("=IF(ISERROR(MATCH(DATE(2007, 2, 1),Feuil1!A:A,0)),MATCH(DATE(2007, 2, 1),Feuil1!A:A),MATCH(DATE(2007, 2, 1),Feuil1!A:A,0)-1)") Sheets("Feuil1").Rows(x).Copy Sheets("Feuil2").Range("A1") End Sub
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
cousinhub
Bonsoir, un peu plus simple :
Sub fin_de_mois() For Each cel In Range("A1:A" & [a65000].End(xlUp).Row) If Day(cel) > Day(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0) Next cel End Sub
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Bonsoir, un peu plus simple :
Sub fin_de_mois()
For Each cel In Range("A1:A" & [a65000].End(xlUp).Row)
If Day(cel) > Day(cel.Offset(1, 0)) Then cel.EntireRow.Copy _
Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0)
Next cel
End Sub
Bonjour à tous
En colonne des dates (01/01/2007) triées.
En B...AS des valeurs numèriques.
Comment recupérer la ligne du dernier jour du mois de janvier par exemple
( sachant que le dernier jour n'est pas forcemment le 31) et copier cette
ligne sur feuille 2 par exemple.
Merci d'avance
Sub fin_de_mois() For Each cel In Range("A1:A" & [a65000].End(xlUp).Row) If Day(cel) > Day(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0) Next cel End Sub
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Trirème
Bonjour à tous, À mon tour d'envoyer ma prose, car je ne suis pas sûr que tout le monde ait compris la même chose :
Sub ChercheLigneMaDate() ' Cherche la ligne contenant le dernier jour d'un mois donné ' et le cas échéant la copie dans une autre feuille du même classeur ' à la suite des données déjà présentes Dim MaDate As Date Dim Année As Integer Dim Mois As Integer Dim LigneACopier As Integer Dim LigneDest As Double Dim FeuilleDest As String
MaDate = DateSerial(Année, Mois + 1, 0) On Error Resume Next LigneACopier = Application.Match(MaDate * 1, [A:A], 0) If LigneACopier <> 0 Then Sheets(FeuilleDest).Range("A65536").End(xlUp).Offset(1).EntireRow _ = Rows(LigneACopier).EntireRow.Value End If End Sub
Cordialement Trirème
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Bonjour à tous,
À mon tour d'envoyer ma prose, car je ne suis pas sûr que tout le monde ait compris la
même chose :
Sub ChercheLigneMaDate()
' Cherche la ligne contenant le dernier jour d'un mois donné
' et le cas échéant la copie dans une autre feuille du même classeur
' à la suite des données déjà présentes
Dim MaDate As Date
Dim Année As Integer
Dim Mois As Integer
Dim LigneACopier As Integer
Dim LigneDest As Double
Dim FeuilleDest As String
MaDate = DateSerial(Année, Mois + 1, 0)
On Error Resume Next
LigneACopier = Application.Match(MaDate * 1, [A:A], 0)
If LigneACopier <> 0 Then
Sheets(FeuilleDest).Range("A65536").End(xlUp).Offset(1).EntireRow _
= Rows(LigneACopier).EntireRow.Value
End If
End Sub
Cordialement
Trirème
Bonjour à tous
En colonne des dates (01/01/2007) triées.
En B...AS des valeurs numèriques.
Comment recupérer la ligne du dernier jour du mois de janvier par exemple
( sachant que le dernier jour n'est pas forcemment le 31) et copier cette
ligne sur feuille 2 par exemple.
Merci d'avance
Bonjour à tous, À mon tour d'envoyer ma prose, car je ne suis pas sûr que tout le monde ait compris la même chose :
Sub ChercheLigneMaDate() ' Cherche la ligne contenant le dernier jour d'un mois donné ' et le cas échéant la copie dans une autre feuille du même classeur ' à la suite des données déjà présentes Dim MaDate As Date Dim Année As Integer Dim Mois As Integer Dim LigneACopier As Integer Dim LigneDest As Double Dim FeuilleDest As String
MaDate = DateSerial(Année, Mois + 1, 0) On Error Resume Next LigneACopier = Application.Match(MaDate * 1, [A:A], 0) If LigneACopier <> 0 Then Sheets(FeuilleDest).Range("A65536").End(xlUp).Offset(1).EntireRow _ = Rows(LigneACopier).EntireRow.Value End If End Sub
Cordialement Trirème
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Jean Berti
Bonsoir Trirème
Merci de t'être penché sur mon problème. Cela fonctionne correctement sauf que pour moi les mois ne font pas tous 30 ou 31 jours. MaDate = DateSerial(Année, Mois + 1, 0) J'avais par JB récupéré cette formule matricielle =MAX(SI(MOIS($A$7:$A$1000)=LIGNE();SI(ANNEE($A$7:$A$1000) 07;$A$7:$A$1000;0))) LIGNE=1 pour Janvier Comment l'adapter à ta macro? Merci encore de ta patience Cordialement
Jean Berti
"Trirème" a écrit dans le message de news:
Bonjour à tous, À mon tour d'envoyer ma prose, car je ne suis pas sûr que tout le monde ait compris la même chose :
Sub ChercheLigneMaDate() ' Cherche la ligne contenant le dernier jour d'un mois donné ' et le cas échéant la copie dans une autre feuille du même classeur ' à la suite des données déjà présentes Dim MaDate As Date Dim Année As Integer Dim Mois As Integer Dim LigneACopier As Integer Dim LigneDest As Double Dim FeuilleDest As String
MaDate = DateSerial(Année, Mois + 1, 0) On Error Resume Next LigneACopier = Application.Match(MaDate * 1, [A:A], 0) If LigneACopier <> 0 Then Sheets(FeuilleDest).Range("A65536").End(xlUp).Offset(1).EntireRow _ = Rows(LigneACopier).EntireRow.Value End If End Sub
Cordialement Trirème
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Bonsoir Trirème
Merci de t'être penché sur mon problème.
Cela fonctionne correctement sauf que pour moi les mois ne font pas tous 30
ou 31 jours.
MaDate = DateSerial(Année, Mois + 1, 0)
J'avais par JB récupéré cette formule matricielle
=MAX(SI(MOIS($A$7:$A$1000)=LIGNE();SI(ANNEE($A$7:$A$1000) 07;$A$7:$A$1000;0)))
LIGNE=1 pour Janvier
Comment l'adapter à ta macro?
Merci encore de ta patience
Cordialement
Jean Berti
"Trirème" <NoOne@EvryOuer.fr> a écrit dans le message de news:
uoIndKG4HHA.5880@TK2MSFTNGP03.phx.gbl...
Bonjour à tous,
À mon tour d'envoyer ma prose, car je ne suis pas sûr que tout le monde
ait compris la même chose :
Sub ChercheLigneMaDate()
' Cherche la ligne contenant le dernier jour d'un mois donné
' et le cas échéant la copie dans une autre feuille du même classeur
' à la suite des données déjà présentes
Dim MaDate As Date
Dim Année As Integer
Dim Mois As Integer
Dim LigneACopier As Integer
Dim LigneDest As Double
Dim FeuilleDest As String
MaDate = DateSerial(Année, Mois + 1, 0)
On Error Resume Next
LigneACopier = Application.Match(MaDate * 1, [A:A], 0)
If LigneACopier <> 0 Then
Sheets(FeuilleDest).Range("A65536").End(xlUp).Offset(1).EntireRow _
= Rows(LigneACopier).EntireRow.Value
End If
End Sub
Cordialement
Trirème
Bonjour à tous
En colonne des dates (01/01/2007) triées.
En B...AS des valeurs numèriques.
Comment recupérer la ligne du dernier jour du mois de janvier par exemple
( sachant que le dernier jour n'est pas forcemment le 31) et copier cette
ligne sur feuille 2 par exemple.
Merci d'avance
Merci de t'être penché sur mon problème. Cela fonctionne correctement sauf que pour moi les mois ne font pas tous 30 ou 31 jours. MaDate = DateSerial(Année, Mois + 1, 0) J'avais par JB récupéré cette formule matricielle =MAX(SI(MOIS($A$7:$A$1000)=LIGNE();SI(ANNEE($A$7:$A$1000) 07;$A$7:$A$1000;0))) LIGNE=1 pour Janvier Comment l'adapter à ta macro? Merci encore de ta patience Cordialement
Jean Berti
"Trirème" a écrit dans le message de news:
Bonjour à tous, À mon tour d'envoyer ma prose, car je ne suis pas sûr que tout le monde ait compris la même chose :
Sub ChercheLigneMaDate() ' Cherche la ligne contenant le dernier jour d'un mois donné ' et le cas échéant la copie dans une autre feuille du même classeur ' à la suite des données déjà présentes Dim MaDate As Date Dim Année As Integer Dim Mois As Integer Dim LigneACopier As Integer Dim LigneDest As Double Dim FeuilleDest As String
MaDate = DateSerial(Année, Mois + 1, 0) On Error Resume Next LigneACopier = Application.Match(MaDate * 1, [A:A], 0) If LigneACopier <> 0 Then Sheets(FeuilleDest).Range("A65536").End(xlUp).Offset(1).EntireRow _ = Rows(LigneACopier).EntireRow.Value End If End Sub
Cordialement Trirème
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Jean Berti
Merci à Isabelle, Philippe et cousinhb Je vais tester et vous tiens au courant
Merci encore Cordialement Jean Berti
"Jean Berti" a écrit dans le message de news:
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Merci à Isabelle, Philippe et cousinhb
Je vais tester et vous tiens au courant
Merci encore
Cordialement
Jean Berti
"Jean Berti" <jberti@free.fr> a écrit dans le message de news:
uA6DZvB4HHA.2752@TK2MSFTNGP06.phx.gbl...
Bonjour à tous
En colonne des dates (01/01/2007) triées.
En B...AS des valeurs numèriques.
Comment recupérer la ligne du dernier jour du mois de janvier par exemple
( sachant que le dernier jour n'est pas forcemment le 31) et copier cette
ligne sur feuille 2 par exemple.
Merci d'avance
Merci à Isabelle, Philippe et cousinhb Je vais tester et vous tiens au courant
Merci encore Cordialement Jean Berti
"Jean Berti" a écrit dans le message de news:
Bonjour à tous
En colonne des dates (01/01/2007) triées. En B...AS des valeurs numèriques. Comment recupérer la ligne du dernier jour du mois de janvier par exemple ( sachant que le dernier jour n'est pas forcemment le 31) et copier cette ligne sur feuille 2 par exemple. Merci d'avance
Jean Berti
Trirème
Cela fonctionne correctement sauf que pour moi les mois ne font pas tous 30 ou 31 jours. MaDate = DateSerial(Année, Mois + 1, 0) J'avais par JB récupéré cette formule matricielle =MAX(SI(MOIS($A$7:$A$1000)=LIGNE();SI(ANNEE($A$7:$A$1000) 07;$A$7:$A$1000;0))) LIGNE=1 pour Janvier Comment l'adapter à ta macro?
Pour le coup, c'est moi qui n'ai rien compris. Je pensais que tu cherchais les lignes correspondant à la date du dernier jour du mois alors que visiblement tu cherches les lignes avant le passage au mois suivant. Dans ce cas la macro de cousinhub fonctionne si tu changes : If Day(cel) > Day(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0) par : If Month(cel) <> Month(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0)
En effet, la formule initiale aurait oublié la ligne du 12 avril suivie de la ligne du 15 mai. Ce code suppose comme tu le précisais que les données soient triées. Dans les deux cas la dernière ligne est sélectionnée aussi, même si par la suite tu ajoutes en dessous des données pour le même mois.
Pour le résultat de la copie, précise si tu veux garder les formules ou si tu veux un collage des valeurs.
Cordialement, Trirème
Cela fonctionne correctement sauf que pour moi les mois ne font pas tous 30
ou 31 jours.
MaDate = DateSerial(Année, Mois + 1, 0)
J'avais par JB récupéré cette formule matricielle
=MAX(SI(MOIS($A$7:$A$1000)=LIGNE();SI(ANNEE($A$7:$A$1000) 07;$A$7:$A$1000;0)))
LIGNE=1 pour Janvier
Comment l'adapter à ta macro?
Pour le coup, c'est moi qui n'ai rien compris. Je pensais que tu cherchais
les lignes correspondant à la date du dernier jour du mois alors que
visiblement tu cherches les lignes avant le passage au mois suivant.
Dans ce cas la macro de cousinhub fonctionne si tu changes :
If Day(cel) > Day(cel.Offset(1, 0)) Then cel.EntireRow.Copy _
Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0)
par :
If Month(cel) <> Month(cel.Offset(1, 0)) Then cel.EntireRow.Copy _
Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0)
En effet, la formule initiale aurait oublié la ligne du 12 avril suivie de
la ligne du 15 mai. Ce code suppose comme tu le précisais que les données
soient triées.
Dans les deux cas la dernière ligne est sélectionnée aussi, même si par la
suite tu ajoutes en dessous des données pour le même mois.
Pour le résultat de la copie, précise si tu veux garder les formules ou si
tu veux un collage des valeurs.
Cela fonctionne correctement sauf que pour moi les mois ne font pas tous 30 ou 31 jours. MaDate = DateSerial(Année, Mois + 1, 0) J'avais par JB récupéré cette formule matricielle =MAX(SI(MOIS($A$7:$A$1000)=LIGNE();SI(ANNEE($A$7:$A$1000) 07;$A$7:$A$1000;0))) LIGNE=1 pour Janvier Comment l'adapter à ta macro?
Pour le coup, c'est moi qui n'ai rien compris. Je pensais que tu cherchais les lignes correspondant à la date du dernier jour du mois alors que visiblement tu cherches les lignes avant le passage au mois suivant. Dans ce cas la macro de cousinhub fonctionne si tu changes : If Day(cel) > Day(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0) par : If Month(cel) <> Month(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0)
En effet, la formule initiale aurait oublié la ligne du 12 avril suivie de la ligne du 15 mai. Ce code suppose comme tu le précisais que les données soient triées. Dans les deux cas la dernière ligne est sélectionnée aussi, même si par la suite tu ajoutes en dessous des données pour le même mois.
Pour le résultat de la copie, précise si tu veux garder les formules ou si tu veux un collage des valeurs.
Cordialement, Trirème
cousinhub
Bonjour tout le monde
En effet, la formule initiale aurait oublié la ligne du 12 avril suivie de la ligne du 15 mai.
Là, je dois dire que je ne comprends pas du tout :-
Cela fonctionne correctement sauf que pour moi les mois ne font pas tous 30 ou 31 jours. MaDate = DateSerial(Année, Mois + 1, 0) J'avais par JB récupéré cette formule matricielle =MAX(SI(MOIS($A$7:$A$1000)=LIGNE();SI(ANNEE($A$7:$A$1000) 07;$A$7:$A$1000;0))) LIGNE=1 pour Janvier Comment l'adapter à ta macro?
Pour le coup, c'est moi qui n'ai rien compris. Je pensais que tu cherchais les lignes correspondant à la date du dernier jour du mois alors que visiblement tu cherches les lignes avant le passage au mois suivant. Dans ce cas la macro de cousinhub fonctionne si tu changes : If Day(cel) > Day(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0) par : If Month(cel) <> Month(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0)
En effet, la formule initiale aurait oublié la ligne du 12 avril suivie de la ligne du 15 mai. Ce code suppose comme tu le précisais que les données soient triées. Dans les deux cas la dernière ligne est sélectionnée aussi, même si par la suite tu ajoutes en dessous des données pour le même mois.
Pour le résultat de la copie, précise si tu veux garder les formules ou si tu veux un collage des valeurs.
Cordialement, Trirème
Bonjour tout le monde
En effet, la formule initiale aurait oublié la ligne du 12 avril suivie de
la ligne du 15 mai.
Là, je dois dire que je ne comprends pas du tout :-
Cela fonctionne correctement sauf que pour moi les mois ne font pas tous 30
ou 31 jours.
MaDate = DateSerial(Année, Mois + 1, 0)
J'avais par JB récupéré cette formule matricielle
=MAX(SI(MOIS($A$7:$A$1000)=LIGNE();SI(ANNEE($A$7:$A$1000) 07;$A$7:$A$1000;0)))
LIGNE=1 pour Janvier
Comment l'adapter à ta macro?
Pour le coup, c'est moi qui n'ai rien compris. Je pensais que tu cherchais
les lignes correspondant à la date du dernier jour du mois alors que
visiblement tu cherches les lignes avant le passage au mois suivant.
Dans ce cas la macro de cousinhub fonctionne si tu changes :
If Day(cel) > Day(cel.Offset(1, 0)) Then cel.EntireRow.Copy _
Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0)
par :
If Month(cel) <> Month(cel.Offset(1, 0)) Then cel.EntireRow.Copy _
Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0)
En effet, la formule initiale aurait oublié la ligne du 12 avril suivie de
la ligne du 15 mai. Ce code suppose comme tu le précisais que les données
soient triées.
Dans les deux cas la dernière ligne est sélectionnée aussi, même si par la
suite tu ajoutes en dessous des données pour le même mois.
Pour le résultat de la copie, précise si tu veux garder les formules ou si
tu veux un collage des valeurs.
En effet, la formule initiale aurait oublié la ligne du 12 avril suivie de la ligne du 15 mai.
Là, je dois dire que je ne comprends pas du tout :-
Cela fonctionne correctement sauf que pour moi les mois ne font pas tous 30 ou 31 jours. MaDate = DateSerial(Année, Mois + 1, 0) J'avais par JB récupéré cette formule matricielle =MAX(SI(MOIS($A$7:$A$1000)=LIGNE();SI(ANNEE($A$7:$A$1000) 07;$A$7:$A$1000;0))) LIGNE=1 pour Janvier Comment l'adapter à ta macro?
Pour le coup, c'est moi qui n'ai rien compris. Je pensais que tu cherchais les lignes correspondant à la date du dernier jour du mois alors que visiblement tu cherches les lignes avant le passage au mois suivant. Dans ce cas la macro de cousinhub fonctionne si tu changes : If Day(cel) > Day(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0) par : If Month(cel) <> Month(cel.Offset(1, 0)) Then cel.EntireRow.Copy _ Sheets("Feuil2").[a65000].End(xlUp).Offset(1, 0)
En effet, la formule initiale aurait oublié la ligne du 12 avril suivie de la ligne du 15 mai. Ce code suppose comme tu le précisais que les données soient triées. Dans les deux cas la dernière ligne est sélectionnée aussi, même si par la suite tu ajoutes en dessous des données pour le même mois.
Pour le résultat de la copie, précise si tu veux garder les formules ou si tu veux un collage des valeurs.