Erreur dans le nom des onglets

Bonjour à tous,

Dans le fichier ci-joint, j'ai créé une liste de référence produit. J'ai créé le code suivant pour ajoutez un onglet par référence et noter dans la cellule A1 le nom du produit.

Sub Etude_refernce()

Dim nombre As Integer
Dim k As Integer
Sheets("PN CRISES").Select
nombre = Range("A" & Rows.Count).End(xlUp).Row
Range("C1") = nombre - 1
Range("D1") = "références"

k = 2
    Do While Cells(k, 1) <> ""
        Sheets.Add after:=Worksheets(Worksheets.Count())
        ActiveSheet.Name = Sheets("Feuil1").Cells(k, 1)
        ActiveSheet.Range("A1") = Sheets("Feuil1").Cells(k, 1)
        ActiveSheet.Range("A1").Font.Size = 20
        Sheets("Feuil1").Activate
    k = k + 1
    Loop

'
End Sub

Le problèmes est que mes références ont des "/" et que la suite de mon programme fait une recherche dans d'autres fichiers excel exportés depuis un logiciel interne de ces références.

J'aimerais ajouter quelque chose comme "on error goto ..." où lorsqu'il y a une erreur dû à un "/", le nom de la nouvelle feuille est sans le "/" mais le nom de la référence dans la case "A1" de la nouvelle feuille reste avec le slash.

J'espère avoir été clair, n'hésitez pas si vous avez des questions.

Merci,

Simon

5test.xlsx (8.15 Ko)

Bonjour,

une solution possible:

        .../...
        Sheets.Add after:=Worksheets(Worksheets.Count())
        MaFeuil = Replace(Sheets("Feuil1").Cells(k, 1), "/", "_")
        ActiveSheet.Name = MaFeuil
        ActiveSheet.Range("A1") = Sheets("Feuil1").Cells(k, 1)
        .../...

A+

Bonjour,

La procédure revisitée !...

Option Explicit

Public Sub Etude_reference()
Dim nombre As Long
Dim k As Long: k = 2

    With Worksheets("PN CRISES")
        nombre = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Cells(3).Value = nombre - 1
        .Cells(4).Value = "références"
    End With

    With Worksheets("Feuil1")
        Do While .Cells(k, 1).Value <> ""
            Worksheets.Add after:=Worksheets(Worksheets.Count())
            With ActiveSheet
                .Name = Replace(Worksheets("Feuil1").Cells(k, 1).Value, "/", "_")
                With .Cells(1)
                    .Value = Worksheets("Feuil1").Cells(k, 1).Value
                    .Font.Size = 20
                End With
            End With
            k = k + 1
        Loop
    End With

    Worksheets("Feuil1").Activate

End Sub

Bonjour Jean-Eric,

Merci pour cette proposition, en revanche elle ne fonctionne pas. J'ai un message d'erreur lors de l'ajout d'une feuille avec un slash.

S'il le faut, on peut enlever le slash également dans la "Feuil1" et simplement le conserver dans la cellule A1 de chaque feuille.

Merci beaucoup,

Simon

Re,

Dans cet exemple, cela fonctionne :

2simon-lbb.xlsm (16.32 Ko)

Jean-Eric,

Merci beaucoup c'est super.

Bonne journée,

Simon

Oui désolé je n'avais vu que le message de AlgoPlus en fait et je parlais du sien quand je disais qu'il ne fonctionnait pas.

Merci pour ton aide, c'est super.

Simon

Rechercher des sujets similaires à "erreur nom onglets"