bonjour j'ai un petit probleme de debutant sur vba.
Je travail en meme temps sur deux classeurs, du coup, il y'a un qui est actuellement ouvert d'ou j’exécute le code, et un autre que j'ouvre à l'aide de vba.
Dim nom_feuil As String
Dim nbrcellule
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim classeurB As Variant
Dim ws1 As Worksheet
Set wb1 = Workbooks.Open(chemin1)
Set wb2 = ActiveWorkbook()
Set ws1 = Worksheets("Feuil1")
nbrcellule = 0
For Each cel In Range("A:A")
If cel > "" Then
nbrcellule = nbrcellule + 1
End If
Next cel
For i = 2 To nbrcellule
nom_feuil = ws1.Cells(i, 1)
wb2.Worksheets(nom_feuil).Activate
Next
Ce que j'essaie de faire c'est récuperer l'information dans une cellule se trouvant dans wb1, qui correspond à une feuille sur wb2, et l'ouvrir par la suite pour executer le suite du code qui viendra par la suite. Cette etape se repete autant de fois qu'il y'a de ligne sur wb1.
Mais une fois j'arrive à l'étape wb2.worksheets(nom_feuil).activate , j'ai une erreur "l'indice n'appartient pas à la selection", et je n'arrive pas à voir ou est l'erreur.
Celui ci est toujours représenté par ThisWorkbook, quel que soit le classeur actif. Vous n'avez donc pas besoin de variable pour celui là. Par ailleurs ses feuilles sont aussi connues directement de VBA sous le nom figurant dans la rubrique Microsoft Excel Objets à gauche du nom Excel de la feuille rappelé entre parenthèses. Ce sont directement des objets Worksheet. Votre erreur vient probablement de ce qu'un Workbooks.Open rend actif le classeur ouvert, et que Wb2 et Wb1 représentent donc le même classeur. Ça ne se produira plus si vous utilisez ThisWorkbook à la place de Wb2.