Lien, macro et compagnie

K

Konik

Guest
Bonjour tout le monde,

J'adooooore la nouvelle interface: elle a su rester sobre tout en gagnant en clarté. Que du bon !

Mais bon ce n'est pas ça qui m'amène ;o)

J'ai une macro qui me permet de créer une copie d'une feuille déja existante: rien de compliqué, mais très efficace ;o). Serait-il possible de déclencher cette macro en cliquant sur un lien (ou tout autre chose) se trouvant dans une cellule et de donner à cette feuille nouvellement créée la valeur contenue dans une autre cellule.

Code:
Sub CopieAnalyse()

Dim x, y As Byte

x = InputBox('combien de feuilles')

For y = 1 To x
Sheets('Modules').Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = 'Modules' & y
Next

End Sub

Par exemple: dans une cellule il y a un lien 'Go' et lorsque je clique dessus il copie une page et lui donne comme nom la valeur de la cellule A1 ? C'est possible ?
 

Toutou

XLDnaute Occasionnel
Bonjour Konik,
pour données le nom que tu veux je crois qu'il faut remplacer:
ActiveSheet.Name = 'Modules' & y
par
ActiveSheet.Name = Worksheets('Modules').Range('A1').Value

En ce qui concerne le lien que tu veux créer, je te propose un bouton de commande. Pour cela, agis comme suit:
Menu / Affichage / Barre d'outil / formulaire / bouton

dimensionne ton bouton sur ta feuille puis dans le menu qui apparait, affectes ta macro 'CopieAnalyse'.

Appuies ensuite sur controle en cliquant sur le bouton pour le redimensionner puis sur alt pour qu'il 's'attache' à une cellule.
Avec un clic droit, tu peux modifier son nom et l'appeler 'go' si tu le souhaites.

Bon travail,
@ +
Toutou
 
K

Kokik

Guest
pour la copie et le nom de la feuille: Nikel ;o) Mais en fait le problème auquel je suis confronté est le suivant: la valeur de la cellule qui donne le nom à la feuille créée change à chaque ligne (et l'idéal -mais d'après le peu que j'ai vu dans le forum c'est impossible, le bouton est généré à chaque nouvelle ligne et prend les références des cellules se trouvant sur 'sa' ligne. Ouf ! Je veux dire par là que lorsque l'on veut créer une nouvelle feuille le nom de cette feuille provient de la cellule se trouvant sur la même ligne que le bouton. Si le bouton se trouve en F11 le nom de la feuille générée se trouvera en A11.
 

Hervé

XLDnaute Barbatruc
Bonjour konik, toubib. :)

pour déclencher une macro suite à l'appui sur un lien, on peut utiliser les macros evenementielles Worksheet_FollowHyperlink;

a titre d'exemple, ce code (placé dans le module de la feuille),crée une feuille et lui donne comme nom la cellule de destination du lien.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim ws As Worksheet
Set ws = Sheets.Add
ws.Name = Range(Target.SubAddress)
End Sub

Salut
 

Hervé

XLDnaute Barbatruc
re

en piece jointe un petit fichier démo.

salut [file name=Classeur3_20051214150025.zip size=7017]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur3_20051214150025.zip[/file]
 

Pièces jointes

  • Classeur3_20051214150025.zip
    6.9 KB · Affichages: 12
K

Konik

Guest
Oui ça marche nikel !!! ;o) Mais (j'adore le 'mais' ;o): quoi encore !! lol). Je vois en fait que le lien est 'fixe' puisqu'il correspond à une cellule en particulié. Est-ce qu'il est possible de faire en sorte que la référence du lien prenne sa source toujours dans la même cellule de la même ligne: si le lien se trouve sur sur F1, le nom de la feuille est sur A1; sur F11, nom sur A11. Et est-il possible que les feuilles se créees devant les autres et non derrière ? hein , Hein ?!! ;o) :ermm:
 

soft

XLDnaute Occasionnel
Bonjour à tous,

En lisant rapidement ce fil :

Est-ce qu'un double-Click dans la cellule contenant le nom de la nouvelle feuille à créer ne serait pas plus simple.

Avec un code Worksheet_BeforeDoubleClick dans la feuille.

ça donnerait un truc du genre :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim Nom As String
    Nom = Target.Value
    Cancel = True
    ' code pour la copie
end sub
 
K

Konik

Guest
ciao ciao et merci !! ;o)
En tout cas ton dernier script à coup de double click, ça fonctionne ;o) !!! Y'aurait pas moyen que le feuille apparaisse à la fin et non pas au début ? Et si on veut faire une copie de page existante et non pas une création de page vierge ? :)
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 418
Membres
103 205
dernier inscrit
zch