Copier un feuille vers un nouveau classeur selon condition

Résolu/Fermé
hakimr Messages postés 259 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 17 août 2024 - 3 juil. 2017 à 17:24
hakimr Messages postés 259 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 17 août 2024 - 6 juil. 2017 à 22:27
Bonjour,
Je débute en VBA et en allant sur différent forums j'ai réussi à faire une partie de ma macro, mais je bloque sur la fin, et je veux quelques chose de professionnelle.
Voilà mon problème :j'ai un classue "recap-2017", je dois copier une feuille (feuille x) dans un nouveau classeur qui devra contenir une copie de cette dernière si mois de la cellule A32="dec-2017" de la feuille active . En +, le nom du nouveau classeur = "recap-2018" ,enregistrer sur le bureau.
merci d'avance pour votre aide.
A voir également:

1 réponse

hakimr Messages postés 259 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 17 août 2024 9
Modifié le 5 juil. 2017 à 11:05
Bonjour a tous
autrement dit
je veux tester sur une cellule L3, si L3 ="dec-2017" alors en cliquant sur bouton "suivant", copier feuille active dans un nouveau classeur nommé "TVA-2018".
voila comment écrire cette procédure dans un macro?
merci pour votre aide.
0
hakimr Messages postés 259 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 17 août 2024 9
6 juil. 2017 à 22:27
bonsoir
je cherche enfin quelqu’un qui m'aide a contrôler et corriger cette procédure :
Dim dlg As FileDialog
Dim i As Integer
ActiveSheet.Copy after:=Sheets(Sheets.Count)
[c7].Value = [c7].Value + 1
[A843].Value = [C843].Value
test = Application.Proper(Format(Range("e779"), "mmm-yyyy"))
ActiveSheet.Name = test
Range("c7").Select
If [c7].Value = 12 Then
ActiveSheet.Copy
' proposer l'enregistrement du nouveau classeur
Set dlg = Application.FileDialog(msoFileDialogSaveAs)
With dlg
' nom du fichier
.InitialFileName = ThisWorkbook.Path & "\" & "TVA " & [A6].Value + 1
' filtrer sur l'extension *.xls
For i = 1 To .Filters.Count
If .Filters(i).Extensions = "*.xls" Then
.FilterIndex = i
Exit For
End If
Next i
If .Show <> 0 Then
'Enregistrer le classeur
On Error Resume Next
Application.DisplayAlerts = False
.Execute
Application.DisplayAlerts = True
On Error GoTo 0
End If
End With
End If
je m"explique
cette procédure est affecter a un bouton (mois suivant), a chaque fois en cliquant , faire une copie de la feuille active jusqu’à atteindre la condition de la valeur de la cellule C7 sera égal 12 alors un nouveau classeur sera créer dont une copie de la dernière feuille
merci pour votre compréhension.
0