éditeur VBA Excel: Réactiver une feuille ouverte au nom variable

Résolu
borgognoremy Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
 borgognoremy -
Bonjour,

https://www.cjoint.com/c/CEEqMJJw1ap

Ci-joint le fichier source avec la macro créée.

Cette macro est sensée créer un nouveau classeur par affaire selon une liste d'affaire sur mon fichier source. Sur chaque classeur créé, je vais devoir réaliser des opérations de collage de données provenant du fichier source et bien d'autres choses. Ces opérations devront être répétée sur chaque classeur créé.

En fait, affaire a été nommé dès le départ dans le paragraphe 'formule boucle' comme étant la variable de cette boucle. Ce numéro d'affaire qui changera donc à chaque création de classeur, je dois l'utiliser à plusieurs moments. Je vais avoir à l'utiliser encore pour d'autres choses mais je vois bien que pour le moment, ça ne marche pas.

Pourriez-vous m'aider s'il vous plait?

Merci d'avance de votre aide.;

Baieta

2 réponses

  1. borgognoremy Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
     
    A oublier... problème résolu seul.
    0
  2. pilas31 Messages postés 1878 Statut Contributeur 648
     
    Bonjour,

    Pour info si d'autres ont déjà regardé voila les anomalies trouvées :

    1/ le bouton n'était pas associé à la macro "Sub Nvx_class_par_affaire"
    2/ des erreurs dans la macro corrigées en gras :
    Sub Nvx_class_par_affaire()
    'Macro créant un nouveaux classeur par projet et exécutant des tâches diverses'
    Chemin = ActiveWorkbook.Path
    'Formule de boucle'
    For L = 2 To Range("A" & Rows.Count).End(xlUp).Row

    Sheets("Accueil").Select

    affaire = Range("A" & L).Value
    ChemFiche = Chemin & "\" & affaire & ".xls"

    'Ajout d'un nouveau classeur'
    Workbooks.Add

    'Renomme les feuilles'
    Worksheets("Feuil1").Name = "Résumé"
    Worksheets("Feuil2").Name = "Dépenses"
    Worksheets("Feuil3").Name = "Engagements"

    'Sauvegarde du classeur à l'emplacement du fichier source'
    ActiveWorkbook.SaveAs ChemFiche

    'activation du fichier source et ouverture feuille Depenses_cum"
    Workbooks("Exemple.xlsm").Activate
    Sheets("Depenses_m").Select

    'Filtre la feuille sur l'affaire'

    Rows("1:1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A:$Y").AutoFilter Field:=4, Criteria1:=affaire

    'Copie des données colonne A à Y'
    Range("A:$Y").Copy

    'Coller dans le fichier de l'affaire'

    Workbooks(affaire & ".xls").Activate

    Sheets("Dépenses").Select
    Range("A:$Y").Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False

    'Ferme le classeur de l'affaire'
    ActiveWorkbook.Close True
    Next

    End Sub

    Voila comme cela je peux mettre en résolu.
    Cordialement,
    0
    1. borgognoremy
       
      Merci beaucoup pour cette aide. Quelqu'un avait en effet pu m'aider mais un grand merci quand même. Baieta
      0