Bonsoir,
J'ai besoin d'un coup de main sur une partie de mon code et je remercie d'avance ceux et celles qui voudront bien m'aider.
Je suis en train de créer un fichier ( dit guide) qui doit notamment récupérer des données d'un onglet d'un autre classeur (dit docmission) que je ne peux pas modifier puisqu'il ne m'appartient pas.
Le code fonctionne parfaitement (même si vous aurez sans doute des choses à redire sur l'écriture!) lorsque j'annonce quel onglet choisir dans le code. Mais je souhaite qu'au moment d'ouvrir le 2e classeur (docmission) je puisse choisir un des différents onglets sans savoir à l'avance lequel ouvrir.
Et là, ce qui doit être simple me bloque!
dans la phrase Sheets("ACI1").Select, je ne souhaite pas indiquer ("ACI1") mais "un truc" qui me permette de choisir un onglet de mon choix dans le doc [docmission]. Ces onglets changeant régulièrement, je ne connais pas à l'avance leur nom, l'onglet à choisir n'a pas forcement la même place à chaque fois dans le classeur et surtout je n'ai besoin que d'un onglet à chaque fois.
Sub MAJ()
'declaration de variable
Dim nom_fichier As Variant
Dim docmission As Workbook
'empêche affichage mess d'alerte
Application.DisplayAlerts = False
'optimisation du calcul de MAJ
Application.ScreenUpdating = False
'chemin d'accès
ChDir "H:/blablabla"
'récupération du nom du fichier sur le H
' le nom du fichier n'est pas statique
nom_fichier = Application.GetOpenFilename("fichier excel (*.), *.")
'initialisation de la variable docmission
Set docmission = Workbooks.Open(nom_fichier)
'efface la feuille périmètre du fichier guide
ThisWorkbook.Activate
Sheets("périmètre").Select
Range("B13:P40").Select
Selection.ClearContents
Range("B12").Select
'recuperation du contenu de périmètre contrôle du classeur DocMission MS
docmission.Activate
Sheets("ACI1").Select
Range("B2:P40").Select
Selection.Copy
'nom du fichier à remplir
Windows("NewGuideListe22.xlsm").Activate
Range("B13").Select
Selection.PasteSpecial , Transpose:=False
docmission.Close
Application.DisplayAlerts = True 'affiche les alertes
Application.ScreenUpdating = True ' affiche la page MAJ
End Sub
J'espère être claire...
://
je vous joins les fichiers allégés si ça peut aider