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

VBA - Placer une cellule en haut à gauche

  • Initiateur de la discussion Initiateur de la discussion muzard
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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.
 
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...
 
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
@+
 
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

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:
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.
 
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+
 
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 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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