RodolpheG
Messages postés13Date d'inscriptionvendredi 25 novembre 2022StatutMembreDernière intervention20 décembre 2023
-
26 juil. 2023 à 10:13
yg_be
Messages postés23471Date d'inscriptionlundi 9 juin 2008StatutContributeurDernière intervention15 février 2025
-
27 juil. 2023 à 18:12
Bonjour
Ma macro ci dessous actualise la feuille "Données" mais ne copie colle pas la cette feuille actualisée, elle copie colle l'ancienne version, il faut que je la lance une seconde fois pour le copie colle fonctionne correctement. Chose surprenant quand je lance ma macro au pas à pas, en revanche elle fonctionne.
J'ai essayé de voir du coté du presse papier avec ce code mais je n'obtiens pas de meilleurs résultats
J'ai également essayé de voir avec Application.CutCopyMode = False ou Application.CutCopyMode = XlCopy mais sans succès
Merci de votre aide
Cdt
RG
Public Declare Function OuvrirPressEPapiers Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As Long
Public Declare Function ViderPressePapiers Lib "user32" Alias "EmptyClipboard" () As Long
Public Declare Function FermerPressePapiers Lib "user32" Alias "CloseClipboard" () As Long
Public Function NettoyerPressePapiers()
OuvrirPressEPapiers (0&)
ViderPressePapiers
FermerPressePapiers
End Function
Sub TestNettoyerPressePapiers()
Call NettoyerPressePapiers
End Sub
Sub Macro1()
Dim AnneeValue_XL As Integer
Dim MoisValue_XL As Integer
Sheets("Données").Visible = True
' Sheets("DonnéesCopie").Visible = True
' Sheets("DonnéesCopie").Delete
'
Application.Calculate
Application.CutCopyMode = False
Sheets("Données").Select
Range("D10").Select
ActiveWorkbook.RefreshAll
Sheets(Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")).Select
Range("A100:P100").Select
Selection.Copy
Range(Selection, Selection.End(xlUp)).Select
Range("A5:P100").Select
Range("A100").Activate
ActiveSheet.Paste
'Application.CutCopyMode = False
Sheets("Données").Select
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To FinalRow
TypeValue = Cells(x, 2).Value
AnneeValue = Cells(x, 7).Value
MoisValue = Cells(x, 8).Value
MoisValue_XL = Cells(1, 16).Value
AnneeValue_XL = Cells(1, 15).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Janvier").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Janvier").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Janvier").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Janvier").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(2, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Fevrier").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Fevrier").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Fevrier").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Fevrier").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(3, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Mars").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Mars").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Mars").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Mars").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(4, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Avril").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Avril").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Avril").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Avril").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(5, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Mai").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Mai").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Mai").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Mai").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(6, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Juin").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Juin").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Juin").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Juin").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(7, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Juillet").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Juillet").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Juillet").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Juillet").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(8, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Aout").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Aout").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Aout").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Aout").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(9, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Septembre").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Septembre").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Septembre").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Septembre").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(10, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Octobre").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Octobre").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Octobre").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Octobre").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(11, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Novembre").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Novembre").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Novembre").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Novembre").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
MoisValue_XL = Cells(12, 16).Value
If TypeValue = "Entrées CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Decembre").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Entrées CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Decembre").Select
NextRow = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(NextRow, 5).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDD" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Decembre").Select
NextRow = Cells(Rows.Count, 9).End(xlUp).Row + 1
Cells(NextRow, 9).Select
ActiveSheet.Paste
Sheets("Données").Select
ElseIf TypeValue = "Sorties CDI" And MoisValue = MoisValue_XL And AnneeValue = AnneeValue_XL Then
Cells(x, 3).Resize(1, 4).Copy
Sheets("Decembre").Select
NextRow = Cells(Rows.Count, 13).End(xlUp).Row + 1
Cells(NextRow, 13).Select
ActiveSheet.Paste
Sheets("Données").Select
End If
Next x
Application.Calculate
Sheets("Janvier").Select
Range("A3").Select
Sheets("Données").Visible = False
MsgBox "Fin" & Chr(10) & "Si vous souhaitez enregistrer ce document; pensez à enregistrer sous : ... et le nommer differemment !!", vbInformation, "Message"
End Sub
yg_be
Messages postés23471Date d'inscriptionlundi 9 juin 2008StatutContributeurDernière intervention15 février 2025Ambassadeur1 568 26 juil. 2023 à 17:53
Où se fait le "copier/coller" qui copie les anciennes données?
RodolpheG
Messages postés13Date d'inscriptionvendredi 25 novembre 2022StatutMembreDernière intervention20 décembre 2023 27 juil. 2023 à 10:36
Ce sont des entrées/sorties de salariés par mois dans une base Access.
Dans mon onglet Données, je l'actualise pour avoir la derniere version (elle s'actualise à l'aide d'une query qui va cherche l'info dans la base Acccess) -
le refresh du vba fonctionne car la feuille "données" est actualisée.
En revanche, mon code avec le copier coller ne fonctionne pas sur les onglets mois par mois, si j'ai une nouvelle entrée de Septembre par ex, elle ne serait pas intégrer dans l'onglet Septembre.
Sauf si je procède au pas à pas de mon code ou que lance ma sub une 2ieme fois à la suite de la première.
J'espere etre clair et merci de prendre de votre temps pour mon cas.
RG
yg_be
Messages postés23471Date d'inscriptionlundi 9 juin 2008StatutContributeurDernière intervention15 février 20251 568
>
RodolpheG
Messages postés13Date d'inscriptionvendredi 25 novembre 2022StatutMembreDernière intervention20 décembre 2023 27 juil. 2023 à 13:27
Se pourrait-il que le query soit paramétré pour s'exécuter en arriére-plan?
27 juil. 2023 à 10:26
Bonjour
Merci d'abord pour vos réponses
Le code donné ne change rien, il n'y pas de bug mais cela ne copie colle pas les nouvelles données actualisées.
27 juil. 2023 à 14:00
Le but était de simplifier et de clarifier le code, afin d'éviter une situation où il ne travaille par sur le bon onglet.