XL 2016 boucle sur each ... va dans les choux

JeanGui

XLDnaute Nouveau
bonjour,
Je n'arrive pas à faire tourner la boucle sur le fichier original après avoir avoir créer et sauvegarder et traiter (copier , coller, masquer un onglet ) un fichier .
J'arrive à rebasculer sur le fichier original, mais la macro s'arrête là sur un autre module!
quelqu'un peut il m'aider?


Sub CreateForm()
'
' Création des formulaire budget

Dim ClasseurSource As String, Chemin As String, Extension As String, nomfichier As String
Dim WbFF As String
Dim RCur As Range
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
Extension = ".xlsm"
nomfichier = CC.Range("AB2")
Chemin = data.Range("Rep")
Wbname = ThisWorkbook.Name
ClasseurSource = ActiveWorkbook.Name
repertoire = [Rep] & "\"

With ActiveWorkbook
For Each RCur In Worksheets("data").Range("B2:B78")

.SaveAs Filename:=Chemin & nomfichier & Extension
extraction = ActiveWorkbook.Name
CC.Range("E1:L170").Copy
CC.Range("E1:L170").PasteSpecial Paste:=xlPasteValues
.Sheets("base").Delete
Sheets("data").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("CC").Select

Workbooks.Open ClasseurSource
Application.DisplayAlerts = False
Application.CutCopyMode = False
Windows(extraction).Close True

Next RCur
End With


End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

difficile de voir d'après ce que vous nous donnez, ce qui ne va pas. Apparement vous vous mélanger les pinceaux entre ThisWorkbook et ActiveWorkbook
De plus dans votre boucle la variable RCur n'est pas utilisée.
Vous mettez un bloc With sans jamais faire référence à ses objets enfants par un point

Alors soit vous joignez un fichier sans donnée confidentielle, avec votre macro, TOUS les élément et TOUTES les explications nécessaires à bien comprendre ce que vous voulez faire soit ... patientez

A vous relire
 

JeanGui

XLDnaute Nouveau
Bonjour,
Désolé pour le manque de précision. Ci joint, mon fichier pour lequel j'ai mis des commentaire dans le coeur de la macro.
En effet, je m'emmêle avec ThisWorkbook et Activeworkbook et sans doute que certaines variables n'était pas nécessaire.
J'ai fait quelques modifications en fonction de vos remarques. le with est pour le fichier maitre, mais je ne sais pas si le end with doit être à la fin ou pas. Je pensais utiliser la variable RCur (for each RCur... next RCur). J'aimerais placer cette variable la liste déroulante.

En gros l'objet de la macro :
placé dans la liste déroulante le filtre des données du tableau
sauvegarder sous un autre nom de fichier dans un répertoire et avec un nom spécifique
faire des traitements basiques : copier coller valeur, masquer onglet, supprimer onglet
sauvegarder et fermer ce fichier de destination
revenir sur le fichier de base et passer au prochain élément

Je vais regarder les tutoriels sur vba, je vais certainement apprendre plein de choses.

Merci par avance.

JeanGui
 

Pièces jointes

  • Projet VBA.xlsm
    182.7 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Je vais regarder les tutoriels sur vba, je vais certainement apprendre plein de choses.

Alors faites le et revenez avec une question plus précise ou une particularité sur laquelle vous échoppez.

Pistes:

ThisWorkbook = Classeur qui contient la macro
ActiveWorkbook = tout classeur actif et ouvert (souvent le dernier classeur ouvert)

Une variable string, n'est pas une variable objet
ClasseurSource = ActiveWorkbook.Name => renvoie dans la variable ClasseurSource le nom du classeur actif, cela n'en fait pas une référence objet à un quelconque classeur, votre With ClasseurSource ne peut donc fonctionner.

Façon de référencer un classeur dans une variable objet

VB:
Dim ClasseurSource as Workbook
Set ClasseurSource = ThisWorkbook  'référence objet au classeur qui contient la macro
With ClasseurSource
        For Each RCur In .Worksheets("data").Range("B2:B78") ' ne pas oublier les points devant les objets enfants de ClasseurSource
            'Traitement
        Next
End With


Bons tests
 

JeanGui

XLDnaute Nouveau
merci Reblochon pour ces précisions sur les type de activeworkbooks (la problématique est que je passe d'un classeur à un autre pour y revenir) et les variables objets pour référencer un classeur. Je vais investiguer et tester ces pistes
 

Discussions similaires

Réponses
2
Affichages
137

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 690
dernier inscrit
souleymaane