Bouton macro à variables

Bonjour,

Nouveau souci.

J'au un tableau dans lequel je peux ajouter des lignes grâce à un bouton add. Et dans cette ligne à chaque fois il y a un bouton "Fill in" qui sert simplement à ouvrir la feuille correspondante au numéro de mon composant.

Je dois donc à chaque fois réaffecter une macro au nouveau bouton.

Alors je pensais pouvoir affecter à ce bouton une macro qui dépend d'une variable, j'avais écrit pour l'instant:

Sub Component(i As Integer)
Cells(i, "B").Select
    If Cells(i, "B") = "" Then
    MsgBox "Please name the part before fill in the component sheet"
    Else
    Sheets("Feuil" & i + 2).Select
    Range("C5").Select
    End If
End Sub

mais je ne peux apparemment pas affecter de macro du style Component (2) à mon bouton.

Sinon est-il possible d'ancrer un bouton à une cellule? je sais pas genre indéplaçable. je voudrais pouvoir lui dire "Component (numéro de ta ligne)" mais je dois rêver un peu...

j'espère être a peu près clair.

je vous remercie,

Bye.

Bonjour

Je te propose une alternative à la création d'un bouton, c'est d'utiliser les liens hypertextes

Regardes ce sujet

http://forum.excel-pratique.com/excel/creation-automatique-de-macro-en-rajoutant-un-onglet-t41817.html

Mais dans tous les cas il faudra que tu joignes ton fichier

Je te remercie effectivement ça a l'air d'être parfaitement ce qu'il me faut mais malheureusement je travaille sous office 2003 et je n'arrive pas à ouvir ton fichier. j'ai pourtant télécharger le pack de compatibilité... Mais rien à faire il ne me propose qu'un truc absolument illisible...

Bonjour

Version au format 2003

Merci beaucoup Banzaï, ton aide m'a été précieuse encore une fois.

Dans mon cas,je rentre un nombre de composants et la macro crée autant de feuilles que nécessaire.

Je l'utilise depuis le debut d'aprem je fais pas mal de tests en utilisant la macro, je supprime tout et je recommence mais là excel refuse de copier de nouvelles feuilles, même manuellement!!

Je pensais que mon presse papiers était plein ou un truc comme ça mais non c'est vide...

J'ai fermé puis réouvert le fichier, ça refonctionne deux fois avant de faire pareil...

Merci de votre aide =)

Bonjour

Tu parles peut-être de ce problème ?

http://support.microsoft.com/kb/210684/fr

Je n'ai pas eu ce message d'erreur mais je suis preneur pour essayer parce que ton mon travail en dépend!

J'ai tout fait sauf la dernière étape, je ne sais pas rédiger le chemin jusqu'à mon modèle, ni comment l'intégrer au code à la place du copier coller. J'avais repris ta syntaxe avec F1 ActiveSheet, je ne sais pas ce que je vais devoir modifier...

Voilà mon code actuel ce sera sans doute plus simple:

Sub CreationOnglet(Nombre As Long)

Dim j As Long
Dim F1 As Worksheet

    Set F1 = ActiveSheet
    For j = 0 To Nombre - 2
    If FeuilleExiste(CStr(F1.Range("B" & (14 + j)))) = False Then
      Sheets("Model_Sheet").Select
      Sheets("Model_Sheet").Copy Before:=Sheets("Donnees")
      ActiveSheet.Name = Sheets("Project").Range("A" & 14 + j)
      Range("B1").Formula = " TECHNICAL QUOTATION SHEET " & Sheets("Project").Range("A" & 14 + j) & ""
      Range("B3").Formula = "Please, fill in all the blue cells, the yellow and purple ones are automatic"
      Range("E5").Formula = "='Project'!D5"
      Range("G5").Formula = "='Project'!J5"
    End If
    Sheets("Project").Select
    Sheets("Project").Range("C" & 14 + j).Select
    ActiveSheet.Hyperlinks.Add Anchor:=selection, Address:="", SubAddress:= _
        "'" & j + 2 & "'!A1", TextToDisplay:="Fill in"
    Next
    F1.Select
    Range("B13").Select
End Sub

Vraiment je ne saurais comment vous remercier.

Bonjour

Tu utilises 3 feuilles (peut être 4) "Project", "Donnees", "Model_Sheet" et ( ActiveSheet qui peut être "Project" ou "Donnees") ) dans ta macro

Mais déjà Sheets("Model_Sheet").Select est inutile

On peut éviter aussi de sélectionner Sheets("Project").Select

Mais sans ton fichier pas évident

Comment je fais pour joindre mon fichier, je n'ai pas réussi?

Sinon j'au un autre souci avec la condition feuille existe. En fait je pense qu'elle ne fonctionne pas parce que lorsqu'il y a deja une feuille "2" par exemple, ça crée une feuille Model_Sheet (2) et la procédure s'arrête avec un msg d'erreru me disant qu'on ne peut pas avoir deux feuilles du même nom.

Sinon vu mon cahier des charges, je dois faire un outil partagé par une bonne partie de ma boîte ainsi que des gens basées dans pas mal de pays, donc je me dis que créer un modèle à part pour mon prblm de copier coller risque d'être pénible car le chemin à suivre sur l'ordianteur de chacun va être différent, non?

Bonjour ( en ce moment la politesse se perd - même bonjour on ne sait plus le dire)

Joss91 a écrit :

Comment je fais pour joindre mon fichier, je n'ai pas réussi?

joindre un fichier
Joss91 a écrit :

Sinon j'au un autre souci avec la condition feuille existe.

Normalement la fonction "FeuilleExiste" est faite pour éviter cette erreur

Joss91 a écrit :

je dois faire un outil partagé par une bonne partie de ma boîte

Je ne t'aiderai pas la dessus, je laisse à ceux qui connaissent

Tu as raison, excuse-moi pour la précipitation, on ne m'y reprendra plus!

Bien le bonjour =).

Voilà mon fichier.

Niveau vocabulaire "partagé" est un bien grand mot, ce n'est pas un google doc que je dois faire. c'est juste qu'il va être échangé par mail, donc je vais plutôt tenter l'autre solution proposée par microsoft, à savoir l'enregistrement régulier du fichier pendant la procédure, j'espère que ce ne sera pas trop long du coup.

Mille mercis Banzaï, en tout cas.

6fchierforumvba.zip (62.09 Ko)

Bonjour

J'ai traité la création des pages, mais je ne connais pas le fonctionnement normal de ton fichier

A vérifier et si des erreurs, il faut m'indiquer les actions à faire pour arriver aux erreurs

Hey!

J'ai vérifié mon code par rapport au tien, je m'étais trompé d'une colonne quant à la vérification du nom des feuilles existantes, désolé, c'était nul.

Meric beaucoup en tout cas. Je touche au but grâce à toi!

Bonjour,

Mon projet touche à sa fin mais il me reste deux petites questions.

La première c'est que les liens ne fonctionnent pas dans mon code, j'ai beau comparer au fichier que tu m'avais renvoyé Banzaï64, je ne trouve pas ce qui ne va pas! J'ai un lien "Fill in" qui apparaît en case c7 de chaque nouvel onglet et je ne sais absolument pas d'où ça vient. Et le lien qui se crée sur la feuille projet ne fonctionne pas...

Voilà c'est mon problème actuel.

Mais sinon j'aimerais perfectionner un tout petit peu la chose.

Une fois que mes lignes sont créées et mes onglets sont crées, il serait chouette qu'en entrant un nom de composant dans la feuille project, l'onglet associé soit renommé avec ce nom-là. J'ai essayé mais je n'y arrive pas car j'utilisais le module de la worksheet project mais comme je renomme une autre feuille ça ne va pas. alors j'ai essayé dans le module du classeur mais ça n'a pas fonctionné non plus.

J'ai vu que lorsqu'on changeait un nom de feuille les formules changeaient aussi automatiquement, alleluia, mais çe n'est pas le cas du lien il me semble, je réfléchirai à ça ensuite.

Désolé pour le roman, voilà le fichier évidemment. (Le code intéressant est dans le module "LigneOnglets".

Un grand merci.

Bonne journée!

4fchierforumvba.zip (66.41 Ko)

Bonjour

A vérifier

Bonjour,

C'est parfait merci infiniment.

En revanche, je ne pige pas grand chose à ton code. Tu pourrais m'expliquer un peu stp au cas où je sois amené à le refaire, ça m'intéresse beaucoup.

Encore merci!!

Bonjour

Assez simple

Vérification de la cellule modifié (colonne B etc ..)

Si à droite de celle-ci il existe un lien

Récupère la sous adresse du lien

De celle ci on extrait le nom de la page ---> facile ensuite de la renommer car on sait quelle est la feuille

Reconstruction du lien hypertexte avec le nom de la nouvelle page

C'est tout

Rechercher des sujets similaires à "bouton macro variables"