VBA - Placer une cellule en haut à gauche

muzard

XLDnaute Junior
Bonjour,

J'ai un tableau avec beaucoup de colonnes dont la première ligne et la première colonne sont figées.

J'ai des boutons avec des liens hypertextes allant vers une cellule particulière.

Je voudrais que cette cellule s'affiche en haut à gauche.

J'ai utilisé cette procédure qui fonctionne (pour la cellule S1) :

Code:
Sub Macro1()
ActiveWindow.SmallScroll ToRight:=29
Range("S1").Select
ActiveWindow.SmallScroll ToRight:=8
ActiveWindow.SmallScroll Down:=24
ActiveWindow.SplitColumn = 1
ActiveWindow.SplitRow = 1
ActiveWindow.FreezePanes = True
End Sub

J'aurais souhaité avoir une procédure générale qui place la cellule appelée en haut à gauche.

Merci d'avance.
 

muzard

XLDnaute Junior
Re : VBA - Placer une cellule en haut à gauche

Bonjour,

Excuse-moi, mais je ne comprends pas où je ne me suis pas fait assez comprendre.
En fait, j'ai plusieurs liens vers des cellules (S1, AD1, ...)
Dans ma macro, j'aurais voulu "zapper" le nom de la cellule (S1 dans l'exemple) et trouver une procédure générale pour que quelque soit la cellule appelée, elle se retrouve en haut à gauche.

Excellente journée à toi également.
 

muzard

XLDnaute Junior
Re : VBA - Placer une cellule en haut à gauche

Oui, j'ai des boutons "GIF" auxquels j'ai collé des liens hypertextes vers des cellules du tableau.
J'ai également affecté une macro à ces boutons pour que la cellule s'affiche en haut à gauche, mais ce sont des procédures au cas par cas...
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - Placer une cellule en haut à gauche

Re,

regarde peut être ceci :
Code:
Option Explicit
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim t() As String
t = Split(Target.SubAddress, "!")
Application.Goto Sheets(t(0)).Range(t(1)), True
End Sub

pas sûr que l'événement se déclenche si lien sur bouton.... mais bon... rien pour tester...

bon après midi
@+
 

muzard

XLDnaute Junior
Re : VBA - Placer une cellule en haut à gauche

Un petit fichier pour expliquer...

J'ai créé deux macros pour les boutons Littérature et Vocabulaire.
Pour ces boutons, j'ai supprimé le lien hypertexte. Cela semble fonctionner mais pas toujours.

Les autres boutons disposent d'un lien hypertexte tout bête.

Faut-il créer une macro par bouton ?
Est-il possible de créer des liens hypertextes pour chaque bouton et que la cellule ciblée se positionne en haut à gauche (en B2).

Merci.
 

Pièces jointes

  • Bull2.xlsm
    58.3 KB · Affichages: 99
G

Guest

Guest
Re : VBA - Placer une cellule en haut à gauche

Bonjour,

Dans le fichier joint, j'ai nommé les cellules destination par leur contenu, à part Français que j'ai nommé sans cédille car la cédille pose des problèmes. Comme les espaces dans les noms ne sont pas permis j'ai remplacé les espace par des '_' (uniquement dans les noms).
Puis j'ai renommé tes images une à une du même nom mais avec le prefixe "img_" et leur ai attribué à toutes la macro 'voca' que je t'invite à regarder, fait appel à l'aide excel pour savoir ce qu'est Application.Caller

Code:
Sub Voca()
'Si application.Caller n'est pas une chaine de caractère alors on sort
If TypeName(Application.Caller) <> "String" Then Exit Sub
If Application.Caller Like "img_*" Then
    Dim nomCellule
    nomCellule = Replace(Application.Caller, "img_", "")
    Application.Goto ActiveSheet.Range(nomCellule), True
End If
End Sub

Sinon on peut récupérer le contenu du texte de l'image et chercher ce texte dans la ligne 1. Comme fait dans le fichier H_bulle3.xlsm

A+
 
Dernière modification par un modérateur:

muzard

XLDnaute Junior
Re : VBA - Placer une cellule en haut à gauche

Chapeau bas, c'est du grand art !
J'aime beaucoup la technique utilisée dans h_bull3, c'est très graphique et pratique.
Malheureusement, je vais retenir h_bull2 car je vais avoir d'autres boutons à mettre.

Je ne connaissais pas application_caller mais j'ai compris la logique en regardant la macro.
Par contre, une question, je ne sais pas comment tu as fait pour changer le nom des images : le fais-tu depuis excel ou bien faut-il le refaire depuis l'explorateur windows ?

Merci beaucoup pour le temps que tu y as consacré, j'apprécie beaucoup.

Bonne soirée.
 
G

Guest

Guest
Re : VBA - Placer une cellule en haut à gauche

Re,

Les 'formes' de h_bulles3 sont issue d'un smartArt transformé en formes par l'onglet création de 'outils smartArt' qui apparait quant tu insère un SmartArt. Essaie, tu verras il y a plein de possibilité

Pour ta deuxième question: pour changer le nom d'un objet inséré (image, forme etc.) il suffit de modifier son nom par défaut dans la zone de texte à gauche de la barre de formule et de valider par entrer. Bien sûr il faut que l'objet soit sélectionné au préalable.

Mais au lieu de travailler avec des images peut-être que les formes (insertion/formes) avec tous les styles disponibles seraient plus facile à gérer au niveau vba pour récupérer le texte qu'elle contient et leur appliquer la macro de h_bulles3.

A+
 

muzard

XLDnaute Junior
Re : VBA - Placer une cellule en haut à gauche

Oui, c'est bon, j'ai trouvé comment changer le nom !

Mais j'ai également découvert les smartart et avec ta macro, c'est carrément génial !... et beaucoup plus simple.

Merci énormément de m'avoir fait découvrir cet outil !

Excellente soirée ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 471
Membres
103 553
dernier inscrit
jhnm