SOLVED

macro VBA excel nommer une cellule

Iron Contributor

Dans une macro, je veux donner un nom à une cellule donnée, à savoir celle où je suis au lancement de la macro.

si je laisse "range", avec des références absolues, la macro fonctionne, mais une seule fois. Le nom choisi disparait de la liste de la feuille, mais est toujours présent dans les noms de "formule-gestionnaire de noms".

voici ce que j'ai écrit, qui ne fonctionne pas:

ActiveWorkbook.Names.Add Name:="horo4", RefersToR1C1:=ActiveCell.Address

Merci de m'aider!

197 Replies
Bonjour,
Nouveau petit souci!
Je vais travailler sur deux vues, et j'aurais voulu que les msgbox restent sur une des vues, pas au milieu; il semblerait que ce ne soit pas possible!
J'ai pensé à utiliser des userform à la place, que je peux positionner.
ces Usf seront intégré dans une macro. Comment faire pour que "ok" (par exemple) déclenche la continuité de la macro?
encore moi, j'ai trouvé!
exit sub convient.
Désolé de vous avoir dérangé pour rien!

@bernard_daniel_1950 

Pas de problème!

J'ai crié victoire trop vite...
J'ai ajouté un bouton "annuler" pour interrompre la macro, mais elle continue!
Quelle instruction?

@bernard_daniel_1950 

Pouvez-vous afficher le code du bouton ?

Bonsoir,
j'ai essayé "end", et ça marche!

@Hans Vogelaar 

Bonjour,

J'ai un nouveau problème: l'impossibilité d'agir sur des commandes (par exemple: le fractionnement d'écran) pendant que la macro se déroule.

Ci dessous:

----------

Sub prime()

frmchoix.Show
End Sub

------------

Sub choixx()
Application.ScreenUpdating = False
frmdebut.Show
frmdebut2.Show
Range("statut").Select

...

-------------------

Je joins les codes:

frmchoix:

bernard_daniel_1950_0-1710431049708.png

 

Private Sub CommandButton2_Click()
Unload Me
DoEvents
Call choixx
End Sub

--------------

frmdebut:

bernard_daniel_1950_1-1710431170901.png

 

Private Sub CommandButton1_Click()
Unload Me
DoEvents
End Sub

------------

Comme vous voyez, j'ai essayé DoEvents, les commandes s'affichent très brièvement...

Faut-il ajouter quelque chose, du genre Sleep, ou y a t-il une autre solution?

@bernard_daniel_1950 

Peut-être

Sub choixx()
    Application.ScreenUpdating = False
    frmdebut.Show False
    frmdebut2.Show False
    Range("statut").Select
    ...

et

Private Sub CommandButton2_Click()
    Me.Hide
    Call choixx
End Sub
Non, désolé: je n'ai toujours pas la main sur les commandes du type "fractionner l'écran"!

@bernard_daniel_1950 Pouvez-vous joindre le classeur?

@Hans Vogelaar 

Le voici!

Il est très "bricoleur"...

@bernard_daniel_1950 

Il y a beaucoup des forms et modules? Lesquels sont pertinents?

form: frmdebut.
Je souhaiterais pouvoir, quand l'userform est ouvert, fractionner l'écran et ouvrir une application tierce (sans rapport avec excel, ni même microsoft).
Module: choixx.

@bernard_daniel_1950 

Le VBA de frmdebut est

Private Sub CommandButton1_Click()
Unload Me
DoEvents
End Sub

Private Sub Label1_Click()

End Sub


Private Sub oui_Click()
Unload Me
End Sub

???

Oui, tout à fait!

@bernard_daniel_1950 

Je ne comprends pas...

@Hans Vogelaar 

Je vais essayer d'être clair.
Il s'agit de l'interaction de deux programmes: d'un côté le gestionnaire de prêts et retours (Decalog®), de l'autre le mien (sosdecalogx).
Ce dernier est destiné à suppléer le premier, en cas de défaillance du serveur et/ou du réseau.
Pendant la panne, il enregistre les prêts et retours puis, lorsque la situation est rétablie, il injecte les données dans Decalog.
Et c'est là mon problème: je veux signaler à l'utilisateur (pas forcément à l'aise avec l'ordinateur) qu'il faut ouvrir les deux programmes côte à côte.
D'où le frmdébut.
Mais, tant que ce frm est ouvert, il est impossible de manipuler les commandes 

bernard_daniel_1950_0-1710514312989.png

qui permettent la présentation sur deux vues juxtaposées.

J'ai pensé à une première invite frmdébut uniquement informatif (se terminant par end ), puis un second: frmdébut2 

bernard_daniel_1950_1-1710514674760.png

se terminant par end sub afin de poursuivre la macro choixx, mais c'est un peu lourd!

J'aimerais concentrer le tout au niveau de frmdébut...

 

@bernard_daniel_1950 

Si vous utilisez

frmdebut.Show False
frmdebut2.Show False

il restera possible de manipuler la fenêtre Excel et ses commandes.

toujours pas: frmdebut est immédiatement recouvert par frmdebut2 et ce dernier par le frm suivant...