Copier/coller le nom d'un onglet VBA

Nonno

XLDnaute Nouveau
Bonjour,

Je voudrais copier un onglet d'un fichier pour le coller dans un autre tout en copiant également le nom de l'onglet. Je ne trouve pas le code pour copier/coller le nom de l'onglet pouvez vous m'aider ?
Voici mon code :

Code:
 Workbooks.Open (Chemin & "\" & DossierDB & "\" & FichierDB), UpdateLinks:=False
        Workbooks(FichierDB).Activate
        Cells.Select
        Selection.Copy
        Windows(FichierMacro).Activate
        ActiveWindow.ScrollWorkbookTabs Position:=xlLast
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Paste
        ActiveWindow.DisplayGridlines = False
        ActiveWindow.Zoom = 85
        Application.CutCopyMode = False
        Workbooks(FichierDB).Activate
        [B]ActiveSheet.Name.Copy[/B]
        Windows(FichierMacro).Activate
        [B]ActiveSheet.Name.Paste[/B]

Ca bloque pour la partie en gras...

Merci d'avance,

Nono
 
Dernière modification par un modérateur:

Papou-net

XLDnaute Barbatruc
Re : Copier/coller le nom d'un onglet VBA

Bonjour Nonno,

Pas pu vérifier du fait que tu n'as pas joint le code en intégralité.

Toutefois, tu peux essayer la comme suit:

Code:
Private Sub Workbook_Open()
Dim NomOnglet As String

Workbooks.Open (Chemin & "\" & DossierDB & "\" & FichierDB), UpdateLinks:=False
With Workbooks(FichierDB)
  NomOnglet = .ActiveSheet.Name
  .Cells.Copy
End With
Windows(FichierMacro).Activate
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
ActiveWindow.DisplayGridlines = False
ActiveWindow.Zoom = 85
Application.CutCopyMode = False
ActiveSheet.Name = NomOnglet
A +

Cordialement.
 

Nonno

XLDnaute Nouveau
Re : Copier/coller le nom d'un onglet VBA

Si je met la deuxième version il bloque a :
Code:
NomOnglet = .Name.Cells.Copy

Par contre la première ca marche juste pour l'onglet ca me met "vrai" comme nom d'onglet au lieu de me copier le nom de l'onglet du fichier d'avant.
 

Nonno

XLDnaute Nouveau
Re : Copier/coller le nom d'un onglet VBA

Voici mon code en intégralité :

Code:
 Sub Bouton1_Cliquer()
    Dim FichierMacro As String
    Dim Chemin As String
    Dim DossierDB As String
    Dim FichierDB As String
    Dim NomOnglet As String

    FichierMacro = ActiveWorkbook.Name
    Chemin = ActiveWorkbook.Path

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    DossierDB = Sheets("Macro").Range("A2")
    If DossierDB <> "" Then
        FichierDB = Dir(Chemin & "\" & DossierDB & "\SX*.xls")
        
Do Until FichierDB = ""
            Workbooks.Open (Chemin & "\" & DossierDB & "\" & FichierDB), UpdateLinks:=False
            
            If FichierDB = UCase(ActiveSheet.Name) Like "*SX*" Then

            Windows(FichierMacro).Activate
            Sheets(Left(FichierDB, Len(FichierDB) - 4)).Select
            Rows("7:7").Select
            Range(Selection, Selection.End(xlDown)).ClearContents
            
            Workbooks(FichierDB).Activate
            Rows("7:1000").Select
            Selection.Copy
            Windows(FichierMacro).Activate
            ActiveSheet.Paste

            Workbooks(FichierDB).Activate
            ActiveWorkbook.Close True
            Application.Wait (Now + TimeValue("00:00:01"))
            FichierDB = Dir
            
        Else
        Workbooks.Open (Chemin & "\" & DossierDB & "\" & FichierDB), UpdateLinks:=False
        Workbooks(FichierDB).Activate
        NomOnglet = ActiveSheet.Cells.Copy
        Windows(FichierMacro).Activate
        ActiveWindow.ScrollWorkbookTabs Position:=xlLast
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Paste
        ActiveWindow.DisplayGridlines = False
        ActiveWindow.Zoom = 85
        Application.CutCopyMode = False
        ActiveSheet.Name = NomOnglet
        End If
        

        
        
    Loop
    
        
    End If

    Sheets("Macro").Select
    ActiveCell.Offset(1, 0).Select

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

    MsgBox ("La compilation est terminée")

End Sub

Je souhaite avoir une boucle qui me réalise cette action :
- si le nom du fichier A apparaît dans un de mes onglets de mon fichier B alors "Code..."
si non (càd si un fichier nommé AA existe mais n'existe pas en tant qu'onglet dans mon fichier B ) alors ouvrir le fichier AA et copier l'onglet, créer un onglet à la fin dans le fichier B et coller les éléments. Copier/Coller également le nom de l'onglet.

J'ai déjà un début de code mais ca ne marche pas bien ....

Merci infiniment de votre aide
 

Papou-net

XLDnaute Barbatruc
Re : Copier/coller le nom d'un onglet VBA

Bonjour Nonno,

Malgré l'intégralité de ton code à l'écran, je peine à cerner l'étendue du problème.

Peux-tu joindre une copie édulcorée de tes fichiers A et B, avec le résultat visé?

Dans cette attente.

Cordialement.
 

Nonno

XLDnaute Nouveau
Re : Copier/coller le nom d'un onglet VBA

Bonjour,

Je ne peux pas mettre les fichiers sur le site...
Pour revenir à ma question de départ, je souhaite copier coller le nom d'un onglet. Cependant lorsque je lance ma macro j'ai un message d'erreur me disant " impossible de renommer une feuille comme une autre feuille". Est-il donc impossible d'avoir deux fichiers excels qui ont le même nom d'onglet ?

Ci-joint le code :
Code:
        Workbooks.Open (Chemin & "\" & DossierDB & "\" & FichierDB), UpdateLinks:=False
        Workbooks(FichierDB).Activate
        Cells.Select
        Selection.Copy
        Windows(FichierMacro).Activate
        ActiveWindow.ScrollWorkbookTabs Position:=xlLast
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Paste
        ActiveWindow.DisplayGridlines = False
        ActiveWindow.Zoom = 85
        Application.CutCopyMode = False
        With Workbooks(FichierDB).ActiveSheet
        NomOnglet = .Name
        Windows(FichierMacro).Activate
        ActiveSheet.Name = NomOnglet
        End With

Merci
 

Nonno

XLDnaute Nouveau
Re : Copier/coller le nom d'un onglet VBA

Alléluia j'ai réussi ! Le code était le bon j'avais juste une feuille qui avait le même nom j'ai du le changer et c'était bon.
En tout cas merci pour votre aide !

J'avais donc ma deuxième question : est-ce qu'un code existe pour dire :
Si le nom d'une feuille excel est égale au nom d'une autre feuille d'un autre fichier excel alors ...
Si non, alors ...
 

Papou-net

XLDnaute Barbatruc
Re : Copier/coller le nom d'un onglet VBA

RE:

Peut-être quelque chose dans ce genre:

Code:
Sub ChercheFeuille()
Dim WBc, WBs, sh

Set WBc = Workbook("nom du fichier cible")
Set WBs = ThisWorkbook

For Each sh In WBc.Sheets
  If sh.Name = WBs.ActiveSheet.Name Then
    ' code si oui
    Else
    ' code si non
  End If
Next
End Sub
A +

Cordialement.
 

Papou-net

XLDnaute Barbatruc
Re : Copier/coller le nom d'un onglet VBA

Merci !

cependant j'ai une question : à la ligne
Code:
 Set WBc = Workbooks("nom du fichier cible")
Je n'ai pas compris quel fichier il fallait mettre...

Merci

Cdt

C'est le nom du fichier cible dans lequel le code cherche si la feuille s'y trouve.

WBc=fichier source, celui qui contient la macro

WBs=fichier cible, celui dans lequel tu cherches le nom de la feuille active du fichier source

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 652
Messages
2 090 542
Membres
104 572
dernier inscrit
saumech