faire référence à une feuil dont le nom est ignoré

Blafi

XLDnaute Occasionnel
Bonsoir le forum,

Je rencontre un pb et je ne trouve pas la solution sur le forum :

Pour alimenter un classeur, je dois ouvrir un autre classeur puis copier la seule feuille présente dans ce classeur (qui est la Feuil5) dans mon premier classeur.
Le problème est que je ne connais pas le nom de la feuille à copier car ce nom est composé du nom du classeur la contenant suivie d'une date qui change à chaque fois.
L'ouverture du classeur fournissant la feuille est commandée par une boite de dialogue dans laquelle l'utilisateur choisit un nom (il s'agit des noms des sections d'un cercle culturel).
Par exemple, je joins le classeur de la section "Bridge" dont la seule feuille ici est "Bridge du 22-09-13", ce nom changeant à chaque fois.
Si j'essaye avec sheets(5).copy before etc... ou si j'essaye avec activesheet.copy before... j'obtiens un message d'erreur "l'indice n'appartient pas à la selection".... et là je ne comprend plus car il s'agit bien de la feuille 5 et c'est bien la feuille active dans ce classeur...

Merci à ceux qui pourraient m'aider e n m'indiquant comment faire...
 

Pièces jointes

  • BridgeS.xlsx
    121.5 KB · Affichages: 35

Dranreb

XLDnaute Barbatruc
Re : faire référence à une feuil dont le nom est ignoré

Bonsoir.
copier la seule feuille présente dans ce classeur (qui est la Feuil5)
Dans ce cas, quel que soit son nom Excel et le nom de l'objet Worksheet qui lui correspond dans le projet VBA de ce classeur, c'est toujours CeClasseurLà.Worksheets(1)
 
Dernière édition:

Blafi

XLDnaute Occasionnel
Re : faire référence à une feuil dont le nom est ignoré

Re Dranreb,

Je viens d'essayer mais ma macro ne veut rien savoir : soit j'obtiens "l'indice n'appartient pas à la selection" soit j'obtiens "objet non géré par.."
Je te joins, en plus du fichier précédent (bridgeS.xlsx) , le fichier dans lequel j'essaye d'intégrer la feuille copiée (Mise en forme mail.xlsm). Ce fichier contient l'USF de choix du classeur à ouvrir, et dans le bouton OK de cet USF le code qui me pose problème...

Que puis-je faire ?

Merci d'avance pour l'aide.

Nota : mes excuses mais comme il est tard, je consulterais la réponse demain..
 

Pièces jointes

  • Mise en Form mail.xlsm
    64.8 KB · Affichages: 31

Dranreb

XLDnaute Barbatruc
Re : faire référence à une feuil dont le nom est ignoré

Essayez comme ça :
VB:
Private Sub CommandButton1_Click()
Dim ChNomF As String, ClsSrc As Workbook
Me.Hide
SectionFiltre = Me.ComboBox1.Value
ChNomF = ThisWorkbook.Path & "\Extractions\" & SectionFiltre & ".xlsx"
On Error Resume Next
Set ClsSrc = Workbooks.Open(Filename:=ChNomF)
If Err Then
   MsgBox "Erreur en tentant d'ouvrir :" & vbLf & ChNomF & vbLf & Err.Description, vbCritical, Me.Caption
   Me.Show: Exit Sub: End If
On Error GoTo 0
ClsSrc.Worksheets(1).Copy After:=Feuil3
ClsSrc.Close SaveChanges:=False
Unload Me
End Sub
À demain.
 

Blafi

XLDnaute Occasionnel
Re : faire référence à une feuil dont le nom est ignoré

Bonjour,
Merci Dranreb pour toute cette aide.
En fait, j'ai réussi tôt ce matin à faire marcher mon bazar en utilisant, comme tu l'avais dit sheets(1) pour copier la feuille désirée. Ma macro bloquait aussi sur le sheet(3) du classeur de destination, car après avoir supprimé l'ancienne feuille LaBase, il faut insérer la nouvelle avant la sheet(2) et non pas 3...

Je garde ta macro en réserve et je ne manquerai pas de l'utiliser au besoin.

Encore merci et à +. Cordialement.
 

Dranreb

XLDnaute Barbatruc
Re : faire référence à une feuil dont le nom est ignoré

Bonjour.
J'ai dit Worksheets(1), pas Sheets(1). Sheets est une collection d'éléments Object, puisqu'ils peuvent être aussi bien des Chart que des Worksheet. Worksheets est une collection d'objets uniquement Worksheet.
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35