Vinaigrette57
XLDnaute Nouveau
Bonjour,
Je cherche à activer une feuille dans un classeur différent de ThisWorkbook, qui est ouvert et visible, mais en la sélectionnant avec son nom qui est contenu dans une cellule de ThisWorkbook. Le nom existe donc bien, car récupéré 2sec avant.
Pour résumer ce que je compte faire, j'ai une listbox qui me recense les feuilles sélectionnées (de l'autre classeur ouvert) par l'utilisateur, et les saisies dans ma ThisWorbook.Sheets(1), dans une plage bien définie, et j'exécute un code avec un for..to sur chacune des feuilles sélectionnées.
Auparavant j'avais un BookToCopy.ActiveSheet qui marchait très bien, mais maintenant je veux pouvoir sélectionner la feuille avec son nom contenu dans la cellule A1 de la feuille 1 de ThisWorkbook.
Je ne sais pourquoi la dernière ligne ci-après ne fonctionne pas.. (err. 438)
Petit bout de code pour que vous voyez un peu le contexte :
BookToCopy is a workbook / SheetToCopy is a worksheet / NameSheetToCopy is a string
	
	
	
	
	
		
En vous remerciant si vous avez une idée du pourquoi du comment, ou une alternative.
Je précise que j'ai passé une heure et demi à chercher en FR/EN sur internet avant de venir poser ma question et ai testé 15 solutions possibles mais rien n'y fait..
Cordialement.
	
		
			
		
		
	
				
			Je cherche à activer une feuille dans un classeur différent de ThisWorkbook, qui est ouvert et visible, mais en la sélectionnant avec son nom qui est contenu dans une cellule de ThisWorkbook. Le nom existe donc bien, car récupéré 2sec avant.
Pour résumer ce que je compte faire, j'ai une listbox qui me recense les feuilles sélectionnées (de l'autre classeur ouvert) par l'utilisateur, et les saisies dans ma ThisWorbook.Sheets(1), dans une plage bien définie, et j'exécute un code avec un for..to sur chacune des feuilles sélectionnées.
Auparavant j'avais un BookToCopy.ActiveSheet qui marchait très bien, mais maintenant je veux pouvoir sélectionner la feuille avec son nom contenu dans la cellule A1 de la feuille 1 de ThisWorkbook.
Je ne sais pourquoi la dernière ligne ci-après ne fonctionne pas.. (err. 438)
Petit bout de code pour que vous voyez un peu le contexte :
BookToCopy is a workbook / SheetToCopy is a worksheet / NameSheetToCopy is a string
		VB:
	
	
	    For i = 1 To .SelectedItems.Count 'Début de boucle pour chaque fichier sélectionné
   
    Set BookToCopy = Workbooks.Open(FD.SelectedItems(i)) 'BookToCopy = Fichier ouvert
   
    UserForm.Show
   
    'Application.ScreenUpdating = False
   
    LastSheetInMain = Sheets(1).Cells(Rows.Count, 48).End(xlUp).Row
   
    For fCell = 4 To LastSheetInMain Step 1 'Début de boucle pour chaque feuille sélectionnée
   
    BookToCopy.Visible = True
   
    'Set SheetToCopy = BookToCopy.ActiveSheet
    NameSheetToCopy = ThisWorkbook.Sheets(1).Range("A1").Value
   
    If NameSheetToCopy <> 0 Then MsgBox ("OK pas vide")
    'Set SheetToCopy = BookToCopy.Sheets(NameSheetToCopy) 'On copie la feuille sélectionnée
	En vous remerciant si vous avez une idée du pourquoi du comment, ou une alternative.
Je précise que j'ai passé une heure et demi à chercher en FR/EN sur internet avant de venir poser ma question et ai testé 15 solutions possibles mais rien n'y fait..
Cordialement.
			
				Dernière édition: