Nom de feuille auto en fonction des 2 premiers caracteres de cellules

Bonjour à tous,

Je ne suis pas bête, mais pas bon en macro, et surtout pas le temps (malheureusement) pour apprendre les détails. Mais j'ai des connaissance relative a la programmation qui me permettent de ne pas être perdu, mais plus c'est détaillé, plus ça me va, (notamment pour ceux qui reprendront le travail derrière).

J'ai évidemment plusieurs problèmes, mais le principal est le premier :

CONTEXTE : Établissement d'une trame de devis (plus ou moins) automatisée, afin de remplacer la version de 2000 de ma boite, ou tout était manuel, même la recherche des prix dans la BD.

FORMAT :

- Une première feuille "DEVIS" avec la trame, en-tête et pieds de page etc... (pas la meilleure idée certes, mais c'est comme ça...) qui sera imprimée et envoyer au client.

- Une seconde "RECAP" dans lequel est listé le rang (colonne A), chaque LOT (colonne B : (fonction indirect "rang = feuille"+A2) et le prix global (colonne C) de chaque lot associé, idéalement avec un bouton en bout de chaque ligne afin d’accéder a la page voulu (c'est une demande)

- XX pages (27 maximum - sur le plus gros devis ayant été réalisé jusqu'à présent) toutes identiques (à la longueur du tableau près) constituées comme suit : en B2 le nom du lot exemple : "05 - Tuyauterie" son total en G7 puis plus bas le tableau de chiffrage

- Une page BD extraite d'un logiciel d'achat

PROBLEME 1 :

L'idée est de pouvoir renommer les XX feuilles (donc pas les deux premières ni la dernière) en sélectionnant les deux premiers caractères de la cellule B2 de chaque feuille, j'avais tenté un truc sans grand succès du genre :

Dim sh As Worksheet
sh.Name = Left(sh.Range("B2").Text, 2) 

PROBLEME 2 :

La création du bouton sur la feuille 'RECAP', j'ai fais ceci qui fonctionne pas mal,

ActiveSheet.Buttons.Add([D4].Left, [D4].Top, [D4].Width, [D4].Height).Select
    Selection.Characters.Text = [B4].Value

mais le bouton n'est pas cliquable (et pour cause il ne renvoie a rien) par contre il prend bien le texte. j'ai bien essayé des trucs comme

Sheets((Range("A4").Value).Select

le problème c'est que j'ai la valeur 1 en A4 alors il me renvoie à la première page du classeur a savoir "DEVIS"

Également, plutôt éviter la méthode bourrin de faire 27 macros pour les 27 boutons des 27 lignes, l'automatiser dans une boucle et rajouter le fait de ne pas faire de bouton si la cellule BXX est vide ?

Je suis tellement paumé, que la moindre idée sera la bienvenue, sur la procédure, le code, l'utilité de la manœuvre, bien que le chef ait toujours raison

En vous remerciant,

Informatiquement,

Vincent

Bonjour Vincent ...

  • un fichier serait mieux qu'un long discours, fichier simplifié (on n'a pas besoin de la trame du devis)
  • quelle action souhaites-tu avec le bouton ?

Bonjour Steelson,

Merci pour la réponse,

Effectivement, ce serait plus simple, je te joins ça.

J'ai mis des explication dedans, ça devrait être clair, si ça ne l'était pas, n"hésite pas.

Vincent

Pour la numérotation des feuilles

Sub numeroter()
For i = 3 To Worksheets.Count - 1
    Worksheets(i).Name = Left(Worksheets(i).Range("B2").Value, 2)
Next
End Sub

La création du bouton sur la feuille 'RECAP',

il n'y a pas de feuille RECAP !

Inutile de mettre des boutons, plus simplement ...

=SIERREUR(LIEN_HYPERTEXTE(INDIRECT("'" & [@Rang] & "'!B2");"vers … " & [@DESIGNATION]);"")

qui fonctionnera après numérotation des feuilles.

La création du bouton sur la feuille 'RECAP',

il n'y a pas de feuille RECAP !

PARDON, la feuille Bilan

et pour le bouton, c'est un bouton en face de chaque ligne qui agit comme celui présent mais sans l'erreur

J'aime bien l'idée du lien, a voir si c'est validé.

J'aime bien l'idée du lien, a voir si c'est validé.

plus simple et plus souple !

En revanche, ça me met un message d'erreur : Impossible d'ouvrir le fichier spécifié

Désolé

J'ai ajouté en B1 le nom du fichier ...

Super !

ça fonctionne, j'ignorais qu'il fallait le nom du fichier en plus.

Dernière question, comment faire pour lui demander d'imprimer certaines pages, ou définir une zone modulable automatique ?

Je compte établir le devis comme dans le fichier joint, afin de pouvoir modifier la largeur des colonnes de la page de garde et de la page signature, le corps contenant plus ou moins les mêmes choses les colonnes seront identiques d'une page a l'autre. et l'idée est donc d'imprimer le orange, pas le blanc

Bien qu'aujourd'hui l'idée sois figée, elle bougera surement d'ici là, alors si jamais, comment rajouter une "section" entre corps et signature par exemple du style CGV et que ce soit compris dans la zone d'impression ?

Personnellement je ne vais pas répondre.

Ouvre plutôt un nouveau sujet sur ce point avec un titre explicite en relation avec le sujet. Tu capteras l'attention d'autres contributeurs.

Pour ce qui est du nom des feuilles ...

Rechercher des sujets similaires à "nom feuille auto fonction premiers caracteres"