Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 

Toutou

XLDnaute Occasionnel
Si tu crées un userform dans lequel un textbox servirai à créer le nombre de feuilles voulu et d'autres à donner le nom de tes feuilles, je penses que ton pb sera résolu. Ceci dit, ça t'emmène plus loin...
@ +
Toutou
 

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
 
K

Konik

Guest
Ca à l'air pas mal du tout ton code là !!! Je suis un plus dillétante qu'expert, si tu vois ce que je veux dire ;o) ... Tu fais comment pour que ton code fonctionne sur un lien ? Précisément
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…