Problème sur code création nouvelle feuille

Bonjour,

j'utilise ce code pour copier une trame de bon de commande et coller dans un autre onglet mais le problème est qu'il me met comme nom d'onglet trame bon de commande (2) j'aurai voulu qu'il mette dans le nouvel onglet le nom" Bon de Commande".

Je ne comprends pas dans un classeur différent ca fonctionne et dans celui la non....?pourtant même code

Dim b As String

Dim c As String

Dim d As String

'affiche la trame pour selection/copier/coller puis disparait'

With Sheets("Trame Bon de Commande")

.Unprotect

.Visible = True

.Copy Before:=Sheets(1)

.Visible = True

End With

If FeuilleExiste(ThisWorkbook, b) Then

MsgBox "La feuille " & b & " existe déjà. Changez de nom."

b = ""

End If

ActiveSheet.Name = "Bon de Commande"

'couleur de l'onglet aléatoire'

ActiveSheet.Tab.Color = RGB(Int(256 * Rnd), Int(256 * Rnd), Int(256 * Rnd))

activeSheet.Protect DrawingObjects:=True, Contents:=False, Scenarios:=False _

, AllowInsertingRows:=True, AllowDeletingRows:=True

et dans module:

Function FeuilleExiste(wk As Workbook, stFeuille) As Boolean

On Error Resume Next

FeuilleExiste = Not (wk.Sheets(stFeuille) Is Nothing)

End Function

Merci .

Bonjour,

j'utilise ce code pour copier une trame de bon de commande et coller dans un autre onglet

Ce n'est pas ce que tu fais ! mais de toute façon ton code est quelque peu incohérent... Revois-le pas à pas !

et bien je ne comprend pas puisque ça fonctionne déjà dans un classeur différent et pas dans le nouveau pourtant c le même code....

avec la feuille trame bon de commande je la déprotege, je la rend visible ensuite je la copie je cache de nouveau la trame d'ailleur ce n'est pas true mais false desolé ensuite si elle existe msg box pour changer de nom sinon je donne à la feuille active le nom de l'onglet Bon de commande... certainement la que ce n'est pas conforme.

Je suis perdu merci de m'arranger ce petit bout de code.

.Copy Before:=Sheets(1)

Ceci copie une feuille, et non des données d'une feuille pour les coller dans une autre : les deux choses n'ont rien à voir l'une avec l'autre !

D'autre part, ton code est incomplet, il n'y a pas de début de procédure, ni de fin de procédure, on débute par 3 déclarations de variables, lesquelles ne sont jamais initialisées, et 2 sont inutilisées.

Il faut donc d'abord savoir où l'on est...

Tu es par ailleurs prié d'utiliser les balises Code pour citer du code, il sera déjà un peu plus lisible...

Merci et désolé pour les balises.

je ne suis qu'une amatrice en vba et j'ai déplacé simplement la ligne activesheet.name=Bon de commande en dessous de end with et ca me crée bien l'onglet et j'ai bien la copie de ma feuille trame donc je considère le problème résolu.

Merci MFerrand pour votre explication.

Rechercher des sujets similaires à "probleme code creation nouvelle feuille"