Copier des feuilles sans nom dans un autre classeur

Bonjour à tous les membres du forum.

Désolé du titre étrange, je n'avais aucune idée précise d'un nom clair qui ne ressemble pas à d'autre problèmes sur le forum.

J'ai faits des recherches sur le forum pour trouver des pistes de solutions pour mon souci mais aucun de ceux que j'ai trouvés ne m'aide précisément sur un détail en particulier.

Mon document possède un menu Accueil avec un bouton : Nouveau Mois. Ce bouton doit copier la feuille Accueil ainsi que la 2e feuille : Original dans un nouveau classeur que j'ai renommé auparavant dans le même dossier. Jusque-là tout fonctionne bien. Ce que je suis incapable de faire, (mes connaissances sont principalement limité dans l'utilisation du VB dans les applications offices) est de copier la dernière page du document à la suite des 2 autres, sans mentionner son nom et sa position puisqu'il n'est jamais identique dans aucun des documents.

Le code doit fonctionné dans les documents que ce même bouton reproduit.

J'ai essayé plusieurs formules que j'ai modifiées en conséquence mais rien n'a fonctionné jusqu'à maintenant.

Mon code :

Private Sub CommandButton1_Click()
Dim nomfic As String
Dim nomcplet As String
Dim nbfeuil  As String

nomfic = Me.TextBox1.Text
If Dir(ActiveWorkbook.Path & "\" & nomfic + ".xlsm") <> "" Then
    MsgBox ("Le fichier" + " " + nomfic + ".xlsm" + " " + "existe déjà")
    Exit Sub

Else

    ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & nomfic + ".xlsm"

    End If

nomcplet = nomfic + ".xlsm"

Workbooks.Open (ActiveWorkbook.Path & "\" & nomfic + ".xlsm")
While nbfeuil > 2
    Workbooks(nomcplet).Sheets(nbfeuil).Range("A12:G28").ClearContents
    Workbooks(nomcplet).Sheets(nbfeuil).Range("C31:G31").ClearContents
    Workbooks(nomcplet).Sheets(nbfeuil).Range("A32:G32").ClearContents
    nbfeuil = nbfeuil - 1
Wend

Workbooks(nomcplet).Activate
Workbooks(nomcplet).Sheets(1).Range("B7").Value = Me.TextBox1.Text
ActiveWorkbook.Save
ActiveWorkbook.Close
MsgBox "Mois de " + nomfic + " Créé avec succès."

 End Sub

Je vous remercie de toute l'aide que vous aller m'apporter.

Merci et bonne fin de journée.

Bonsoir,

question: tu cherches une feuille qui n'a jamais le même nom ni la même position ! donc à quoi la reconnais-tu ?

Si tu ne la reconnais pas, tu seras bien en peine pour la tranférer... Si tu la reconnais, il ne te reste qu'à appliquer ce moyen de reconnaissance dans ton code pour la trouver !!!

Cordialement.

désolé ! Je m’aperçois à l'instant que ce n'est pas dans ce code que les feuilles ont leur nom.

C'est dans ce code.

Private Sub CommandButton1_Click()
Dim nbpage As Integer
nbpage = Sheets.Count
Sheets(nbpage).Copy After:=Sheets(Sheets.Count)
    ' Renomme la feuille
        Application.ActiveSheet.Name = Me.daterap.Text
        Application.ActiveSheet.Range("H51").Value = Me.daterap.Text
        Application.ActiveSheet.CheckBox1.Enabled = True
        Application.ActiveSheet.CheckBox1.Value = False

 Unload Me

End Sub

Donc pour répondre à ta question, Ce qui les identifie ce sont la textbox nommée : datera. il gagne un nom par rapport à ce que tu rentres dans la textbox. j'ai faits des tests et je comprends pas comment faire le code pour y placer une textbox comme variable.

Ce n'est peut-être pas possible non plus.

Merci.

Bonjour à tous.

J'ai travaillé avec un collègue et nous avons trouvé la solution.

Nous avons faits l'inverse de ce que je voulais faire au départ. Plutôt que copier les 2 premières et la dernière, nous avons copié toutes les pages et supprimé celles qu'on ne voulait plus. C'étais plus facile de cette manière.

Si cela peut aider d'autres personnes alors voici le code:

Private Sub CommandButton1_Click()
Dim nomfic As String
Dim nomcplet As String
Dim dfeuille As Integer
Dim nbfeuil As Integer

nomfic = Me.TextBox1.Text
If Dir(ActiveWorkbook.Path & "\" & nomfic + ".xlsm") <> "" Then
    MsgBox ("Le fichier" + " " + nomfic + ".xlsm" + " " + "existe déjà")
    Exit Sub

Else

ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & nomfic + ".xlsm"

    End If

nomcplet = nomfic + ".xlsm"
Workbooks.Open (ActiveWorkbook.Path & "\" & nomfic + ".xlsm")
Application.DisplayAlerts = False
nbfeuil = Workbooks(nomcplet).Sheets.Count
nbfeuil = nbfeuil - 1
While nbfeuil > 2
    Workbooks(nomcplet).Sheets(nbfeuil).Delete
    nbfeuil = nbfeuil - 1
Wend
Application.DisplayAlerts = True
Workbooks(nomcplet).Activate
Workbooks(nomcplet).Sheets(1).Range("B7").Value = Me.TextBox1.Text
ActiveWorkbook.Save
ActiveWorkbook.Close
MsgBox "Mois de " + nomfic + " Créé avec succès."
Me.Hide

End Sub

Merci à toi MFerrand et bonne continuation à tous les membres du forum.

Rechercher des sujets similaires à "copier feuilles nom classeur"