Récupérer le nom d'un classeur dans une macro

Fchris

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à copier des données dans un tableau que j'ai créer. Ces données proviennent d'un autre classeur complété par d'autres utilisateurs. Lorsqu'ils enregistreront ce classeur,celui-ci portera un nom différent par utilisateur.

Je cherche à récupérer et utiliser ce nom dans mon code de récupération, mais je bloque. Voici mon code :

Code:
Sub CommandButton8_Click()

'ouverture du fichier

    Dim Nom As Variant
       
    Nom = Application.GetOpenFilename(filefilter:="Fichier Excel (*.xls),*.xls")
        If Nom = False Then
    MsgBox "Aucun Fichier Sélectionné", vbOKOnly + vbCritical, "Intégration non réalisée "
    Exit Sub
    
    Else
    Workbooks.Open Filename:=Nom
        End If

' Copie de la fiche dans le fichier de suivi

    [B]Windows("Fiche Stagiaire.xls").Activate[/B] [COLOR="DarkRed"][B]=>Là j'ai figé le nom de fichier
pour écrire mon code, mais j'ai essayé en remplacant la valeur 'Fiche Stagiaire'
par ma variable 'Nom' et ça ne fonctionne pas, j'ai une erreur 9 indice
non inclut dans la sélection. Pouvez-vous m'aider là dessus ?[/B][/COLOR]

    Sheets("Fiche").Select
    Sheets("Fiche").Copy After:=Workbooks("Suivi des Stagiaires.xls").Sheets("2007")
    Sheets("2007").Activate
    
    UserForm1.Show
            
End Sub

Merci par avance de votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Récupérer le nom d'un classeur dans une macro

Bonjour

regarde le code ci dessous, reviens si problème :

Code:
Sub CommandButton8_Click()
Dim Nom As String, wb As Workbook
       
    Nom = Application.GetOpenFilename(filefilter:="Fichier Excel (*.xls),*.xls")
        If Nom = "" Then
    MsgBox "Aucun Fichier Sélectionné", vbOKOnly + vbCritical, "Intégration non réalisée "
    Exit Sub
    
    Else
    Workbooks.Open Filename:=Nom
        End If

Set wb = ActiveWorkbook

wb.Activate 'mais il est déjà activé, ensuite tu utilises la variable wb comme un objet "classeur"

    Sheets("Fiche").Select
    Sheets("Fiche").Copy After:=Workbooks("Suivi des Stagiaires.xls").Sheets("2007")
    Sheets("2007").Activate
    
    UserForm1.Show
            End Sub

bonne soirée
@+
 

TestSugar1

XLDnaute Nouveau
Re : Récupérer le nom d'un classeur dans une macro

Bonjour,

J'ai à peu près la même problématique.

J'aimerais copier les données d'un fichier Adresses erronées 200902.xls vers un fichier Adresses erronées_macro.xls, dans lequel il y a des macros, et un bouton.

J'ai essayé le code suivant :
Code:
Sub Copie_données()

' Copie des données depuis le fichier Adresses erronées 200902.xls

Dim Nom As String, wb As Workbook
       
    Nom = Application.GetOpenFilename(filefilter:="Fichier Excel (*.xls),*.xls")
    If Nom = "" Then
        MsgBox "Aucun Fichier Sélectionné", vbOKOnly + vbCritical, "Intégration non réalisée"
        Exit Sub
    Else
        Workbooks.Open Filename:=Nom
    End If

Set wb = ActiveWorkbook

wb.Activate 'mais il est déjà activé, ensuite tu utilises la variable wb comme un objet "classeur"

    Sheets("Email").Select
    Sheets("Email").Copy After:=Workbooks("Adresses erronées_macro.xls").Sheets("Feuil1")
    Sheets("Feuil1").Activate
    
    'UserForm1.Show

End Sub

Le problème c'est que ça me copie bien les données du fichier source vers le fichier cible, mais dans un nouvel onglet (qui s'appelle Email).
Ce que je voudrais, ce serait copier mes données dans l'onglet existant, dans lequel j'ai le bouton de lancement de la macro.
Je suppose que c'est le Copy After qu'il faut modifier, mais quelle est la bonne syntaxe ?

Autre chose : est-il possible de ne pas mettre le nom de mon fichier cible (= fichier dans lequel se trouve cette macro = Adresses erronées_macro.xls) en dur dans le code ? Quelque chose comme "Fichier courant" ?

Merci:)
 

vbacrumble

XLDnaute Accro
Re : Récupérer le nom d'un classeur dans une macro

Rebonjour, bonjour le fil

TestSugar1:
Tu devrais plutôt créer un nouveau fil pour ta question que de créer une question dans un fil créé par une autre personne.

A propos, je t'ai posté un fichier exemple dans ton fil d'extraction d'emails.
 

TestSugar1

XLDnaute Nouveau
Re : Récupérer le nom d'un classeur dans une macro

Rebonjour, bonjour le fil

TestSugar1:
Tu devrais plutôt créer un nouveau fil pour ta question que de créer une question dans un fil créé par une autre personne.

A propos, je t'ai posté un fichier exemple dans ton fil d'extraction d'emails.

OK j'ai créé un nouveau fil pour cette question.

Merci pour ton fichier exemple : j'essaie de l'adapter chez moi, je te réponds dans l'autre fil de discussion :)
 

Discussions similaires

Statistiques des forums

Discussions
312 508
Messages
2 089 143
Membres
104 050
dernier inscrit
Pepito93100