VBA nom feuille auto

Bonjour,

Voilà après pas mal d'aide de la part des internautes je commence à avoir un très bon fichier et qui fonctionne bien.

Mais il me reste encore un souci.

J'ai un classeur comprennent 3 feuilles excel.

1ere feuille = librairie de produits

2eme = saisie de quelles lignes pour remplir un tableau qui génère ma feuille 3

3eme = feuille que j'envois à mon fournisseur

Mais voilà dans mon code de la feuille 2, je défini ma feuille avec comme nom "N°Commande".

mais mon 1er geste c'est de la renommer d'ou j'ai une erreur.

Comment puis-je faire pour que mon code récupère automatiquement le nom de ma feuille?

Ou alors après réflexion est-t'il possible de mettre en place un code via un texbox pour renommer une feuille et le glisser ensuite dans le code?

Merci

25essai.xlsm (69.43 Ko)

Je pense que tout ce passe dans mon module 1.

Car je n'ai pas envie de refaire un UserForm avec un textbox encore.

Bonjour

Tes explication ne sont pas très claires.

Tu écris :

J'ai un classeur comprennent 3 feuilles excel.

1ere feuille = librairie de produits

2eme = saisie de quelles lignes pour remplir un tableau qui génère ma feuille 3

3eme = feuille que j'envois à mon fournisseur

Effectivement, on trouve 3 feuilles mais tu ne nommes que la première, et encore de façon incorrecte puisqu’en fait il s’agit de la feuille ‘’Librairie ‘’

Quelles sont celles que tu appelles ‘’2eme’’ et ‘’3eme’’ ?

Tu écris encore :

dans mon code de la feuille 2…

Or, je n’ai trouvé de code dans aucune feuille…

En revanche, j’ai trouvé 5 modules, contenant chacun une procédure dûment nommé.

De laquelle parles-tu ?

Essaie d’être plus précis et tu verras : on se bousculera pour te répondre !

Bye !

Bonjour,

solution 1 :

Mettre ta feuille en variable à l'ouverture du classeur :

Hors procédure, dans un module standard :

Public shNumCde as worksheet

Dans ThisWorkbook :

Private Sub Workbook_Open()
    Set shNumCde = Sheets("N°Commande")
End Sub
Sheets("N°Commande").Select
'devient
shNumCde.Select

solution 2 :

Regarde dans ton projet à gauche, devant le nom de la feuille tu as son codeName :

Feuil8(N°Commande)

Feuil8 est son codeName (que tu peux changer dans ses propriétés), tu peux l'utiliser pour désigner ta feuille. Il ne change jamais.

Sheets("N°Commande").Select
'devient
Feuil8.Select

eric

Merci de m'avoir répondu.

Le souci c'est que justement le nom de ma feuille change à chaque commande (num commande) je ne peux pas la bloquer par feuil8.select

En faite se que je cherche c'est quand dans mon UserForm2 je crée un textbox dans lequel je rentre mon n° de commande et il se reporte dans mes codes.

Merci

Effectivement, on trouve 3 feuilles mais tu ne nommes que la première, et encore de façon incorrecte puisqu’en fait il s’agit de la feuille ‘’Librairie ‘’

Quelles sont celles que tu appelles ‘’2eme’’ et ‘’3eme’’ ?

J'ai 3 feuilles qui sont :

  • Librairie
  • Commande fournisseur
  • Maquette
  • une 4ieme qui se génère via le bouton 'Nouvelle Feuille' et qui s'appelle 'N°Commande'

dans mon code de la feuille 2…

Or, je n’ai trouvé de code dans aucune feuille…

Oui désolé, je parlai dans la fenêtre développeur VB, mes codes sont ici

En revanche, j’ai trouvé 5 modules, contenant chacun une procédure dûment nommé.

De laquelle parles-tu ?

Il s'agît pour moi du module 2 et le UserForm2 à travailler afin que le code puisse récupérer le nom de la page pour générer la commande

Le module 1 consiste à créé une copie de la feuille maquette

Le module 2 consiste à reprendre mes lignes afin de coller le tout dans la feuille 'Commande fournisseur'

Le module 3 je l'ai supprimé

Le module 4 et 5 lance mes UserForm

Après je n'ai pas la bonne solution mais je pense qu'il faut que je crée dans mon UserForm2 un nouveau Textbox afin de renommer ma feuille mais après comme reprendre le numéro de la feuille?

Merci

Je te propose 2 solutions, tu n'en testes pas une seule et tu dis ça va pas...

Teste ce que je te dis, tu en parleras après.

Je répète : le codename ne change pas quand on renomme la feuille.

Et si tu utilises une variable elle reste la même, même si tu renommes ta feuille.

eric

Si j’ai bien compris, tu ne veux pas modifier ton mode opératoire qui consiste à créer une nouvelle feuille à partir d’une maquette, de lui donner un nom qui soit celui de ta future commande et de récupérer alors ce nom .

Je t’ai modifié en ce sens la procédure « N°Commande_nouvelle_commande »

Pour récupérer le nom de la nouvelle feuille, (donc n° de la commande), par exemple dans une variable V, il te suffit ensuite bien t’assurer que cette feuille est bien ta feuille active et tu fais :

V = activesheet.name

Tu as un exemple d’utilisation dans la macro que tu lances en cliquant sur le bouton "Générer commande" des feuilles créées.

OK ?

13essai-v1.xlsm (69.54 Ko)

Merci la partie qui consiste à donner un num à la feuille, le truc c'est quand faite je cherche aussi à réussir à générer la commande auto via le bouton 'Générer commande' , ça se passe dans mon module 2

With Sheets("N°Commande")

je ne sais pas comment dire au code d'aller récupérer le nom(aléatoire car numero de commande) de ma feuille ou y'a mon tableau.

Merci

Nouvelle version :

22essai-v2.xlsm (70.82 Ko)

OK ?

Bye !

Merci, quelle réactivité, j'apprends beaucoup merci.

ça fonctionne bien, par contre je suppose que pour mon UserForm2 je dois aussi placer la variable V à la place de ma variable

Dim ws As Worksheet 

afin de rentrer éditer une nouvelle ligne, non?

Dsl je débute et j'essai d'apprendre en même temps.

Nici a écrit :

je suppose que pour mon UserForm2 je dois aussi placer la variable V à la place de ma variable

Non puisque, au vu du code de ton userform2, tu ne fais appel qu'à la feuille "Maquette".

Bye !

gmb a écrit :
Nici a écrit :

je suppose que pour mon UserForm2 je dois aussi placer la variable V à la place de ma variable

Non puisque, au vu du code de ton userform2, tu ne fais appel qu'à la feuille "Maquette".

Bye !

Oui d'ou le souci car le 1er reflex est renommer la feuille avec un numéro de commande, aie, du coups la question je me la pose lol, comment faire

Je ne vois pas où est le problème.

Quand tu cliques sur le bouton « Editer ligne(s) », tu es sur une feuille qui a déjà un nom comme numéro de commande et rien ne t’invite à changer ce nom. Pourquoi crains –tu ce premier réflexe de vouloir renommer cette feuille ?

Quant au bouton « Nouvelle feuille », si on clique dessus, il demande justement le nouveau numéro pour le donner au nom de la nouvelle feuille.

Je me trompe ?

Bonjour,

Mon bouton 'Editer ligne(s)' s'il ont regarde le code de UserForm2 on voit que ça envoi le tout sur la feuille 'Maquette' (qui est cachée) et non sur la feuille 'N° 1'

Je voudrai que lorsque je rentre des lignes via mon bouton 'Editer ligne(s)' ça aille sur la feuille que je viens de renommer.

Merci

Bonjour

Tu écris :

Je voudrai que lorsque je rentre des lignes via mon bouton 'Editer ligne(s)' ça aille sur la feuille que je viens de renommer

Alors, voilà :

12essai-v3.xlsm (70.32 Ko)

Bonjour,

Désolé de répondre aussi tard, je n'ai pas re-travaillé sur mon fichier.

ça fonctionne impeccablement bien, grand bravo. Merci beaucoup

J'aurai certainement d'autres interrogation très bientôt mais j'essai déjà de voir si je peux les résoudre par moi même.

Encore merci

Rechercher des sujets similaires à "vba nom feuille auto"