Copier un feuille vers un nouveau classeur selon condition

Résolu
hakimr Messages postés 261 Date d'inscription   Statut Membre Dernière intervention   -  
hakimr Messages postés 261 Date d'inscription   Statut Membre Dernière intervention   -
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.

1 réponse

  1. hakimr Messages postés 261 Date d'inscription   Statut Membre Dernière intervention   10
     
    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
    1. hakimr Messages postés 261 Date d'inscription   Statut Membre Dernière intervention   10
       
      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