Bonjour à tous,
Mon problème va surement vous sembler enfantin mais voila que je pêche dessus depuis ce WE.
Débutant sous VB, j'essaie de me former au fur et à mesure ... sauf que les impératifs professionnels impose un rythme plus rapide que celui de ma compréhension parfois lol ... bref j'avance via la méthode empirique je recherche je tests je bricole etc etc
En l'occurence, sur une feuille de plusieurs colonne dans la première j'ai la date d'une opération dd/mm/yyyy hh:ss
Ce que je cherche à faire c'est qu'à une date régulière (en l'occurrence le premier lundi du mois - ça peut être modifier) c'est sélectionner dans ma feuille toutes les lignes dont la date (en A) correspondrait au moirs précédent (toutes les lignes du mois de février si nous sommes en mars) et de les copier dans un nouveau classeur avec la date du mois et de l'année. Après diverses recherche voici ce que j'ai bricolé et mon problème se trouve au niveau de la copie :
Sub Test()
Dim newWbk As Workbook, feuilCal As Worksheet, pathMesDocuments As String, nomNewClasseur As String
Application.ScreenUpdating = False
'définir le chemin de MesDocuments
pathMesDocuments = "Z:\Yann"
'définir la feuille à copier
Set feuilCal = ThisWorkbook.Sheets("Prets")
'créer un nouveau classeur avec une seulle feuille
Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)
For n = Range("A65536").End(xlUp).Row To 3 Step -1
If feuilCal.Range("A" & n) = CDate(Month(Now) - 1) Then
Cells(n).Copy
End If
Next n
' la commande de base de ce code était de copier toutes les cellules
'feuilCal.Cells.Copy
'coller les valeurs dans le nouveau classeur, puis les formats, puis les largeurs de colonnes
newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteValues
newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteFormats
newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteColumnWidths
Application.CutCopyMode = False
'récupérer le nom à donner au nouveau classeur
1 nomNewClasseur = Format(Date, "mmm yyyy")
'InputBox ("Nom du nouveau classeur :")
'If nomNewClasseur <> "" Then
'sauvegarder le classeur et le fermer
On Error Resume Next
newWbk.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
If Err Then GoTo 1 's'il y a des caractères interdits
'End If
newWbk.Close
Application.ScreenUpdating = True
End Sub
Je remercie par avance tous ceux qui pourrait m'aider à solutionner mon problème
Mon problème va surement vous sembler enfantin mais voila que je pêche dessus depuis ce WE.
Débutant sous VB, j'essaie de me former au fur et à mesure ... sauf que les impératifs professionnels impose un rythme plus rapide que celui de ma compréhension parfois lol ... bref j'avance via la méthode empirique je recherche je tests je bricole etc etc
En l'occurence, sur une feuille de plusieurs colonne dans la première j'ai la date d'une opération dd/mm/yyyy hh:ss
Ce que je cherche à faire c'est qu'à une date régulière (en l'occurrence le premier lundi du mois - ça peut être modifier) c'est sélectionner dans ma feuille toutes les lignes dont la date (en A) correspondrait au moirs précédent (toutes les lignes du mois de février si nous sommes en mars) et de les copier dans un nouveau classeur avec la date du mois et de l'année. Après diverses recherche voici ce que j'ai bricolé et mon problème se trouve au niveau de la copie :
Sub Test()
Dim newWbk As Workbook, feuilCal As Worksheet, pathMesDocuments As String, nomNewClasseur As String
Application.ScreenUpdating = False
'définir le chemin de MesDocuments
pathMesDocuments = "Z:\Yann"
'définir la feuille à copier
Set feuilCal = ThisWorkbook.Sheets("Prets")
'créer un nouveau classeur avec une seulle feuille
Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)
For n = Range("A65536").End(xlUp).Row To 3 Step -1
If feuilCal.Range("A" & n) = CDate(Month(Now) - 1) Then
Cells(n).Copy
End If
Next n
' la commande de base de ce code était de copier toutes les cellules
'feuilCal.Cells.Copy
'coller les valeurs dans le nouveau classeur, puis les formats, puis les largeurs de colonnes
newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteValues
newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteFormats
newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteColumnWidths
Application.CutCopyMode = False
'récupérer le nom à donner au nouveau classeur
1 nomNewClasseur = Format(Date, "mmm yyyy")
'InputBox ("Nom du nouveau classeur :")
'If nomNewClasseur <> "" Then
'sauvegarder le classeur et le fermer
On Error Resume Next
newWbk.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
If Err Then GoTo 1 's'il y a des caractères interdits
'End If
newWbk.Close
Application.ScreenUpdating = True
End Sub
Je remercie par avance tous ceux qui pourrait m'aider à solutionner mon problème