Creation d'une nouvelle feuille

Bonjour,

je cherche à copier de maniere réguliere le dernier onglet, et de le renommer du nom de la facture. j'ai enregistré une macro et alors que tout c'est bien passé, lorsque je veux me reservir de la macro elle est fausse car elle fait référence a un nom particulier alors qu'il faudrait que je fasse référence à l'onglet qui est juste devant (ou a gauche) de l'onglet où se trouve le bouton. Comment faire pour nommer cet onglet de cette maniere en VBA ?

merci d'avance


pour info voici la macro :

Sub RAJOUTER_UNE_FACTURE()

'

' RAJOUTER_UNE_FACTURE Macro

'

'

Sheets("F2016001").Select

Sheets("F2016001").Copy Before:=Sheets(4)

Range("B9").Select

ActiveCell.FormulaR1C1 = "=+F2016001!RC+1"

Range("B9").Select

Sheets("F2016001 (2)").Select

Range("B9").Select

Selection.Copy

Sheets("F2016001 (2)").Select

Sheets("F2016001 (2)").Name = "2016002"

Range("B8").Select

Application.CutCopyMode = False

Selection.ClearContents

Range("B10").Select

Selection.ClearContents

Range("E6:F8").Select

Selection.ClearContents

Range("A14:G38").Select

Selection.ClearContents

End Sub

voici un fichier plus simple

https://www.cjoint.com/c/FAdtkVtHlhg

Bonjour,

Pour le principe, à tester.

Cdlt.

Public Sub DEMO()
Dim wb As Workbook
Dim wsNum As Long

    Set wb = ActiveWorkbook

    With wb
        wsNum = .Worksheets.Count + 1
        .Worksheets(1).Copy after:=.Worksheets(Worksheets.Count)
    End With

    With ActiveSheet
        .Name = wsNum
        .Cells(6, 2).Value = wsNum
    End With

    Set wb = Nothing

End Sub

Bonjour Jean Eric,

Ca fonctionne merci beaucoup, la seule difficulté c'est qu'en dehors des onglets factures il y a d'autres onglets, comment faire pour qu'il ignore les autre onglets et continue la numéroration ? https://www.cjoint.com/c/FAduskFZTJg

merci encore

Re,

Procédure à tester et à adapter.

Cdlt.

Public Sub DEMO2()
Dim wb As Workbook
Dim ws As Worksheet
Dim wsNum As Long

    Set wb = ActiveWorkbook

    With wb
        'wsNum = .Worksheets.Count + 1
        For Each ws In .Worksheets
            If ws.Name <> "devis" And ws.Name <> "stock" Then
                wsNum = wsNum + 1
            End If
        Next ws
        .Worksheets(1).Copy after:=.Worksheets(Worksheets.Count)
    End With

    With ActiveSheet
        .Name = wsNum + 1
        .Cells(6, 2).Value = wsNum + 1
    End With

    Set wb = Nothing

End Sub

ouahou ! genial merci beaucoup ca fonctionne super bien ! je vais maintenant essayer de comprendre votre code histoire de me coucher moins bête !

merci encore de votre aide

Rechercher des sujets similaires à "creation nouvelle feuille"